实验环境: 106.12.88.74 ----> Influxdb 1.7.6 Centos 7.5 106.12.88.228 ---> Grafana 6.2.2.1 Centos 7.5 +++++++++++++++++++++++++++++++++ 监控思路 采集(使用Python脚本进行采集) 入库(Python脚本采集完插入Influxdb数据库) 展现(Grafana读取Influxdb的数据进行展现) 106.12.88.74 上面,写python 脚本。 Python操作Influxdb数据库得先安装扩展 yum install epel-release -y yum install python2-pip -y #安装Influxdb扩展 pip install influxdb -i http://pypi.douban.com/simple --trusted-host pypi.douban.com验证influxdb扩展安装是否成功:
#安装psutil模块采集硬件信息 yum install python-devel gcc -y pip install psutil -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
mkdir -p /data/influxdb 用于存放python脚本 python操作influxdb(/data/influxdb/test.py) python需要使用influxdb扩展去操作influxdb数据库 Client需要指定influxdb的ip、端口、用户名、密码、数据库名称 vim /data/influxdb/test.py from influxdb import InfluxDBClient client = InfluxDBClient('127.0.0.1', 8086, 'xc', 'win...@1.3', 'shijiange') data_list = [{'measurement': 'mytest', 'tags': {'item':'host_ip_item'}, 'fields': {'value': 100}}] client.write_points(data_list) 保存退出。
验证Python操作Influxdb是否成功
实战采集Cpu load并绘图(/data/influxdb/loadavg.py) vim /data/influxdb/loadavg.py from influxdb import InfluxDBClient import commands client = InfluxDBClient('127.0.0.1', 8086, 'xc', 'wind....@1.3', 'shijiange') status,loadavg1 = commands.getstatusoutput(" cat /proc/loadavg |awk '{print $1}' ") status,loadavg5 = commands.getstatusoutput(" cat /proc/loadavg |awk '{print $2}' ") status,loadavg15 = commands.getstatusoutput(" cat /proc/loadavg |awk '{print $3}' ") data_list = [{'measurement': 'loadavg', 'tags': {'item': 'shijiange_x.x.x.x_loadavg1'}, 'fields': {'value': float(loadavg1)}}] client.write_points(data_list) data_list = [{'measurement': 'loadavg', 'tags': {'item': 'shijiange_x.x.x.x_loadavg5'}, 'fields': {'value': float(loadavg5)}}] client.write_points(data_list) data_list = [{'measurement': 'loadavg', 'tags': {'item': 'shijiange_x.x.x.x_loadavg15'}, 'fields': {'value': float(loadavg15)}}] client.write_points(data_list)
添加到linux的crontab任务,然后图表展示观察(/etc/crontab)
每分钟采集一次 登录Grafana (106.12.88.228),重新创建一个面板 cpu_jk 存放在shijiange这个文件夹 添加图形:
![]()
![]()
![]()
![]()
![]()
python监控cpu时间并入influxdb(/data/influxdb/cpu_times_percent.py) vim /data/influxdb/cpu_times_percent.py from influxdb import InfluxDBClient import psutil cpu_times_percent = psutil.cpu_times_percent(interval=1) client = InfluxDBClient('127.0.0.1', 8086, 'xc', 'wind...@1.3', 'shijiange') data_list = [{'measurement': 'cpu_times_percent', 'tags': {'item': 'shijiange_x.x.x.x_user'}, 'fields': {'value': float(cpu_times_percent.user)}}] client.write_points(data_list) data_list = [{'measurement': 'cpu_times_percent', 'tags': {'item': 'shijiange_x.x.x.x_system'}, 'fields': {'value': float(cpu_times_percent.system)}}] client.write_points(data_list) data_list = [{'measurement': 'cpu_times_percent', 'tags': {'item': 'shijiange_x.x.x.x_iowait'}, 'fields': {'value': float(cpu_times_percent.iowait)}}] client.write_points(data_list) data_list = [{'measurement': 'cpu_times_percent', 'tags': {'item': 'shijiange_x.x.x.x_idle'}, 'fields': {'value': float(cpu_times_percent.idle)}}] client.write_points(data_list)
![]()
添加到linux的crontab任务,然后图表展示观察
登录Grafana ,复制先前创建的图形,cpu_load ,进行修改
![]()
![]()
![]()
![]()
![]()
![]()
一定要保存。
每分钟采集一次
python监控cpu时间并入influxdb(/data/influxdb/cpu_times_percent.py)
vim /data/influxdb/cpu_times_percent.py
from influxdb import InfluxDBClient
import psutil
cpu_times_percent = psutil.cpu_times_percent(interval=1)
client = InfluxDBClient('127.0.0.1', 8086, 'xc', 'wind...@1.3', 'shijiange')
data_list = [{'measurement': 'cpu_times_percent', 'tags': {'item': 'shijiange_x.x.x.x_user'}, 'fields': {'value': float(cpu_times_percent.user)}}]
client.write_points(data_list)
data_list = [{'measurement': 'cpu_times_percent', 'tags': {'item': 'shijiange_x.x.x.x_system'}, 'fields': {'value': float(cpu_times_percent.system)}}]
client.write_points(data_list)
data_list = [{'measurement': 'cpu_times_percent', 'tags': {'item': 'shijiange_x.x.x.x_iowait'}, 'fields': {'value': float(cpu_times_percent.iowait)}}]
client.write_points(data_list)
data_list = [{'measurement': 'cpu_times_percent', 'tags': {'item': 'shijiange_x.x.x.x_idle'}, 'fields': {'value': float(cpu_times_percent.idle)}}]
client.write_points(data_list)
登录Grafana ,
