实验环境: 106.12.88.74 ---> influxdb 1.7.6 106.12.88.228 ---> Grafana 6.2.2.1 119.3.92.176 ----> Mysql 5.7.21 +++++++++++++++++++++++++++++++++ 在mysql 服务器 119.3.92.176 上创建用户,用于influxdb读取状态信息119.3.92.176 ----> Mysql 5.7.21: Python安装mysql扩展 pip install pymysql -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 也可以直接输入: pip install pymysql
python 监控mysql 的脚本:(119.3.92.176) vim /data/influxdb/mysql_status.py import pymysql from influxdb import InfluxDBClient client = InfluxDBClient('106.12.88.74', 8086, 'shijiange', 'w.....3', 'shijiange') conn = pymysql.connect("119.3.92.176","influxdb","sa...xy8976","test" ) cur = conn.cursor(pymysql.cursors.DictCursor) cur.execute('show global status') fc = cur.fetchall() for oneresult in fc: if oneresult['Variable_name'] in ['Threads_running','Com_select','Com_update','Com_delete','Com_insert', 'Connections']: data_list = [{'measurement': 'mysql_status', 'tags': {'item': 'mysql.%s' % oneresult['Variable_name']}, 'fields': {'value': int(oneresult['Value']) }}] client.write_points(data_list)
![]()
登录influxdb ( 106.12.88.74 )---> 查看数据
119.3.92.176 加入crontab,然后图表展示观察 vim /etc/crontab
登录grafana(106.12.88.228),添加监控mysql的图形: 直接复制先前的nginx 图形,进行修改。添加mysql线程数监控图形:
![]()
![]()
![]()
![]()
![]()
添加mysql连接数监控图形: 复制mysql的线程数监控图形,进行修改。
![]()
![]()
![]()
添加mysql增、删、改、查 监控图形: 复制mysql连接数监控图形,进行修改。
![]()
![]()
![]()
+++++++++++++++++++++++++++
![]()
119.3.92.176 ----> Mysql 5.7.21:
python 监控mysql 的脚本:(119.3.92.176)
vim /data/influxdb/mysql_status.py
import pymysql
from influxdb import InfluxDBClient
client = InfluxDBClient('106.12.88.74', 8086, 'shijiange', 'w.....3', 'shijiange')
conn = pymysql.connect("119.3.92.176","influxdb","sa...xy8976","test" )
cur = conn.cursor(pymysql.cursors.DictCursor)
cur.execute('show global status')
fc = cur.fetchall()
for oneresult in fc:
if oneresult['Variable_name'] in ['Threads_running','Com_select','Com_update','Com_delete','Com_insert', 'Connections']:
data_list = [{'measurement': 'mysql_status', 'tags': {'item': 'mysql.%s' % oneresult['Variable_name']}, 'fields': {'value': int(oneresult['Value']) }}]
client.write_points(data_list)
+++++++++++++++++++++++++++