- 本示例通过zookeeper自带的监控信息暴露出来,然后将数据收集到prometheus中,最后通过grafana的dashboard导入模板进行可视化。
- 本示例分为三个部分,即prometheus、grafana部署和最后的集成。
- 说明:本示例中的部署环境没有要求,即应用部署的机器根据实际情况而定,只要网络连通即可。
一、prometheus
参考:【运维监控】prometheus+node exporter+grafana 监控linux机器运行情况关于prometheus的部署。
二、grafana
参考:【运维监控】prometheus+node exporter+grafana 监控linux机器运行情况 关于grafana的部署。
三、prometheus集成grafana监控zookeeper
为了更加方便的集成prometheus,建议使用3.6.0以后的版本,因为这个版本以后zookeeper加入了prometheus集成监控,只需要开启zookeeper的指标配置即可。在这个版本之前的zookeeper,可能需要通过JMX进行监控。
本示例使用的版本是zookeeper 3.7.1,也是比较老的版本了,最新的版本是3.9.2。
1、修改zookeeper配置
在你原有的配置文件zoo.cnf内容的基础上,启用zookeeper的指标配置。如果是集群环境,则需要每个zookeeper的配置文件都需要修改。
cd /apache-zookeeper-3.7.1/conf
vim zoo.cnf
# 启用以下三个属性值即可
## Metrics Providers
#
# https://prometheus.io Metrics Exporter
metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
metricsProvider.httpPort=7000
metricsProvider.exportJvmInfo=true
2、修改prometheus配置
在prometheus的配置文件(prometheus.yml)中添加如下配置部分。作者的zookeeper是集群环境,即部署在server1、server2和server3服务器上。
- job_name: "zookeeper-monitor"
static_configs:
- targets: ["server1:7000","server2:7000","server3:7000"]
重启prometheus后,并验证是否收集到监控信息。
查看Prometheus是否监控到运行的zookeeper应用如下图。
查看prometheus是否收集到监控信息如下图(查询jvm_threads_state{state=“NEW”, job=“zookeeper-monitor”})
3、导入grafana模板
导入过程不再赘述,参考文章:【运维监控】Prometheus+grafana监控tomcat8.5 运行情况
本示例导入的模板ID是10465(ZooKeeper by Prometheus)。
4、验证
以上所涉及的服务均能正常的运行,以及验证都通过。
点击添加的zookeeper模板,选择zookeeper集群,则显示如下图所示。
以上,则完成了Prometheus+grafana监控zookeeper运行情况的示例。