之前在服务器监控工具一文中提到了许多系统监控工具,其中有一些工具也可以用于观察系统当前的运行状态;但本文介绍的是持续、稳定、有历史记录的监视系统状态的工具,例子如LUG SERVER STATUS,正如例子所示,本文介绍的是以Grafana为展示工具的系统性能监视工具。

概述

我目前有台ArchLinux服务器,所以目前的需求就是监控它,同时以下工具均支持Docker,所以如果有其它系统环境的话可以考虑在Docker下搭建。总的来说,完成系统性能监控器回答下面三个问题即可

  1. 数据从哪里来
    一般系统的数据性能情况可以通过top, nestat, ps等多个工具来查看,但一项一项的手工读取并存储入数据库很麻烦,而Telegraf就是一个收集系统和服务的统计数据的软件,并自动记录和存储入数据库
  2. 数据存储在哪里
    为保存历史记录,实时的数据需要被妥善的存储记录起来,InfluxDB是一个时序型数据库,主要用于存储时序型相关的数据
  3. 数据如何展示
    展示部分就交给可视化软件Grafana啦,它提供了丰富的展示方案和预警功能

所以TIG(Telegraf+InfluxDB+Grafana)监控器的总体关系如下:

TIG监控器

安装和使用

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中有两个参数,分别为totalcpupercpu,如果为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, closing
  • PROCESS:收集进程总数个状态组(zombie, sleeping, running),也是通过采集/proc中的数据
  • SYSTEM:系统负载,load1,2,3

保存后先用telegraf -config /etc/telegraf/telegraf.conf -test检查一下配置是否有冲突,然后启动:

1
2
sudo systemctl start telegraf
sudo systemctl enable telegraf

InfluxDB

安装并启动

1
2
3
sudo 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
3
sudo 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语句

References