1. 安装epel扩展包,并升级ca证书ssl
yum install -y epel-release
yum --disablerepo=epel -y update ca-certificates
如果你想知道为什么,那么一定要参考这个文章,当然不想了解的话就算了
------------->认识epel<-------------
2. 安装Apache、nagios和nagios插件、nrpe工具
yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
3. 设置nagios后台的用户名和密码
htpasswd -c /etc/nagios/passwd nagiosadmin
回车后输入密码,账户就是nagiosadmin,可以自定义
4. 检查配置文件
nagios -v /etc/nagios/nagios.cfg
5. 重启httpd和nagios
(重启目的,加载/etc/httpd/conf.d目录中生成的nagios.conf)
service httpd restart
service nagios start
6. 查看本机监控
用windows浏览器输入ip/nagios进入监控页面
10.2.3.110/nagios
点击左侧的services即可看到当前所监控的本机服务项
7. 添加客户机监控
7.1 安装epel扩展包,并升级ca证书ssl
yum install -y epel-release
yum --disablerepo=epel -y update ca-certificates
7.2 安装 nagios 以及 nagios插件和nrpe工具
yum install -y nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
7.3 编辑客户端配置文件
vim /etc/nagios/nrpe.cfg
找到
allowed_hosts=127.0.0.1,::1
改为
allowed_hosts=127.0.0.1,10.2.3.110
后面的ip为服务器ip
找到
dont_blame_nrpe=0
改为
dont_blame_nrpe=1
7.4 启动客户端的nrpe服务
service nrpe start
7.5. 编辑服务器端配置文件
vim /etc/nagios/conf.d/10.2.3.111.cfg
10.2.3.111.cfg可以用自己ip命名,添加如下内容
define host{
use linux-server
host_name 10.2.3.111
alias 0.12
address 10.2.3.111
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_ping
check_command check_ping!100.0,20%!200.0,50%
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_ssh
check_command check_ssh
max_check_attempts 5
normal_check_interval 1
notification_interval 60
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_http
check_command check_http
max_check_attempts 5
normal_check_interval 1
}
这里定义了一台主机:10.2.3.111,和这台主机要监控的三个服务ping,ssh,httpd
我们重启nagios
service nagios restart
我们再去查看监控页面,点击左侧的services,即可看到如下图所示
但是我们想监控的不是这些服务,我们来更换下所监控的服务
vim /etc/nagios/conf.d/10.2.3.111.cfg
将以前的更换成如下内容
define host{
use linux-server
host_name 10.2.3.111
alias 3.111
address 10.2.3.111
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_load
check_command check_nrpe!check_load
max_check_attempts 5
check_interval 1
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_disk_sda1
check_command check_nrpe!check_sda1
max_check_attempts 5
check_interval 1
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_disk_sda2
check_command check_nrpe!check_sda2
max_check_attempts 5
check_interval 1
}
然后我们要去修改commands.cfg,这是检测脚本,因为我们执行的脚本是check_nrpe!***,但是我们默认脚本中没这个命令,所以我们要添加命令check_nrpe
vim /etc/nagios/objects/commands.cfg
在底下添加如下内容
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
然后我们要去客户机修改nrpe.cfg配置文件
vim /etc/nagios/nrpe.cfg
搜索check_load,这行就是在服务端上要执行的脚本了。把check_hda1更改一下:
/dev/hda1改为/dev/sda1。
再加一行
command[check_sda2]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2
客户机上重启nrpe服务
service nrpe restart
服务器上重启nagios服务
service nagios restart
去监控页面刷新后即可看到我们所监控的服务
7.6 监控自定义服务
在服务器段增加要监控的服务
vim /etc/nagios/conf.d/10.2.3.111.cfg
define service{
use generic-service
host_name 10.2.3.111
service_description check_lk
check_command check_nrpe!check_lk
max_check_attempts 5
check_interval 1
contact_groups common
notifications_enabled 1
notification_period 24x7
notification_options w,u,c,r
}
然后我们在客户端要编写要执行的监控脚本,首先我们指定要执行脚本的位置
vim /etc/nagios/nrpe.cfg
添加下面一行命令:
command[check_lk]=/usr/lib/nagios/plugins/check_lk.sh
然后我们来编写脚本
vim /usr/lib/nagios/plugins/check_lk.sh
#!/bin/bash
echo 100
然后重启客户端的nrpe服务,回到客户端,点击左侧的services可以看到新加的服务
8. 添加邮件监控
第一步我们要安装sendmail,我们就是用这个来发送邮件的
yum install -y sendmail
service sendmail start
chkconfig sendmail on
然后定义邮件的接受者,在服务器端操作
vim/etc/nagios/objects/contacts.cfg
增加如下内容,但是要把邮箱换成自己的邮箱
define contact{
contact_name lk
use generic-contact
alias liuke
email [email protected]
}
define contact{
contact_name wr
use generic-contact
alias wangr
email [email protected]
}
define contactgroup{
contactgroup_name common
alias common
members lk,wr
}
我们在监控的服务或者主机中加上告警相关配置,其实告警有很多配置项,也可以加在不同的地方,我们可以去看下一个官方提供的模板文件,看看人家对各种参数的解释与语法
less /etc/nagios/objects/templates.cfg
一定要去看一下,为了理解下面的内容
下面我们自己来加告警配置到一个服务中去,我选择加到我之前配置的监控项lk
define service{
use generic-service
host_name 10.2.3.111
service_description check_lk
check_command check_nrpe!check_lk
max_check_attempts 5
check_interval 1
contact_groups common
notifications_enabled 1
notification_period 24x7
notification_options w,u,c,r
}
这时我这个服务就被设置了邮件告警,我们来手动的将监控配置设为错误,来看下是否会发送错误信息
在客户机上修改监控脚本:
vim /usr/lib/nagios/plugins/check_lk.sh
在最后加上exit 2
我们重启客户端的nrpe
service nrpe restart
去网页监控查看发现已经发现错误
同时收到邮件提醒
如果qq邮箱不能收到邮件,请看
解决qq邮箱不能收到sendmail邮件