一 nagios 相关概念
Nagios 是一款开源的免费网络监视工具,能有效监控 Windows、Linux 和 Unix 的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第
一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。 Nagios 可运行在 Linux/Unix 平台之上,同时提供一个可选的基于浏览器的 WEB 界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
二 使用 nagios 监控本机状态
1.配置yum源
#vim /etc/yum.repos.d/y.repo
2.下载安装 nagios
#yum --enablerepo=y install nagios nagios-plugins-{ping,disk,users,procs,load,swap,ssh,http}(括号里都是插件)-y
注:插件下载安装在/use/lib64/nagios/plugins下
使 apache 支持 php
1)安装 apache 和 php:
#yum install httpd php php-mbstring php-pear -y
2)删除调用 apache 测试页的配置文件:
#cd /etc/httpd/conf.d/
#rm -rf welcome.conf
3)修改 apache 配置文件
#vim /etc/httpd/conf/httpd.conf
86 行:ServerAdmin root@yy.com
95 行:ServerName www.yy.com:80
151 行:AllowOverride All
164 行:DirectoryIndex index.html index.cgi index.php
文件末尾添加:
ServerTokens Prod(隐藏服务器信息)
KeepAlive On(减少连接数。降低服务器资源使用)
4)生成 php 测试页面
#cd /var/www/html
#echo "<?php phpinfo() ?>" > index.php
#chmod a+x index.php
5)配置 php 时区(默认的是此时区,可不配置)
#vim /etc/php.ini
878 行,时区改为“Asia/Shanghai”
6)重启 apache:systemctl restart httpd
7)使用浏览器访问 http://192.168.20.133可见 php 测试页
3.配置 nagios
编辑vim /etc/httpd/conf.d/nagios.conf
注释第 16 行,在 17 行下添加:
Require ip 127.0.0.1 192.168.0.0/16
注释第 47 行,在 48 行下添加:
Require ip 127.0.0.1 192.168.0.0/16
改名或者删除php 测试页
#cd /var/www/html
#mv index.php index.php.bak
4.设置登录 nagios 网页端用户的密码
#htpasswd /etc/nagios/passwd nagiosadmin
5. 重启 nagios 和 http
#systemctl restart nagios
#systemctl restart httpd
6.使用浏览器访问:http://192.168.20.133/nagios,输入用户名(nagiosadmin)和密码后可见 nagios监控页面
7.配置 nagios 邮件提醒
1)安装软件:yum install postfix-perl-scripts -y
2)编辑配置文件:vim /etc/postfix/main.cf
75:myhostname = www.yy.com
83:mydomain = yy.com
99:myorgin = $mydoamin
116:inte_interfaces = all
164:mydestination = $myhostname,loaclhost $mydomain,localhost,$mydomain
264:mynetwork = 192.168.0.0/16,127.0.0.0/8
419:home_mailbox = Maildir/
574:smtpd_banner = $myhostname ESMTP
在文件末尾添加:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
启动服务:systemctl restart postfix
3)配置 dns 使其可以解析本机主机名
4)定义 nagios 邮件的收件人
编辑配置文件:vim /etc/nagios/objects/contacts.cfg
34:root@localhost
5)重启服务:systemctl restart nagios
systemctl restart httpd
6)开启相关服务提醒:在 web 页面上,点击相关服务右边的\标记,在右侧选项卡中选择“为该服务开启提醒功能”,点击“提交”->“完成”
7)修改配置文件,并刷新浏览
8)查看邮件
)
8. 添加一个新的监控项目
1)nagios 是利用命令对本机或远程主机的状态进行监控的。监控使用的命令是在安装插件的时候获取的(即安装的插件实际上就是 nagios 用于检查服务状态的命令),这些命令默认保存在/usr/lib64/nagios/plugins
注:如果需要监控某项服务,则必须确保用于监控该项服务的插件已经安装(即监控用的命令存在)
2)在/etc/nagios/objects/commands.cfg 中,定义监控命令
define command {
command_name 监控使用命令的名称
command_line 具体使用的命令及命令的参数
}
3)在/etc/nagios/objects/localhost.cfg 中,定义监控项目
define service {
use local-service
host_name localhost
service_description check boot fen qu
check_command check_boot_partition!30%!5%!/boot
}
注:service_description 定义的是该检查项目在 web 监控端显示的名称在 /etc/nagios/objects/commands.cfg 中定义了使用哪个命令用于监控,在/etc/nagios/objects/localhost.cfg 中,给出了定义在 /etc/nagios/objects/commands.cfg 使用命令的具体参数值
4)重启服务,在 web 端查看服务是否被成功添加
例:1.确定监控使用的命令存在
#cd /usr/lib64/nagios/plugins
#ls
2.定义命令
#vim /etc/nagios/objects/commands.cfg
define command{
command_name check_local_sda1
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}
3.定义监控服务
vim /etc/nagios/objects/localhost.cfg
define service{
use local-service
host_name localhost
service_description jia cha boot fen qu
check_command check_local_sda1!20%!10%!/dev/sda1
}
4.重启服务:systemctl restart nagios
5.在浏览器中测试:http://192.168.20.133/nagios
选择:services 可见新定义的监控服务:jia cha boot fen qu
三 监控远程 Linux 主机
1.在被监控的主机上配置
1 )安装软件:
#yum --enablerepo=y install nrpe
nagios-plugins-{ping,disk,users,procs,load,swap,ssh} -y
2)编辑 nrpe 配置文件
vim /etc/nagios/nrpe.cfg
117:添加监控主机
133:开启 nrpe 传输参数1
309-313:注释本地检测
323-326:修改为
command[check_users]=/usr/lib64/nagios/p lugins/check_users -w $ARG1$ -c $ARG2$
command[check_load]=/usr/lib64/nagios/pl ugins/check_load -w $ARG1$ -c $ARG2$
command[check_disk]=/usr/lib64/nagios/pl ugins/check_disk -w $ARG1$ -c $ARG2$ -p
$ARG3$
command[check_swap]=/usr/lib64/nagios/pl ugins/check_swap -w $ARG1$ -c $ARG2$
3)重启 nrpe 服务:systemctl restart nrpe
2.监控主机上的配置
1)安装软件:yum --enablerepo=y install naigos-plugins-nrpe -y
2)编辑 nagios 配置文件:vim /etc/nagios/naigos.cfg
取消 51 行注释:被监控主机的配置文件存放目录
3)创建被监控主机配置文件存放目录
#mkdir -pv /etc/nagios/servers
#chgrp nagios /etc/nagios/servers(改属组)
#chmod 750 /etc/nagios/servers
4)定义命令
#vim /etc/nagios/objects/command.cfg
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
5)定义远程主机的监控项目
#vim /etc/nagios/servers/noc.cfg
define host{
use linux-server
host_name host-6
alias host-6
address 192.168.1.2
}
注:定义被监控的主机
define service{
use generic-service
host_name host-6
service_description check_users
check_command check_nrpe!check_users\!10\!20
}
define service{
use generic-service
host_name host-6
service_description check_ROOT_partion
check_command check_nrpe!check_disk\!20%\!10%\!/
}
6)重启服务:systemctl restart nagios
注:如果重启服务过程中报错,使用以下命令来定位错误
/usr/sbin/nagios -v /etc/nagios/nagios.cfg
7)在 web 端可以查看新添加的监控主机及主机相关服务的状态
注:可以参考配置文件模板来对服务进行相关配置。配置文件模板所在路径:/etc/nagios/objects/templates.cfg