Telegraf

2021/03/25

参考资料

Telegraf简介

Telegraf是一个基于插件的开源指标采集工具。本身是为InfluxDB(一款时序数据库)量身打造的数据收集器,但是它过于优秀,能够将抓取的数据写到很多地方,尤其在时序数据库领域,很多时序数据库都能够与它配合使用。

通常,它每隔一段时间抓取一批指标数据(比如机器的CPU使用情况,磁盘的IO,网络情况,MySQL服务端的的会话数等等)并将他们发送到时序数据库、消息队列中或者自定义导出到某个地方。供下游的应用处理(比如报警)。

Telegraf也能够对外提供一个服务,等待客户端推送数据。

它与logstash类似,只不过logstash是收集日志的。telegraf是收集指标的。

前置条件

部署目的:通过Telegraf消费kafka中的消息,写入到influxdb 时序数据库中

  • 部署kafka集群,并由生产者写入业务消息数据
  • 部署influxdb:influxdb-ip1、influxdb-ip2
  • 部署nginx 在/nginx/conf.d中增加nginx-influxdb.conf文件
upstream influxdb-server {
    server influxdb-ip1:8086;
    server influxdb-ip2:8086;
}
server {
    listen       18186;
    server_name  influx-relay;

    location /write {
    	limit_except POST {
    	    deny all;
    	}
    	proxy_pass http://influxdb-server;
    }

    location /query {
    	limit_except GET {
    	    deny all;
    	}
    	proxy_pass http://influxdb-server;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

然后在nginx主配置文件中include该配置文件,并重载nginx,nginx -s reload。

Telegraf部署

1安装telegraf

下载1.14.3版本的telegraf /telegraf-1.14.3-1.x86_64.rpm。
将文件上传到服务器上,cd到安装包目录,使用sudo yum localinstall telegraf-1.14.3-1.x86_64.rpm进行安装。

2配置rsyslog
在/etc/rsyslog.d/目录下新增telegraf.conf文件,内容为:

:programname, contains, "telegraf" /var/log/telegraf/telegraf.log
:programname, contains, "telegraf" ~

重启rsyslog,systemctl restart rsyslog

3修改配置文件

修改/etc/telegraf/telegraf.conf配置文件,修改[[outputs.influxdb]]下urls = ["http://nginx-ip:port"]配置,将地址设置为nginx 的地址,端口设置为nginx中nginx-influxdb.conf配置中listen的端口;

修改[[inputs.kafka_consumer]]下brokers = ["kafka-ip1:9092","kafka-ip2:9092","kafka-ip3:9092"]配置,将地址设置为kafka的broker地址,将version = "2.2.0"设置为kafka的版本号;配置文件参考附件。

请确保root用户有配置文件的读权限。 

4telegraf启停命令
切换到root用户,使用如下命令进行启停:

systemctl start telegraf
systemctl stop telegraf
systemctl restart telegraf
systemctl status telegraf

问题记录

Post Directory

扫码关注公众号:暂无公众号
发送 290992
即可立即永久解锁本站全部文章