nmon2influxdb+grafana服务金控可视化部署
nmon2influxdb的安装
nmon的安装
grafana的安装
相关操作
导入数据验证
- 首先输入nmon命令进行采集 ./nmon -ft -s 10 -c 20
- 输入nmon2influxdb命令将采集数据导入inluxdb中 ./nmon2influxdb import (server.nmon()server为采样文件的名称)
- 查看数据库
#进入数据库操作
influx
# 查看目前已有的数据库
show databases
# 查看数据库数据保存策略
show retention policies on nmon_reports
# 使用nmon_reports库
use nmon_reports
# 显示nmon_reports库所有的表
show measurements
# 查询数据
select * from CPU_ALL
结合grafana实现监控数据可视化
- 配置grafana数据源:通过配置文件知道grafana的数据源名称是nmon2influxdb,数据库名称是nmon_reports
- 一般我们会使用nmon数据自动推送,需要每次都用使用./nmon2influxdb import *.nmon解析nmon文件并推送至Influxdb,而且在解析时并不是增量解析,导致在nmon文件比较大的时候有点小号主机的CPU.可通过减少单个nmon文件大小来避免此问题的出现:shell脚本和设置crontab定时任务.
crontab定时任务设置
#crontab 定时任务设置
#每隔1分钟执行shell脚本
*/1 * * * * sh ~/nmon.sh
shell脚本
总共五条命令
- cd ~
- ~/nmon -fT -s 10 -c 6
- sleep 10
- ~/nmon2influxdb import ~/*.nmon
- ls -t ~/*.nmon |awk '/.nmon/ {if (NR >1){system ("rm " $1)}}'
#nmon.sh
#! /bin/bash
#进入到自己的nmon文件所在目录
cd ~
#每隔一分钟推送nmon数据到influxdb,Grafana呈现:
~/nmon2influxdb import ~/*.nmon
#控制每个nmon监控文件在1分钟:
~/nmon -fT -s 10 -c 6
#按照时间排序nmon文件,删除一个距离当前时间较远的文件,始终只保留一个nmon文件:
ls -t ~/*.nmon |awk '/.nmon/ {if (NR >1){system ("rm " $1)}}'