前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能监控平台搭建 -- Telegraf安装与简易使用指南

性能监控平台搭建 -- Telegraf安装与简易使用指南

作者头像
上帝De助手
发布2019-09-17 13:42:55
5.9K0
发布2019-09-17 13:42:55
举报
文章被收录于专栏:TestQATestQATestQA

前面我们依次介绍了Influxdb、Grafana的安装和基本使用,这次我们来看看Telegraf的安装与基本使用。Telegraf是InfluxData旗下的数据采集工具,主要用来采集各类服务的信息数据,比如:系统cpu、内存,redis、nginx等服务;跟Influxdb是兄弟产品。

Telegraf、Influxdb、Grafana三者一起共同组成性能监控的三驾马车;数据采集、数据存储、数据展示。除此之外,我们还可以把性能压测数据也一并用这套系统管理起来,完整的性能监控平台的架构是这样的。

今天我们还是主要介绍Telegraf的相关基本信息,它除了可以采集windows和linux的系统资源以及常用服务之外,还可以通过插件扩展来定制自己想要的采集行为,可以说是即强大又灵活。

安装

YUM安装

对于Centos用户,可以用yum安装

yum install telegraf
systemctl start telegraf
systemctl restart telegraf
systemctl status telegraf

或者先下载再安装:

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.11.5-1.x86_64.rpm
sudo yum localinstall telegraf-1.11.5-1.x86_64.rpm
systemctl enable telegraf.service  ## systemd服务开机自启动
telegraf -config /etc/telegraf/telegraf.conf  # 手动启动

使用

配置

在正式启动之前,需要先进行相关配置,告诉telegraf对哪些数据进行采集,配置文件地址/etc/telegraf/telegraf.conf.修改如下内容:

[[outputs.influxdb]]
   urls = ["http://localhost:8086"] # required 
   database = "telegraf" # required
   retention_policy = ""
   precision = "s"
   timeout = "5s"
   username = ""
   password = ""

主要是配置一个influxdb的地址和数据库,让telegraf知道把数据存放到哪里。当telegraf服务启动之后,我们就可以去influxdb查看相应数据是否提交成功,成功后再通过Grafana来配置数据展示。

默认telegraf会采集cpu、内存、磁盘的数据信息,下面是采集的数据样例在通过Grafana配置之后的展示效果:

中间的断掉的部分是因为关机了,Telegraf默认采集的数据项非常的多,这里只配置了几个指标值而已。

插件使用

telegraf的常用的插件有2类:一类是input,一类是output;所谓input就是采集插件,比如:系统cpu、网络。所谓output就是数据存储插件,比如:influxdb、kafka等。

telegraf默认情况下开启的output插件是influxdb,并且默认配置到本机地址,可以根据需要修改。而input插件正如上面所示默认仅开启了cpu、内存等插件,需要使用其它扩展插件就需要手动开启并配置。

配置插件的方式也有两种:一种是直接在默认配置文件中修改,因为它包含了几乎所有支持的插件配置项,只是非默认的插件都被注释掉了;另一种是新生成一个配置文件,并存放在/etc/telegraf/telegraf.d目录下,这样就可以支持多插件配置文件了。

生成一个telegraf配置文件的命令:

# 当前目录下生成一个telegraf的默认配置文件
telegraf config > telegraf.conf   
# 当前目录下生成一个包含cpu、内存、磁盘、磁盘io、网络作为输入插件,以及influxdb作为输出插件的配置文件
telegraf --input-filter cpu:mem:disk:diskio:net --output-filter influxdb config > telegraf.conf

除了采集默认的系统数据,telegraf还可以采集mysql、redis、nginx、apache、prometheus等服务,这里以采集nginx服务数据为例,介绍如何配置插件。

首先,确保先有一个nginx的服务,且该ngixn安装时支持http_stub_status_module模块,通过nginx -v可以查看到是否安装了此模块。如果没有安装的话则需要重新编译,因为就是通过该模块来监控nginx的。

如果nginx服务已经带有http_stub_status_module模块,则需要在nginx配置添加对应的请求入口,来返回nginx的状态信息。样例如下:

location /nginx-status {
       allow 127.0.0.1; # 允许的IP
       deny all;
       stub_status on;
       access_log off;
}

执行nginx -s reload命令使修改配置生效,再通过curl http://127.0.0.1/nginx-status命令来查看是否能正常获取信息。

•active connections – 活跃的连接数量•server accepts handled requests — 总共处理了11989个连接 , 成功创建11989次握手, 总共处理了11991个请求•reading — 读取客户端的连接数.•writing — 响应数据到客户端的数量•waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

接着,新生成一个采集nginx的telegraf配置文件,并存储到/etc/telegraf/telegraf.d目录下:

cd /etc/telegraf/telegraf.d
telegraf --input-filter nginx --output-filter influxdb config > nginx.conf

修改/etc/telegraf/telegraf.d/nginx.conf的内容如下:

[[inputs.nginx]]
  # An array of Nginx stub_status URI to gather stats.
  urls = ["http://localhost/nginx-status"]

  ## Optional TLS Config
#  tls_ca = "/etc/telegraf/ca.pem"
#  tls_cert = "/etc/telegraf/cert.cer"
#  tls_key = "/etc/telegraf/key.key"
  ## Use TLS but skip chain & host verification
#  insecure_skip_verify = false

  # HTTP response timeout (default: 5s)
  response_timeout = "5s"

测试下nginx插件配置文件格式是否正确。

telegraf  -config /etc/telegraf/telegraf.d/nginx.conf -input-filter nginx -test

输出内容如下则表示正常:

2019-09-01T14:04:38Z I! Starting Telegraf 1.11.5
> nginx,host=861a6da23d20,port=80,server=localhost accepts=5i,active=1i,handled=5i,reading=0i,requests=5i,waiting=0i,writing=1i 1567346678000000000

最后,我们还需要重启下telegraf服务,让新增的插件配置生效。最后查看nginx监控数据的效果如下:

总结

telegraf是一个非常强大且跨平台,可以说开箱即用的工具,只需简单的部署和配置就能采集到丰富的数据,而且还支持非常方便的扩展。配合influxdb、grafana等工具一起就可以轻松实现性能监控平台搭建。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TestQA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
    • YUM安装
    • 使用
      • 配置
        • 插件使用
        • 总结
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档