Elastic:使用Grafana监视 Elasticsearch

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

 

安装Grafana

 

在Mac OS上安装

我们可以按照链接https://grafana.com/docs/grafana/latest/installation/mac/来安装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启动后,我们可以看到如下的画面。

 

装载Elasticsearch指标

我们使用一个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脚本是用python 2来写的。我们必须使用python2来运行我们的python脚本。

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

在Grafana中创建Elasticsearch数据源:

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

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

输入878

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

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