您可使用Telegraf采集Kafka监控数据,再通过日志服务Logtail将Telegraf数据上传到MetricStore中,搭建Kafka可视化监控方案。本文介绍如何通过日志服务来完成Kafka监控数据的采集和可视化。
前提条件
已在服务器上安装Java 1.6或以上版本 。
已创建Project和MetricStore。具体操作,请参见创建项目Project和创建MetricStore。
使用限制
只有Linux Logtail 0.16.48及以上版本的Logtail支持采集Kafka监控数据。如果您已在服务器上安装旧版本的Logtail,需先升级。具体操作,请参见安装Logtail(Linux系统)。
步骤一:创建Logtail采集配置
登录日志服务控制台。
在接入数据区域的监控数据页签下,单击Kafka监控。
选择目标Project和MetricStore,单击下一步。
在创建机器组页签中。
如果已有可用的机器组,请单击使用现有机器组。
如果您还没有可用的机器组,请执行以下操作(以ECS为例)。
在ECS机器页签中,通过手动选择实例方式选择目标ECS实例,单击创建。
具体操作,请参见安装Logtail(ECS实例)。
重要如果您的服务器是与日志服务属于不同账号的ECS、其他云厂商的服务器和自建IDC时,您需要手动安装Logtail。具体操作,请参见安装Logtail(Linux系统)。手动安装Logtail后,您必须在该服务器上手动配置用户标识。具体操作,请参见配置用户标识。
安装完成后,单击确认安装完毕。
在创建机器组页面,输入名称,单击下一步。
日志服务支持创建IP地址机器组和用户自定义标识机器组,详细参数说明请参见创建IP地址机器组和创建用户自定义标识机器组。
确认目标机器组已在应用机器组区域,单击下一步。
重要创建机器组后立刻应用,可能因为连接未生效,导致心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组无心跳进行排查。
在数据源设置页签中,配置如下参数。
参数名称
说明
配置名称
自定义设置Logtail采集配置的名称。
集群名称
自定义设置Kafka集群的名称。
设置该参数后,日志服务会为通过该Logtail采集配置采集到的Kafka监控数据添加
cluster=集群名称
的标签。重要请确保该集群名称唯一,否则可能出现数据冲突。
服务器列表
设置Kafka服务器信息,具体配置项说明如下:
地址:Kafka服务器的地址,支持IP地址、主机名或域名。
端口:Kafka服务器的端口号,默认为7777。
您可以根据业务需求,添加多台Kafka服务器的信息。
自定义标签
为采集到的Kafka监控数据添加自定义标签,该标签为键值对形式。
设置该参数后,日志服务会为通过该Logtail采集配置采集到的Kafka监控数据添加标签。
设置完成后,日志服务将自动生成Metricstore等资产。更多信息,请参见资产说明。
步骤二:配置JavaAgent
完成Logtail采集配置后,您还需要将JMX协议转换为HTTP协议。日志服务支持使用Jolokia将JMX协议转换为HTTP协议。您可以按照Jolokia官方文档下载及加载Jolokia,也可以使用日志服务Logtail自带的Jolokia JavaAgent。Logtail自带的Jolokia JavaAgent位于/etc/ilogtail/telegraf/javaagent/jolokia-jvm.jar
中。
您需要在kafka所在机器上设置KAFKA_JVM_PERFORMANCE_OPTS
环境变量,例如export KAFKA_JVM_PERFORMANCE_OPTS=-javaagent:/etc/ilogtail/telegraf/javaagent/jolokia-jvm.jar=port=7777
,其中7777为服务器的端口号,与步骤一:创建Logtail采集配置中配置的端口号保持一致。
-javaagent:/tmp/jolokia-jvm.jar=port=7777,host=0.0.0.0
java -jar /etc/ilogtail/telegraf/javaagent/jolokia-jvm.jar --port 7777 start 进程PID
Jolokia is already attached to PID 752
http://127.0.0.1:7777/jolokia/
curl http://127.0.0.1:7777/jolokia/
# 返回参考
{"request":{"type":"version"},"value":{"agent":"1.6.2","protocol":"7.2","config":{"listenForHttpService":"true","maxCollectionSize":"0","authIgnoreCerts":"false","agentId":"30.**.**.186-752-5b091b5d-jvm","debug":"false","agentType":"jvm","policyLocation":"classpath:\/jolokia-access.xml","agentContext":"\/jolokia","serializeException":"false","mimeType":"text\/plain","maxDepth":"15","authMode":"basic","authMatch":"any","discoveryEnabled":"true","streaming":"true","canonicalNaming":"true","historyMaxEntries":"10","allowErrorDetails":"true","allowDnsReverseLookup":"true","realm":"jolokia","includeStackTrace":"true","maxObjects":"0","useRestrictorService":"false","debugMaxEntries":"100"},"info":{"product":"tomcat","vendor":"Apache","version":"8.5.57"}},"timestamp":1602663330,"status":200}⏎
常见问题
如何查看Telegraf采集是否正常?
您可以在服务器上查看/etc/ilogtail/telegraf/telegraf.log文件中记录的日志进行判断,还可以将该日志采集到日志服务中进行查询。
后续步骤
- 查询分析
配置完成后,Telegraf将采集到的监控数据通过Logtail上传到日志服务MetricStore中。您可以在MetricStore查询分析页面进行查询分析操作,详情请参见查询和分析时序数据。
可视化
配置完成后,日志服务自动在对应Project中生成名为kafka监控_集群名称的仪表盘,您可以直接使用该仪表盘,还可以进行告警设置等操作。