telegraf & influxdb & mysql & grafana 整合
一、下载与安装
## telegraf rpm方式
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.15.2-1.x86_64.rpm
sudo yum localinstall telegraf-1.15.2-1.x86_64.rpm
## telegraf 二进制方式
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.15.2_linux_amd64.tar.gz
tar xf telegraf-1.15.2_linux_amd64.tar.gz
## grafana rpm方式
wget https://dl.grafana.com/oss/release/grafana-7.1.1-1.x86_64.rpm
sudo yum install grafana-7.1.1-1.x86_64.rpm
建议使用rpm方式安装,因为yum会自动注册服务,方便我们调用。
##使用rpm方式安装报错,原因是influx的仓库关闭了连接,将其开启即可:
Error: Cannot retrieve repository metadata (repomd.xml) for repository: influxdb. Please verify its path and try again
##解决方法:
[root@node1 server]# cd /etc/yum.repos.d
You have new mail in /var/spool/mail/root
[root@node1 yum.repos.d]# ll
total 28
-rw-r--r--. 1 root root 1991 Aug 4 2015 CentOS-Base.repo
-rw-r--r--. 1 root root 647 Aug 4 2015 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 289 Aug 4 2015 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Aug 4 2015 CentOS-Media.repo
-rw-r--r--. 1 root root 6259 Aug 4 2015 CentOS-Vault.repo
-rw-r--r-- 1 root root 206 Jul 15 15:22 influxdb.repo
###修改其下 enabled=1改成enabled=0
[root@node1 yum.repos.d]# vim influxdb.repo
三、配置文件
telegraf.conf
[global_tags]
[agent]
interval = "10s"
round_interval = true
metric_batch_size = 1000
metric_buffer_limit = 10000
collection_jitter = "0s"
flush_interval = "10s"
flush_jitter = "0s"
precision = ""
hostname = ""
omit_hostname = false
###############################################################################
# OUTPUT PLUGINS #
###############################################################################
[[outputs.influxdb]]
urls = ["http://127.0.0.1:8086"]
database = "mydb"
write_consistency = "any"
timeout = "5s"
username = "admin"
password = "admin"
###############################################################################
# INPUT PLUGINS #
###############################################################################
[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
report_active = false
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
[[inputs.kernel]]
[[inputs.mem]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]
[[inputs.mysql]]
servers = ["root:root@tcp(192.168.25.1:3306)/?tls=false"]
metric_version = 2
table_schema_databases = []
[[inputs.net]]
interfaces = ["eth0","lo"]
[[inputs.netstat]]
四、测试配置文件
根据报错信息自行调整:
# 测试 /etc/telegraf/telegraf.conf 配置文件中输入 cpu 配置是否正确
telegraf -config /etc/telegraf/telegraf.conf -input-filter cpu -test
# 测试 /etc/telegraf/telegraf.conf 输出 influxdb 配置是否正确
telegraf -config /etc/telegraf/telegraf.conf -output-filter influxdb -test
# 测试 /etc/telegraf/telegraf.d/mysql.conf 输入 cpu 和 输出 influxdb 配置是否正确
telegraf -config /etc/telegraf/telegraf.d/mysql.conf -input-filter cpu -output-filter influxdb -test
五、influxdb中结果展示:
> show measurements
name: measurements
name
----
cpu
cpu2
disk
diskio
kernel
mem
mysql
net
netstat
processes
swap
system
六、总结
1、telegraf中的配置组件使用[[inputs.*]]
语法来添加需要监控的组件。
2、telegraf添加的输入组件会在influx中自动生成一个measurement,也就是一张表。
3、在配置mysql输入件的时候,注意一个参数选项table_schema_databases = []
,如果此参数为空的话,那么会将mysql中的所有数据库全部监控。
4、面板可以使用官网上的参考面板,本文中使用的是1177mysql面板,链接:https://grafana.com/dashboards/1177,1443则是可以监控linux的使用状态面板。