176, grafana 監控cpu(day176)


監控思路

采集(使用Python腳本進行采集)

入庫(Python腳本采集完插入Influxdb數據庫)

展現(Grafana讀取Influxdb的數據進行展現)

 

Python操作Influxdb數據庫得先安裝擴展

yum install epel-release -y #安裝epel yum源

yum install python2-pip -y #安裝pip工具

pip install influxdb -i http://pypi.douban.com/simple --trusted-host pypi.douban.com #安裝Influxdb擴展

 

yum install python-devel gcc -y

pip install psutil -i http://pypi.douban.com/simple --trusted-host pypi.douban.com  #安裝psutil模塊采集硬件信息

 

 

python操作influxdb(/data/influxdb/test.py)

python需要使用influxdb擴展去操作influxdb數據庫

Client需要指定influxdb的ip、端口、用戶名、密碼、數據庫名稱

from influxdb import InfluxDBClient

client = InfluxDBClient('127.0.0.1', 8086, 'shijiange', '123456', 'shijiange')

data_list = [{'measurement': 'mytest', 'tags': {'item':'host_ip_item'}, 'fields': {'value': 100}}]

client.write_points(data_list)

 

驗證Python操作Influxdb是否成功

influx -username 'shijiange' -password '123456' -database shijiange

select * from mytest

 

實戰采集Cpu load並繪圖(/data/influxdb/loadavg.py)

from influxdb import InfluxDBClient

import commands

client = InfluxDBClient('127.0.0.1', 8086, 'shijiange', '123456', '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)

* * * * * root python /data/influxdb/loadavg.py >/dev/null 2>/dev/null

 

python監控cpu時間並入influxdb(/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, 'shijiange', '123456', '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任務,然后圖表展示觀察

* * * * * root python /data/influxdb/cpu_times_percent.py >/dev/null 2>/dev/null


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM