相信大家也和微魔一样,手上应该有不少的VPS,那么如何监控每个VPS便成了问题,今天微魔就要和大家分享的是一款开源的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
你能得到的效果图如下,
本文译自国外网友分享的技术贴,实际使用中微魔部分修改,不一一列举。