Nagios是一款开源的企业级监控系统,能够实现对系统CPU、磁盘、网络等方面参数的基本系统监控,以及SMTP,POP3,HTTP,NNTP等各种基本的服务类型。另外通过安装插件和编写监控脚本,用户可以实现应用监控,并针对大量的监控主机和多个对象部署层次化监控架构。
Nagios本身不提供监控功能,所有的监控功能都要考插件实现,需要在被监控机上安装agent插件
功能:监控进程、端口、服务和自定义监控(脚本实现)
优点:
1.稳定的系统管理代码
2.可以监控多个协议、邮件、短信通知
3.使用命令加载配置,不会影响nagios的正常运行
4.出错的服务器,可以设置自动重启,自动日志滚动
5.配置灵活可以自定义。
缺点:
1.没有自动发现的功能,需修改配置文件
2.只能在终端进行配置,不方便拓展,可读性较差
3.对性能和流量等指标处理较差
4.时间控制台功能较弱,插件易用性差
安装nagios的nrpe客户端:
apt-get install nagios-nrpe-server (主动监控插件)
apt-get install nsca (被动监控插件)
puppetmaster002服务器地址:192.168.207.129
文件路径:/etc/puppet/modules/nagios/files/server/Soniu
define host{
use soniu-host
host_name xxxxxx.soniu.com
alias xxxxx
address 192.168.xxx.xxx
check_period 24x7 这里的 check_period 告诉 nagios 检查主机的时间段
check_interval 5 nagios 对主机的检查时间间隔,这里是 5 分钟。
retry_interval 1 重试检查时间间隔,单位是分钟。
max_check_attempts 10 nagios 对主机的最大检查次数,
}
在nagios服务器IP:192.168.207.178
文件路径:/usr/local/nagios/soniu/***-service.cfg
define service{
use soniu-service
host_name adsfqer
hostgroup_name all 所有机器都加监控
hosts !qna00013.soniu.com,!*****(主机名) 该机器不被检查
normal_check_interval 60 检查频率(分钟)
notification_interval 3 检查次数(次数)
notifications_enabled 0/1 是否开启提醒功能。1为开启,0为禁用
retry_check_interval 1 重试时间 1分钟
max_check_attempts 3 这个是出现故障的连接次数,达到这个次数之后就报警
service_description check dmesg 服务名
check_command check_nrpe_1arg!check_dmesg 1:3 检查进程 大于一次小于三次就报警
retry_check_interval 1 每 1 分钟重新检测服务,最终的状态能被确定
#event_handler check_nrpe_4arg!start_proc!root /tmp /etc/init.d/ntp restart 报警就执行check_nrpe_4arg!start_proc!进入一个目录重启进程
contact_groups soniu-operation 发送
#contacts soniu_dev
}
重启服务 /etc/init.d/nagios reload
监控进程
service_description check dmesg
check_command check_nrpe!check_proc!
监控端口
service_description check port 端口号
check_command check_nrpe!check_port端口号
服务器ip:192.168.209.91 192.168.209.92
主机名:robotlable001.soniu.com,robotlable002.soniu.com
进入主机
root@nagios:~# cdsoniu
root@nagios:/usr/local/nagios/soniu# view robot-service.cfg
监控进程 php-fpm: master process (/home/dialog/websys/php-7.1.6-fpm/etc/php-fpm.conf) 有且只有一个 监控名称 gateway_php_fpm
define service{
use soniu-service
host_name robotlable001.soniu.com,robotlable002.soniu.com 主机名根据ip地址解析
service_description gateway_php_fpm 服务名(自己起)
notification_interval 2 检测2次都有问题就报警
check_command check_nrpe_4arg!check_proc!1:2 php-fpm master
contacts 发送邮件给用户(sms为短信)
}
php-fpm: pool www 进程 大于0个小于240个 gateway_php_fpm_num
define service{
use soniu-service
host_name robotlable001.soniu.com,robotlable002.soniu.com
service_description gateway_php_fpm_num
notification_interval 2
check_command check_nrpe_4arg!check_proc!1:240 php-fpm pool 在小于1或大于240时报警
contacts
监控端口 nginx的80端口 gateway_nginx
define service{
use soniu-service
host_name robotlable001.soniu.com,robotlable002.soniu.com
service_description gateway_nginx
notification_interval 2
check_command check_tcp!80 监控80端口
contacts
}
定义联系人:
vim contacts.cfg
define contact{
use generic-contact
contact_name ******
email ******@myhexin.com
( pager *************)
}
重启服务 /etc/init.d/nagios reload
检测两次有问题就发送短信
不用写重启