在本教程中,我们将通过导入现有社区仪表板以及其他自定义项,使用 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 启动后,我们可以看到如下的画面。
装载 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 脚本是用 python2 来写的。我们必须使用 python2 来运行我们的 python 脚本。
这个时候,我们可以在我们的 Kibana 中查看到生成的 elasticsearch_metrics 索引
在 Grafana 中创建 Elasticsearch 数据源:
我们需要把上面的信息填入并保存:
返回 Grafana,单击 “Home”>“Import Dashboard.”。 在 “Grafana.com Dashboard” 输入框中输入 “878”,然后点击加载。 从而为我们的监控提供了一个快速的开始。
输入878
我们打开 Dashboad,我们可以看到:
其它的就留给开发者们自己探讨吧。