一、总体效果图

这里是将集群全部放在一起,可以根据自己的审美看怎么放

二、监控指标

其中有些指标与第一篇Zookeeper通过四字命令基础监控(Zabbix)的四字命令的指标是有重复的,二者选一个则可

三、实现

1、influxdb的安装

1)设置yum源

cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled =
gpgcheck =
gpgkey = https://repos.influxdata.com/influxdb.key
EOF

2)安装influxdb

yum install influxdb
systemctl start influxdb

3)修改配置文件(元数据以及数据存放目录)

[root@ip---- influxDB]# cat /etc/influxdb/influxdb.conf |grep "^\s*[^# \t].*$"
[meta]
dir = "/influxDB/meta"
[data]
dir = "/influxDB/data"
wal-dir = "/influxDB/wal"
series-id-set-cache-size =
[coordinator]
[retention]
[shard-precreation]
[monitor]
[http]
[logging]
[subscriber]
[[graphite]]
[[collectd]]
[[opentsdb]]
[[udp]]
[continuous_queries]
[tls]

4、数据目录授权

chown -R influxdb.influxdb /influxDB

5、重启influxdb

systemctl restart influxdb

6、创建zookeeper数据库,以及创建账号密码

CREATE USER "admin" WITH PASSWORD "admin" WITH ALL PRIVILEGES
create database zookeeper

2、zookeeper上打开JMX

1)vim ${Zookeeper-Home}/conf/zookeeper-env.sh
JMXLOCALONLY=false
JMXDISABLE=false
JMXPORT=
JMXAUTH=false
JMXSSL=false

2、重启Zookeeper

./zkServer.sh restart

3、JMXtrans的安装

1)安装配置jmxtrans

下载地址https://oss.sonatype.org/content/repositories/snapshots/org/jmxtrans/jmxtrans/ 这里有最新的版本,用老的版本有一些问题 ;JMXtrans可以随意安装在任何一台机器上,不是必须安装在Zookeeper机器上,只要JMXtrans与Zookeeper机器的网络及端口是通的就可以

wget https://oss.sonatype.org/content/repositories/snapshots/org/jmxtrans/jmxtrans/271-SNAPSHOT/jmxtrans-271-20190109.091025-10.rpm
yum -y install jmxtrans--20190109.091025-.rpm

2)它的目录文件

/var/lib/jmxtrans
/var/log/jmxtrans
/etc/rc.d/init.d/jmxtrans
/etc/jmxtrans
/usr/share/jmxtrans
/usr/share/jmxtrans/bin/jmxtrans
/usr/share/jmxtrans/lib/org/jmxtrans
/usr/share/jmxtrans/lib/org/jmxtrans/jmxtrans
/usr/bin/jmxtrans
/run/jmxtrans
/run/lock/subsys/jmxtrans

3)编辑zookeeper.json文件并放到/var/lib/jmxtrans/目录

一般我们的Zookeeper是一个集群,比如当我们的Zookeeper为3台的时候,则需要弄三份zookeeper.json文件,每一份对应Zookeeper集群的每一台机器,通过里面的host和port对应

