部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_数据库

前段时间小编写了一篇:使用Nginx+Telegraf+Influxb+Grafana构建高逼格Nginx集群监控系统!文章,详细了介绍了 采集器telegraf, 时序数据库influxdb , 数据展示Grafana的部署以及系统主机侧的监控添加,图表的展示。

本文就接着介绍使用 Telegraf+Influxdb+Grafana架构来快速监控MySQL。

首先 ,我们先看下效果图:部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_mysql_02

一、添加telegraf收集MySQL的配置文件

因为我们在前面已经部署好telegraf 了,也已经采集了主机侧的一些CPU ,内存,磁盘,网络流量等信息 , 现在收集Mysql 监控信息,最好还是与之前的telegraf.conf配置文件分离开。

[root@fxkj ~]# vim /etc/telegraf/telegraf.d/telegraf_mysql.conf
[[outputs.influxdb]]
database = "mysql_metrics"
urls = ["http://127.0.0.1:8086"]
namepass = ["*_mysql"]
username = "fxkj"
password = "123456"

[[inputs.mysql]]
servers = ["root:123456@tcp(localhost:3306)/?tls=false"]
name_suffix = "_mysql"

#database 表示数据库名称,采集的数据都放在此库中
#urls 表示 influxdb 数据库地址
#servers 里面包含 了MySQL 授权用户的 用户名,密码 以及连接mysql 的地址
#name_suffix 表示名称后缀

二、重启telegrag采集器,查看日志刷新

[root@fxkj ~]#  systemctl restart telegraf.service
[root@fxkj ~]# tail -n 10 /tmp/telegraf.log
2020-08-11T01:37:20Z E! [outputs.influxdb] when writing to [http://localhost:8086]: Post
2020-08-11T01:37:42Z I! Loaded processors:
2020-08-11T01:37:42Z I! Loaded outputs: influxdb influxdb
2020-08-11T01:37:42Z I! Tags enabled: host=fxkjnj.com
2020-08-11T01:37:42Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"fxkj", Flush Interval:10s

三、登录到Influxdb中查看Mysql监控数据

[root@aly mysql]# influx -username fxkj -password '123456'
Connected to http://localhost:8086 version 1.8.1
InfluxDB shell version: 1.8.1
> show databases;
name: databases
name
----
_internal
telegraf
mysql_metrics
> use mysql_metrics;
Using database mysql_metrics
> show measurements;
name: measurements
name
----
mysql_mysql

可以看到有一个mysql_metrics的库以及一个叫mysql_mysql的表。

查看表中有哪些字段:

> show field keys from mysql_mysql;
name: mysql_mysql
fieldKey fieldType
-------- ---------
aborted_clients integer
aborted_connects integer
access_denied_errors integer
busy_time integer
bytes_received integer
bytes_sent integer
commands_admin_commands integer
commands_create_index integer
commands_create_procedure integer
commands_drop_db integer
commands_drop_event integer
commands_drop_function integer
commands_drop_index integer
commands_stmt_reprepare integer
handler_mrr_key_refills integer
handler_read_rnd integer
handler_read_rnd_deleted integer
handler_read_rnd_next integer
handler_rollback integer
handler_savepoint integer
handler_savepoint_rollback integer
innodb_buffer_pool_pages_free integer
innodb_buffer_pool_pages_made_not_young integer
innodb_buffer_pool_pages_made_young integer
innodb_dblwr_writes integer
innodb_deadlocks integer
innodb_descriptors_memory integer
innodb_dict_tables integer
innodb_ibuf_merges integer
innodb_ibuf_segment_size integer
innodb_x_lock_spin_waits integer
key_blocks_not_flushed integer
not_flushed_delayed_rows integer
open_files integer
open_streams integer
open_table_definitions integer
open_tables integer
threads_connected integer
threads_created integer
threads_running integer
uptime integer
uptime_since_flush_status integer

四、登录Grafana 添加数据源 ,import 导入监控模板

更多的监控模板,大家可以到https://grafana.com/grafana/dashboards中下载。

因为之前做了个主机侧的监控,所以为了方便区分,我们这次再添加一个influxdb数据源。

点击Configuration ,选择 Data Sources ,点击 Add data source部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_zabbix_03数据源名称:MySQL (我监控模板里的数据源是这个名称,最好和我一致,不然模板导入会报错)

  • URL :Influxdb 地址

  • Database :mysql 监控信息存放在 influxdb 数据库中的名称部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_mysql_04
  • 部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_mysql_04点击 Save & Test 验证添加是否有问题部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_数据库_06
  • 部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_数据库_06数据源准备好了 就可以导 mysql监控模板了。

点击左侧+号 ,选择import ,—— > 点击Upload.json file, 上传模板文件。部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_数据库_08

部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_数据库_08部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_linux_10

部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_linux_10部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_运维_12

部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_运维_12到此模板就导入成功了

五、图标展示

部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_运维_14部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_数据库_15

部署Telegraf+Influxdb+Grafana 架构来监控 MySQL_linux_16