njmon+influxdb实现服务器实时监控 无需njmon_tools
之前做性能测试一直在用nmon, 最近看到网上说出了njmon可实现可视化实时监控,就去研究了一番。发现网上清一色的都是复制粘贴同一篇文章;但是由于软件版本更新,一路遇到了不少问题。
本文章先讲njmon监控数据插入influxdb; 后续讲解grafana从influxdb取数据源进行展示
1. influxdb安装
官方教程:https://docs.influxdata.com/influxdb/v1.7/introduction/installation/
配置 InfluxDB 的 yum 源
$ cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key EOF
注:如果找不到源 可试着将enabled = 0
yum 安装
# CentOS 7-, RHEL 7-
$ sudo yum install -y influxdb
$ sudo service influxdb start
# CentOS 7+, RHEL 7+
$ sudo yum install -y influxdb
$ sudo systemctl start influxdb
创建njmon库
$ influx > create database njmon
> show databases
name: databases
name ----
_internal njmon
> exit
启用用户认证:
添加用户,设置权限。
# 查看所有用户 > show users
user admin ---- -----
# 创建 admin 用户,设置密码为 admin
> create user "admin" with password 'admin' with all privileges
# 再次查看用户信息,发现 admin 为 true
> show users
user admin
---- -----
admin true
influxDB默认是禁用认证策略的
# 编辑配置文件,把 [http] 下的 auth-enabled 选项设置为 true
$ vi /etc/influxdb/influxdb.conf
[http]
...
auth-enabled = true
...
# 重启服务,配置生效
$ systemctl restart influxdb.service
2. njmon
安装njmon 此处下载的最新版本
官方下载总目录:https://sourceforge.net/projects/nmon/files/
# 下载
$ wget http://sourceforge.net/projects/nmon/files/njmon_linux_binaries_v71.zip
# 解压
$ unzip njmon_linux_binaries_v71.zip
# 选择相应版本,放到 local 的 bin 下, 加到bin下需用root给与执行权限
$ mv nimon_RHEL7_x86_64_v71 /usr/local/bin/njmon
# 验证
$ njmon -?
采集数据到influxdb
njmon -s 30 -c 2880-i localhost -p 8086 -x njmon -y admin -z admin
-s 采集时间间隔 -c 采集次数 -i influxdb服务器的域名或ip地址,因为我influxdb部署在被监控的服务器上,所以用的localhost
-p influxDB的端口号 默认为8086 -x influxDB数据库名 -y influxDB 用户名 -z influxDB密码
查看是否有数据插入influxdb
# 使用 njmon > use njmon
Using database njmon
# 查看 measurements,有数据表示已经采集到
> show measurements
name: measurements
name ----
cpu_total
cpuinfo
cpus
disks
filesystems
identity
lscpu
networks
os_release
proc_meminfo proc_version
proc_vmstat
stat_counters
timestamp
uptime