{
"servers": [{
"port": ,
"host": "zookeeper-IP",
"alias": "zk",
"queries": [{
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url": "http://localhost:8086/",
"database": "zookeeper",
"username": "admin",
"password": "admin"
}],
"obj": "org.apache.ZooKeeperService:name0=ReplicatedServer_id*",
"attr": ["QuorumSize"]
},
{
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url": "http://localhost:8086/",
"database": "zookeeper",
"username": "admin",
"password": "admin"
}],
"obj": "org.apache.ZooKeeperService:name0=ReplicatedServer_id*,name1=replica*,name2=*",
"attr": ["MaxClientCnxnsPerHost",
"MaxRequestLatency",
"AvgRequestLatency",
"MinRequestLatency",
"MaxSessionTimeout",
"MinSessionTimeout",
"OutstandingRequests",
"PacketsReceived",
"PacketsSent",
"PendingRevalidationCount",
"TickTime"]
},
{
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url": "http://localhost:8086/",
"database": "zookeeper",
"username": "admin",
"password": "admin"
}],
"obj": "org.apache.ZooKeeperService:name0=ReplicatedServer_id*,name1=replica*,name2=*,name3=InMemoryDataTree",
"attr": ["NodeCount",
"WatchCount"]
},
{
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url": "http://localhost:8086/",
"database": "zookeeper",
"username": "admin",
"password": "admin"
}],
"obj": "org.apache.ZooKeeperService:name0=ReplicatedServer_id*,name1=replica*,name2=*,name3=Connections,name4=*,name5=*",
"resultAlias": "Clients",
"attr": ["AvgLatency",
"LastLatency",
"MaxLatency",
"MinLatency",
"OutstandingRequests",
"PacketsReceived",
"PacketsSent"]
},
{
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url": "http://localhost:8086/",
"database": "zookeeper",
"username": "admin",
"password": "admin"
}],
"obj": "org.apache.ZooKeeperService:name0=StandaloneServer_port*",
"resultAlias": "Clients",
"attr": ["AvgLatency",
"LastLatency",
"MaxLatency",
"MinLatency",
"OutstandingRequests",
"PacketsReceived",
"PacketsSent",
"NumAliveConnections"]
},
{
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url": "http://localhost:8086/",
"database": "zookeeper",
"username": "admin",
"password": "admin"
}],
"obj": "java.lang:type=Memory",
"resultAlias": "Memory",
"attr": ["HeapMemoryUsage",
"NonHeapMemoryUsage"]
},
{
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url": "http://localhost:8086/",
"database": "zookeeper",
"username": "admin",
"password": "admin"
}],
"obj": "java.lang:type=OperatingSystem",
"resultAlias": "Process",
"attr": ["OpenFileDescriptorCount",
"ProcessCpuLoad"]
},
{
"outputWriters": [{
"@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url": "http://localhost:8086/",
"database": "zookeeper",
"username": "admin",
"password": "admin"
}],
"obj": "java.lang:type=Threading",
"resultAlias": "Threading",
"attr": ["ThreadCount"]
}],
"numQueryThreads":
}]
}

4)启动JMXtrans

启动后,查看日志/var/log/jmxtrans/jmxtrans.log,看是否启动成功,若有错误则根据对应的错误解决就可以

/usr/share/jmxtrans/bin/jmxtrans start

4、Grafna上配置数据源

当创建Query,选择Influxdb数据源后,若有对应的指标出来,表明是OK的

JMXtrans + InfluxDB + Grafana实现Zookeeper性能指标监控的更多相关文章

  1. 基于jmxtrans+influxdb+grafana实现对canal监控

    最近在调研canal数据同步系统的监控方案,网上关于jmxtrans+influxdb+grafana监控kafka的文档很多,没有监控canal的.通过几天的摸索,大致明白了来龙去脉.监控流程基本是 ...

  2. Kafka使用jmxtrans+influxdb+grafana监控JMX指标

    最近在搞Kafka集群监控,之前也是看了网上的很多资料.之所以使用jmxtrans+influxdb+grafana是因为界面酷炫,可以定制化,缺点是不能操作Kafka集群,可能需要配合Kafka M ...

  3. Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql

    Telegraf+InfluxDB+Grafana快速搭建实时监控系统  监控postgresql

  4. 使用 Metrics.net + influxdb + grafana 搭建项目自动化监控和预警方案

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_25042791/article/d ...

  5. 搭建jmeter+influxdb+grafana压测实时监控平台(超详细,小白适用)

    1.前言 在使用jmeter做性能测试的时候,监控系统性能的时候,无论是使用插件还是报告生成,都没法实现实时监控.使用JMeter+Influxdb+Grafana可以实现实时监控. 本次环境搭建各软 ...

  6. 基于telegraf+influxdb+grafana进行postgresql数据库监控

    前言 随着公司postgresql数据库被广泛应用,尤其是最近多个项目在做性能测试的时候都是基于postgresql的数据库,为了确定性能瓶颈是否会出现在数据库中,数据库监控也被我推上了日程.在网上找 ...

  7. .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...

  8. 基于InfluxDB+Grafana打造大数据监控利器--转

    这是一个大数据爆发的时代.面对信息的激流.多元化数据的涌现,我们在获取.存储.传输.理解.分析.应用.维护大数据时,无疑需要一种便捷的信息交流通道,以便快速.有效.准确地理解和驾驭这个过程.本文将通过 ...

  9. Telegraf+Influxdb+Grafana自动化运维监控

    概述:Telegraf收集信息,influxdb时序数据库存储数据,grafana平台展示数据,并进行监控告警,组成一个自动化运维监控平台. 一.influxdb ​ InfluxDB是一个由Infl ...

