博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
07_Influxdb+Grafana监控CPU
阅读量:2003 次
发布时间:2019-04-28

本文共 3632 字,大约阅读时间需要 12 分钟。

注意:如果你安装的是python3和pip3.那么下面的任何操作都应该是python3 和pip3 而不是python和pip

top 命令显示信息

监控思路

采集(使用Python脚本进行采集)

入库(Python脚本采集完插入Influxdb数据库)

展现(Grafana读取Influxdb的数据进行展现)

 

Python操作Influxdb数据库得先安装扩展

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

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

#安装Influxdb扩展:

pip install influxdb或者

pip install influxdb -i http://pypi.douban.com/simple --trusted-host pypi.douban.com都可以

如果此时出现异常:那么pip install --upgrade pip更新pip版本

这样就是成功了

yum install python-devel gcc -y

#安装psutil模块采集硬件信息:

pip install psutil或者

pip install psutil -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

如果此时失败,那么:

pip install psutil==5.6.7

此时如果import psutil成功那么 就是成功了

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

首先创建文件夹:[root@hadoop000 ~]# mkdir -pv /data/influxdb

然后编辑:vim /data/influxdb/test.py

python需要使用influxdb扩展去操作influxdb数据库

Client需要指定influxdb的ip、端口、用户名、密码、数据库名称

from influxdb import InfluxDBClientclient = 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脚本:[root@hadoop000 ~]# python /data/influxdb/test.py

验证Python操作Influxdb是否成功

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

select * from mytest

 

实战采集Cpu load并绘图(/data/influxdb/loadavg.py)

from influxdb import InfluxDBClientimport commandsclient = 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)

进入/data/influxdb/运行该脚本:python /data/influxdb/loadavg.py

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

select * from loadavg

添加到linux的crontab任务,然后图表展示观察(/etc/crontab)

vim /etc/crontab

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

 

python监控cpu时间并入influxdb(/data/influxdb/cpu_times_percent.py)

vim /data/influxdb/cpu_times_percent.py

from influxdb import InfluxDBClientimport psutilcpu_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)

python /data/influxdb/cpu_times_percent.py

添加到linux的crontab任务,然后图表展示观察

[root@hadoop000 influxdb]# vim /etc/crontab

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

转载地址:http://pattf.baihongyu.com/

你可能感兴趣的文章
java 8:只取年月日的java.util.Date(时分秒清零)对象
查看>>
Flink的一些核心概念与编程模型(3)
查看>>
Flink的一些核心概念与编程模型(4)
查看>>
Flink Runtime(5)
查看>>
Flink Runtime(6)
查看>>
Flink Runtime(7)--搭建非YARN的主从FLINK集群
查看>>
Flink Runtime(8)-- 创建Flink项目及依赖管理
查看>>
Flink Runtime(9)-- 自己编译Flink
查看>>
Flink Runtime(10)-- Flink编译报错集锦
查看>>
Flink API 通用基本概念(11)
查看>>
Flink DataStream API概述(12)
查看>>
Flink Operator概述(13)
查看>>
Flink Time概述(14)
查看>>
Flink Window概述(15)
查看>>
Flink Operators之CoGroup和Join概述(16)
查看>>
Flink Operators之Process Function(17)
查看>>
Flink 异步I/O访问外部数据(18)
查看>>
深入理解python--线程、进程与协程(1)
查看>>
Flink中增量聚合函数和全量聚合函数的关系
查看>>
HIVE自定义函数--UDF函数(用户自定义函数)详解
查看>>