08_Influxdb+Grafana监控内存磁盘流量

1.python监控内存并入influxdb(/data/influxdb/virtual_memory.py)

把下面的代码添加到/data/influxdb/virtual_memory.py文件中。

from influxdb import InfluxDBClient
import psutil

virtual_memory = psutil.virtual_memory()
client = InfluxDBClient('127.0.0.1', 8086, 'tuoyuxin', '123456', 'tuoyuxin')

data_list = [{'measurement': 'memory', 'tags': {'item': 'total'}, 'fields': {'value': float(virtual_memory.total)}}]
client.write_points(data_list)
data_list = [{'measurement': 'memory', 'tags': {'item': 'available'}, 'fields': {'value': float(virtual_memory.available)}}]
client.write_points(data_list)
data_list = [{'measurement': 'memory', 'tags': {'item': 'used'}, 'fields': {'value': float(virtual_memory.used)}}]
client.write_points(data_list)

具体操作如下:
在这里插入图片描述然后修改/etc/crontab文件,数据一分钟写入一次。
添加到linux的crontab任务,然后图表展示观察:
添加* * * * * root python /data/influxdb/virtual_memory.py >/dev/null 2>/dev/null
在这里插入图片描述新建一个dashboard,命名为“内存监控”,放在tuoyuxin文件夹中。
在这里插入图片描述数据源选择memory,
在这里插入图片描述

内存的换算一般都是用的1024的比例,Grafana上两个单位

data(iec) 这个是按照1024比例来算的
data(metric) 这个是按照1000比例来算的

2.python监控磁盘并入influxdb(/data/influxdb/disk.py) / /data /boot

from influxdb import InfluxDBClient
import psutil

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

for one_disk in psutil.disk_partitions():
    mountpoint = one_disk.mountpoint
    diskused = psutil.disk_usage(mountpoint).percent
    data_list = [{'measurement': 'disk', 'tags': {'item': 'diskused.%s' % mountpoint}, 'fields': {'value': float(diskused)}}]
    client.write_points(data_list)

添加到linux的crontab任务,然后图表展示观察
向/etc/crontab中添加* * * * * root python /data/influxdb/disk.py >/dev/null 2>/dev/null

3.python监控流量并入influxdb(/data/influxdb/traffic.py)

from influxdb import InfluxDBClient
import psutil

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

for netname, netinfo in psutil.net_io_counters(pernic=True).items():
    bytes_sent = netinfo.bytes_sent
    bytes_recv = netinfo.bytes_recv
    data_list = [{'measurement': 'traffic', 'tags': {'item': 'bytes_sent.%s' % netname}, 'fields': {'value': bytes_sent}}]
    client.write_points(data_list)
    data_list = [{'measurement': 'traffic', 'tags': {'item': 'bytes_recv.%s' % netname}, 'fields': {'value': bytes_recv}}]
    client.write_points(data_list)

添加到linux的crontab任务,然后图表展示观察
向/etc/crontab中添加* * * * * root python /data/influxdb/traffic.py >/dev/null 2>/dev/null
在这里插入图片描述
在这里插入图片描述

流量单位说明(每秒的流量,无负数)
non_negative_derivative(mean(“value”), 1s)
通过psutil收集到的是bytes,流量单位一般bit,所以说还乘以8

说明

influxdb+grafana的组合监控硬件并不是好选择,如果熟悉Zabbix的话,推荐Zabbix来监控硬件。
influxdb+grafana的组合用来监控业务数据是非常好用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值