gojira.net
推荐一个开源的服务器/VPS监控软件——Icinga,有了它,你不仅可以监控(Web方式)当前的VPS,使用NRPE还可以监控其他的服务器/VPS(本文称之为被监控端)。算是比较实用的好东西了
本文测试的环境是在Ubuntu 14.04下进行,其他发行版本基本一样,本文使用命令均需要root权限,如非root用户,请使用sudo命令进行每一步的命令
一、在监控端安装Icinga
1.导入Icinga的PPA到你的包管理器
add-apt-repository ppa:formorer/icinga
如果出现如下错误
add-apt-repository: command not found
请运行如下命令
apt-get install software-properties-common
网上传言的“apt-get install python-software-properties”的方法无效…
2.更新一下管理包数据库
apt update
3.安装MySQL
apt install icinga icinga-doc icinga-idoutils mysql-server libdbd-mysql mysql-client
安装各软件可能遇到的问题汇总如下
MySQL:输入两次Root密码
PostFix配置:选择"Internet Site"(也就是2)
PostFix配置: 输入域名
icinga-cgi配置: 输入"icingaadmin"用户的密码(用于登陆)
icinga-common配置: 输入"yes"以其用外部命令
icinga-idoutils配置: 输入"Yes"来配置icinga-idoutils和dbconfig-common的数据库连接
icinga-idoutils配置:输入"mysql"作为数据库
icinga-idoutils配置:输入MySQL的root密码
icinga-idoutils配置:输入icinga-idoutils数据库用户的密码
4.将Apache用户(www-data)加入到nagios用户组
usermod -a -G nagios www-data
5.自启动
vi /etc/default/icinga
将设置为IDO2DB=yes
6.重启ido2db
service ido2db start
7.开启idomod模块,激活idoutils
cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg
8.重启icinga
service icinga restart
9.Web访问(用户名为icingaadmin)
访问地址:http://域名或ip/icinga
如果Localhost显示的是Down,证明本地的Ping权限没有开启,运行如下命令解决
chmod u+s 'which ping'
二、使用Icinga监控其他VPS
你可以使用icinga监控其他的VPS,我们只需要在那些需要监控的VPS(即被监控端)上安装NRPE和Nagios的插件
1.安装NRPE和Nagios的插件
apt install nagios-plugins nagios-nrpe-server
2.查看“/”目录的硬盘挂载位置(返回的是一个诸如/dev/vda的格式,后面会用到)
df -h /
3.修改NRPE的配置
sudo vi /etc/nagios/nrpe.cfg
具体修改如下
server_address:本机ip地址
allowed_hosts:Icinga监控端的ip地址(也就是我们第一部分安装的VPS)
command[check_hda1]:修改/dev/hda1成你刚才得到的挂载位置
成品类似于
server_address=client_private_IP
allowed_hosts=nagios_server_private_IP
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda
注意默认NRPE监控的端口是5566,如果防火墙屏蔽了此端口,请开放
4.重启NRPE
service nagios-nrpe-server restart
5.Icinga配置监听设置
回到上面那台监控VPS,我们要监控的VPS都储存于/etc/icinga/objects文件夹中,接下来建立监听设置(也就是为我们后来安装NRPE的那台VPS进行配置)
vi /etc/icinga/objects/自行命名.cfg
里面的配置可以根据自己的需要选择,大家自行修改,案例如下,
Ping:
define service {
use generic-service
host_name wordpress-1
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
SSH:
define service {
use generic-service
host_name wordpress-1
service_description SSH
check_command check_ssh
notifications_enabled 0
}
负载Load:
define service {
use generic-service
host_name wordpress-1
service_description Current Load
check_command check_load!5.0!4.0!3.0!10.0!6.0!4.0
}
当前用户:
define service {
use generic-service
host_name wordpress-1
service_description Current Users
check_command check_users!20!50
}
硬盘空间Disk Space:
define service {
use generic-service
host_name wordpress-1
service_description Disk Space
check_command check_all_disks!20%!10%
}
最后,重启一下Icinga以生效
service icinga reload
你能得到的效果图如下:
文章来源:微魔