Grafana系统性能监视器
之前在服务器监控工具一文中提到了许多系统监控工具,其中有一些工具也可以用于观察系统当前的运行状态;但本文介绍的是持续、稳定、有历史记录的监视系统状态的工具,例子如LUG SERVER STATUS,正如例子所示,本文介绍的是以Grafana为展示工具的系统性能监视工具。
概述
我目前有台ArchLinux服务器,所以目前的需求就是监控它,同时以下工具均支持Docker,所以如果有其它系统环境的话可以考虑在Docker下搭建。总的来说,完成系统性能监控器回答下面三个问题即可
- 数据从哪里来
一般系统的数据性能情况可以通过top,nestat,ps等多个工具来查看,但一项一项的手工读取并存储入数据库很麻烦,而Telegraf就是一个收集系统和服务的统计数据的软件,并自动记录和存储入数据库 - 数据存储在哪里
为保存历史记录,实时的数据需要被妥善的存储记录起来,InfluxDB是一个时序型数据库,主要用于存储时序型相关的数据 - 数据如何展示
展示部分就交给可视化软件Grafana啦,它提供了丰富的展示方案和预警功能
所以TIG(Telegraf+InfluxDB+Grafana)监控器的总体关系如下:

安装和使用
Telegraf
安装1
sudo yaourt -S telegraf-bin
然后需要配置/etc/telegraf/telegraf.conf,其中主要关注[global_tags], [agent], [[outputs.influxdb]],还有INPUT PLUGINS的所有需要监控的部分,总的来说按照注释的说明填写即可;其中有必要说明一下INPUT PLUGINS里有许多内容默认或者空着就好,Telegraf会自动识别相应系统指标的名称。
INPUT PLUGINS->system plugin: 主要监控项包含CPU, DISK, KERNEL, KERNEL_VMSTAT, NETSTAT, PROCESS, SYSTEM
- CPU中有两个参数,分别为
totalcpu和percpu,如果为true即分别采集相关cpu的指标。主要指标有:user,nice,system,idle,iowait,cpu_usage等 DISK:主要指标有free,total,used(单位字节),uesd_percent,inode_free,inode_total,inode_used。需要注意的是,used_percent指标通过使用used/(used+free)计算得出MEM:主要指标total,available(/proc/meminfo原生值),available_percent(available / total * 100),used_percent(used / total * 100)NET:通过lsof采集tcp连接状态和udp相关信息。指标:established,syn_sent,syn_recv,fin_wait1,time_wait,close,listen,closingPROCESS:收集进程总数个状态组(zombie,sleeping,running),也是通过采集/proc中的数据SYSTEM:系统负载,load1,2,3
保存后先用telegraf -config /etc/telegraf/telegraf.conf -test检查一下配置是否有冲突,然后启动:1
2sudo systemctl start telegraf
sudo systemctl enable telegraf
InfluxDB
安装并启动1
2
3sudo pacman -S influxdb
sudo systemctl start influxdb
sudo systemctl enable influxdb
InfluxDB服务会启动三个端口:8086为服务的默认数据处理端口,主要用来InfluxDB数据库的相关操作,可提供相关的API;8083为管理员提供了一个可视化的web界面,用来为用户提供友好的可视化查询与数据管理;8088主要为了元数据的管理。需要注意的是,InfluxDB默认是需要influxdb用户启动,且数据存放在/var/lib/influxdb/下
Grafana
安装并启动1
2
3sudo pacman -S grafana
sudo systemctl start grafana
sudo systemctl enable grafana
Grafana默认会开启3000端口,成功启动之后就可以通过http://localhost:3000 来访问Garfana的界面,然后进行相关的数据源配置以及所需的图标指标配置。
简单使用:
首次打开Grafana会提示进行用户认证,默认是admin用户,密码也是admin; 剩下的就是 添加数据源->新建Dashboard->新建Panel->Add Query->Choose Visualization即可,其中Dashboard是Grafana的工作台的意思,每个Panel就是一张图表,工作台可以罗列多张图表;Add Query部分要根据自己的需求定制SQL语句