基于jmx的flume的指标采集展示
最近参与一个项目,需求:采集flume指标并通过可视化页面显示。flume可以配置jmx端口,通过jmxtrant采集指标,并写入influxdb,进而通过grafana进行展示。所以本文对这一部分做一个简单介绍。
1.启用jmx步骤:在flume的启动脚本中加入如下内容(同理:其他服务开启jmx端口,也可通过如下方式进行配置),然后启动agent:
-Dcom.sun.management.jmxremote.port=19999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
2.建议优先安装influxdb,从官网下载rpm包,本地安装启动即可:
rpm -ihv influxdb-1.7.6-1.x86_64.rpm
service influxdb start
登录influxdb:influx
creat database flume_db;
3.部署安装jmxtrans:jmxtrans的部署建议用最新版本271/272,(270版本的jmx对于flume的支持不是很友好,原因是其中的influxdbFactory类不全)
建议从官网下载-http://www.jmxtrans.org/,测试用的的最新版本271版本。安装方式
rpm -ihv jmxtrans-271.rpm
启动该版本jmxtrans方式:
service jmxtrans start
关于采集json的配置,flume_host1.json参考如下:
{
"servers" : [ {
"port" : "flume_jmxport",
"host" : "flume_host",
"queries" : [ {
"outputWriters" : [ {
"@class" : "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url" : "http://influxdb_host:influxdb_port/",
"username" : "",
"password" : "",
"database" : "flume_db",
"typeNames" : ["ch1"],
"typeNamesAsTags" : "true"
}],
"obj" : "flume:type=CHANNEL",
"attr" : [ "ChannelCapacity" ],
"resultAlias":"channelCounter"
}
]
} ]
}
将flume_host1.json放入/var/lib/jmstrans/目录下,重启jmxtrans即可。其中几个参数说明如下
(1)flume_jmxport指组件开启jmx的端口;flume_host指启动组件的主机名
(2)本文采用influxdb存储指标信息。influxdb_host指安装influxdb服务的主机;influxdb_port指influxdb的端口,默认8086
(3)其中type/obj/attr等内容信息。可以通过jconsole方式远程连接到对应机器进行查看。
4.通过influxdb即可查看到相关定义的相关指标内容:
influx
show databases;
use flume_db;
show measurements;
5.安装grafana[https://grafana.com/],依然建议从官网进行下载安装。登录grafana,配置数据源为安装的influxdb的地址,验证连接。此时就看我们自身的习惯,定制指标的显示方式了。