Grafana可以用来实时查看linux系统的各种性能数据。
centos 7+influxdb1.7.6+grafana-4.6.3-1+nmon2influxdb-2.1.7+nmon-16m
下载rpm包:
influxdb官网:https://docs.influxdata.com/influxdb/v2.0/get-started/?t=Linux
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.6.x86_64.rpm
安装并启动influxdb服务:
rpm -ivh influxdb2-2.0.4.x86_64.rpm
systemctl start influxdb.service //开启服务
systemctl status influxdb.service //查看服务状态,显示active (running)表示服务状态正常
/etc/influxdb/influxdb.conf //配置文件路径
下载Grafana安装包:
Grafana官网下载地址:https://grafana.com/grafana/download/4.6.3
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3-1.x86_64.rpm
安装Grafana rpm包:
rpm -ivh grafana-4.6.3-1.x86_64.rpm
启动服务:
/etc/grafana/grafana.ini //配置文件路径
systemctl start grafana-server.service //开启服务
systemctl status grafana-server.service //查看服务状态
在浏览器地址栏输入:http://vpsip:3000,即可进入Grafana首页,默认用户名和密码:admin/admin
下载nmon2influxdb安装包:
nmon2influxdb官网:https://www.nmon2influxdb.org/getting-started/linux/
nmon2influxdb组件GitHub地址:Releases · adejoux/nmon2influxdb · GitHub
安装nmon2influxdb:
tar -zxvf nmon2influxdb_2.1.8_linux_64-bit.tar.gz
cp nmon2influxdb /usr/local/bin/
cd /usr/local/bin/
chmod +x nmon2influxdb
nmon2influxdb -v
nmon是linux上的一个性能查看工具,优点是可以一次性查看系统的多项性能指标,且资源占用较少,它是一个二进制文件,下载后直接上传到vps上即可使用。
下载链接: https://pan.baidu.com/s/1znAhcEZ2dd8tZpI4bpE2-g 提取码:r8s4
tar -zxvf nmon16m_helpsystems.tar.gz
cp ./nmon_x86_64_oel7 ~/nmon
配置nmon2influxdb:
nmon2influxdb配置文件存放在当前登录的用户的家目录下面,打开这个文件修改以下几行:
vim /root/.nmon2influxdb.cfg
使用nmon命令行工具生成一个nmon数据文件:
./nmon -fT -s 10 -c 6 //-fT是生成一个指定格式的.nmon数据文件,-s 10 -c 6是每隔10秒采集一次,一共采集6次
ps -ef |grep nmon //查看nmon进程
待nmon进程执行完成后,将生成的文件导入数据库:
nmon2influxdb import ecs-s6-medium-2-linux-20200214130415_210401_1803.nmon
进入influxdb数据库,会看到新生成了两个数据库表:nmon_reports和nmon2influxdb_log,这个nmon_reports就是刚才导入的nmon文件的数据库表。
配置Grafana,在首页Grafana中添加一个data source:
在后台使用nmon2influxdb生成一个Grafana模板:
nmon2influxdb dashboard ecs-s6-medium-2-linux-20200214130415_210401_1825.nmon
创建nmon.sh文件:
#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)}}'
添加crontab任务:
crontab -e
*/1 * * * * sh ~/nmon.sh
最终效果: