在本教程中,我们将通过导入现有社区仪表板以及其他自定义项,使用 Grafana 监视 Elasticsearch 集群。

安装 Grafana

在 Mac OS 上安装

我们可以按照链接 Install on macOS | Grafana Labs 来安装 Grafana。简单地说:

brew update
brew install grafana

brew services start grafana

这样我们启动了我们的 Grafana。我们可以在 http://localhost:3000 里查看 Grafana,并以用户名及密码 admin/admin 进行登录。

在 Ubuntu OS 上安装

我们可以参照链接 https://devconnected.com/how-to-install-grafana-on-ubuntu-18-04/ 来安装我们的 Grafana。简单地说

sudo apt-get update
sudo apt-get upgrade
sudo reboot

等启动完机器后,我们按照如下的指令来安装:

sudo wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -

确保您的 GPG 密钥已正确添加到密钥库中。

$ sudo apt-key list
pub   rsa2048 2017-01-24 [SC]
      4E40 DDF6 D76E 284A 4A67  80E4 8C8C 34C5 2409 8CB6
uid           [unknown] Grafana <info@grafana.com>
sub   rsa2048 2017-01-24 [E]

现在您已链接到 Grafana 存储库,鉴于存储库已更新,因此可以轻松安装它。

sudo apt-get update
sudo apt-get install grafana

启动 Grafana 服务:

sudo systemctl daemon-reload && sudo systemctl start grafana-server && sudo systemctl status grafana-server

启用 systemd 服务,以便 Grafana 在启动时启动。

sudo systemctl enable grafana-server.service

安装完后,我们可以在浏览器的链接地址 http://localhost:3000 查看,并以用户名及密码 admin/admin 进行登录。

等我们的 Grafana 启动后,我们可以看到如下的画面。

Grafana默认日志 grafana显示es日志_Grafana默认日志

装载 Elasticsearch 指标

Grafana默认日志 grafana显示es日志_Elastic_02

 我们使用一个 python 的脚本来收集被监视的 Elasticsearch 的指标数据,并把这些指标数据存于到一个 Elasticsearch 的索引中去。

下载此 python 脚本并编辑集群 URL,以反映您要监视的 ES 集群(“ES_METRICS_CLUSTER_UR”)和将存储指标的 ES 集群(“ES_METRICS_MONITORING_CLUSTER_URL”)。
 

针对我的情况,我使用了本地的 Elasticsearch,所以我使用了如下的配置:

elasticServer = os.environ.get('ES_METRICS_CLUSTER_URL', 'http://localhost:9200')
interval = int(os.environ.get('ES_METRICS_INTERVAL', '60'))

# ElasticSearch Cluster to Send Metrics
elasticIndex = os.environ.get('ES_METRICS_INDEX_NAME', 'elasticsearch_metrics')
elasticMonitoringCluster = os.environ.get('ES_METRICS_MONITORING_CLUSTER_URL', 'http://localhost:9200')

# Enable Elasticsearch Security
# read_username and read_password for read ES cluster information
# write_username and write_passowrd for write monitor metric to ES.
read_es_security_enable = True
read_username = "elastic"
read_password = "123456"

write_es_security_enable = True
write_username = "elastic"
write_password = "123456"

为了说明问题的方便,我把两个 Elasticsearch 的地址都设置为 http://localhost:9200,也就是说从 http://localhost:9200 采集数据并把数据存于到 http://localhost:9200 的索引中。同时,在我的 Elasticsearch 中,我启动了Basic 安全。我的用户名及密码分别是 elastic/123456。

输入正确的集群信息后,在监视集群上执行脚本:

python2 elasticsearch2elastic.py

请注意我们的 python 脚本是用 python2 来写的。我们必须使用 python2 来运行我们的 python 脚本。

Grafana默认日志 grafana显示es日志_es_03

这个时候,我们可以在我们的 Kibana 中查看到生成的 elasticsearch_metrics 索引

Grafana默认日志 grafana显示es日志_elasticsearch_04

在 Grafana 中创建 Elasticsearch 数据源:

Grafana默认日志 grafana显示es日志_Elastic_05

我们需要把上面的信息填入并保存:

Grafana默认日志 grafana显示es日志_Elastic_06

返回 Grafana,单击 “Home”>“Import Dashboard.”。 在 “Grafana.com Dashboard” 输入框中输入 “878”,然后点击加载。 从而为我们的监控提供了一个快速的开始。

Grafana默认日志 grafana显示es日志_es_07

输入878

Grafana默认日志 grafana显示es日志_Elastic_08

我们打开 Dashboad,我们可以看到:

Grafana默认日志 grafana显示es日志_Elastic_09

其它的就留给开发者们自己探讨吧。