随机推荐

  1. DOM的预习

    HTML DOM 将 HTML 文档视作树结构.这种结构被称为节点树: 一些常用的 HTML DOM 方法: getElementById(id) - 获取带有指定 id 的节点(元素) append ...

  2. Linux ln 软、硬链接

    最近在学习Linux系统的,给我的感觉就是“智慧的结晶,智慧的大脑,智慧的操作” 今天研究到了一个有趣的命令  ln   我们先来看一下它的概念吧 Linux ln命令是一个非常重要命令,它的功能是为 ...

  3. Chrome 谷歌浏览器安装使用 Postman 和 Sense 插件

    博客地址:http://www.moonxy.com 一.前言 Google Chrome 的特点是简洁.快速等.Chrome 支持多标签浏览,每个标签页面都在独立的"沙箱"内运行 ...

  4. Linux 笔记 - 几个常用且重要的命令

    博客地址:http://www.moonxy.com Linux 系统中提供了大量的命令,从文件目录管理,用户管理,到系统监控等等,功能非常丰富,但有几个是常用且重要的命令. 1. 命令 grep 作 ...

  5. Scala 系列(十三)—— 隐式转换和隐式参数

    一.隐式转换 1.1 使用隐式转换 隐式转换指的是以implicit关键字声明带有单个参数的转换函数,它将值从一种类型转换为另一种类型,以便使用之前类型所没有的功能.示例如下: // 普通人 clas ...

  6. java架构之路-(mysql底层原理)Mysql之让我们再深撸一次mysql

    让我再深撸一次mysql吧,这次主要以应对面试来说说mysql,大概几个方向,索引结构,查询引擎,索引优化,explain的详解和trace工具的使用. 索引: 我们先来看一下mysql的B+tree ...

  7. Fliptile POJ-3279 DFS

    题目链接:Fliptile 题目大意 有一个01矩阵,每一次翻转(0->1或者1->0)一个元素,就会把与他相邻的四个元素也一起翻转.求翻转哪些元素能用最少的步骤,把矩阵变成0矩阵. 思路 ...

  8. 简述python的turtle绘画命令及解释

    一 基础认识 turtle库是python的标准库之一,它是一个直观有趣的图形绘制数据库,turtle(海龟)图形绘制的概念诞生1969年.它的应用十分广,而且使用简单,只要在编写python程序时写 ...

  9. 读《深入理解Elasticsearch》点滴-基础概念

    Lucene的概念 document:以json的形式体现,搜索和搜索的主要载体 field:document的一个部分 term(词项):代表文本中的一个词 token(词条):term在field ...

  10. 【ADO.NET基础-Regidter】简单的账户注册界面和源代码(可用于简单面试基础学习用)

    在阅读时如有问题或者建议,欢迎指出和提问,我也是初学者......... 前台代码: <!DOCTYPE html> <html xmlns="http://www.w3. ...