CentOS7搭建nagios监控+配置+mutt+msmtp邮件报警

上篇说了Linux6.7系统安装nagios监控,这篇说一下linux7系统如何安装。
linux7系统个别命令不同,但大体的流程是相同的。在这里还是测试环境:
监控主机:CentOS7系统,IP:192.168.1.191
被监控主机:windows server 2008系统并安装了tomcat,IP:192.168.1.170(tomcat使用的是8080端口)
使用的安装包还是之前的几个:
nagios4.0.8,msmtp,和pnp4nagios-0.6.25版本
https://pan.baidu.com/s/1oqairzkmInIFXdEvEBOa4A%20#list/path=%2F
一、nagios运行环境
因为是测试环境,首先将selinux和防火墙都关掉了:
linux7里,防火墙叫做firewall

systemctl stop firewalld
systemctl disable firewalld
selinux关闭的话,修改配置文件:
vim /etc/selinux/config
将SELINUX=enforcing改成:
SELINUX=disabled

修改之后需要重启电脑以使刚刚的设置生效:
reboot
重启之后首先开始配置nagios的运行环境:

yum install gcc http php glibc glibc-common gd gd-devel -y

创建一个用户(我这里使用的是nagios这个用户,如果创建别的用户名,记得之后的地方要相应修改):
useradd nagios -s /sbin/nalogin
-s是禁止这个用户登录shell
二、nagios安装
因为我之前的安装包在另一台linux6.7虚拟机里,我就直接scp到这台CentOS里了:
scp root@192.168.1.184:/opt/Nagios.zip /opt
scp root@192.168.1.184:/opt/pnp4nagios-0.6.25.tar.gz /opt
scp root@192.168.1.184:/opt/msmtp-1.4.32.tar /opt
会弹出提示让你输入yes/no,这里直接输入yes然后输入192.168.1.184那台linux主机的密码:123456
解压安装包:
cd /opt
unzip Nagios.zip
如果没有unzip这个工具,请直接yum:
yum install unzip -y
cd Nagios/nagios-4.0.8
./configure –prefix=/usr/local/nagios
编译以及初始化:(其实你在make install执行之后,可以在最后几行看到后面make install-init等等的提示)
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
这里写图片描述
创建登录nagios登录时的验证信息(用户名及密码):
htpasswd -cm /usr/local/nagios/etc/htpasswd.users nagios
我这里设置的密码是123456
htpappwd命令的参数:
-c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
-n 不更新passwordfile,直接显示密码
-m 使用MD5加密(默认)
-d 使用CRYPT加密(默认)
-p 使用普通文本格式的密码
-s 使用SHA加密
-b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
-D 删除指定的用户
修改httpd配置文件:
vim /etc/httpd/conf/httpd.conf
将用户和组修改:
User apache
Group apache
改为:
User nagios
Group apache
因为nagios默认是给了nagiosadmin这个用户最大的权限,我们创建的既然不是nagiosadmin这个用户名,那么肯定要进行修改,所以修改cgi配置文件:
vim /usr/local/nagios/etc/cgi.cfg
将nagiosadmin替换成nagios
%s/nagiosadmin/nagios/g
这样的话,nagios用户就拥有最大的权限了,如果你创建的不是nagios这个用户名,请相应的进行修改成你创建的用户名。
重启nagios
/etc/init.d/nagios restart
nagios官网上提供了一种可以检测你的配置文件是否正确的方法:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
最后几行中:
Total Errors:0
错误为0,说明配置文件是没有问题的。
这里写图片描述
此时我尝试在浏览器输入192.168.1.191/nagios,输入验证信息:
magios
123456
登录成功
host显示是灰色而且状态status显示是PENDING,不用太担心,这个是等待同步连接中,稍后刷新一下网页或者等待一会就会同步完成自动刷新。
这里写图片描述
如果此时你发现主机是DOWN的状态,也不要着急,因为你的插件包还没有安装,有些命令还无法被执行。插件包在刚刚的Nagios.zip中。
三、nagios插件的安装
进入解压之后的文件里:
cd /opt/Nagios/nagios_software
tar fx nagios-plugins-2.0.3.tar
cd nagios-plugins-2.0.3
指定安装之后的所有者和所属组:
./configure –with-nagios-user=nagios –with-nagios-group=nagios
编译:
make && make install
此时返回到nagios界面,等待一会就看到Localhost的状态变成了绿色的up
四、nagios图形pnp4nagios的安装与配置
此时nagios的主配置已经基本完成,可以正常工作。但是nagios里没有图形信息,如果想要使用这个功能,需要借助另一个工具:
pnp4nagios-0.6.25.tar.gz
cd /opt
tar fx pnp4nagios-0.6.25.tar.gz
./configure –with-nagios-user=nagios –with-nagios-group=nagios
这里可能会报错:
configure: error: is a directory! PNP needs the Path to the rrdtool binary!
如果是这个错误的话,是因为缺少了pnp4nagios的环境包,我们使用yum安装一下:
yum install rrdtool librrds-perl -y
再次执行:
./configure –with-nagios-user=nagios –with-nagios-group=nagios
make all
make install
make install-webconf
make install-config
make install-init
cd ./sample-config/
make install-webconf
后面这两条命令执行之后,是自动更改了两个文件的权限。
install 选项:
-C, –compare 比较每组源文件和目标文件,在一些情况下不修改目标文件
-d, –directory 将所有参数视为目录名称;为指定的目录创建所有组件
-m, –mode=模式 自行设置权限模式(像chmod),而不是rwxr-xr-x
然后配置pnp4nagios文件:
cd /usr/local/pnp4nagios/etc/
把一些以sample(样品)结尾的文件中的-sample都去掉,可以用mv命令或者想要留个备份的话就用cp -p命令,例如:
mv misccommands.cfg-sample misccommands.cfg
cp -p nagios.cfg-sample nagios.cfg(-p是不改变文件属性,权限等)
一共3个带有-sample字样的文件,misccommands.cfg-sample、rra.cfg-sample、nagios.cfg-sample
全都将后缀去掉之后进入另一个目录
cd /usr/local/pnp4nagios/etc/check_commands
将这个目录中的-sample结尾的文件也同样去掉-sample
check_all_local_disks.cfg-sample——check_all_local_disks.cfg
check_nrpe.cfg-sample———-check_nrpe.cfg
check_nwstat.cfg-sample——-check_nwstat.cfg
启动服务:
/etc/init.d/npcd start
设置开机启动:
chkconfig npcd on
之后需要配置mulk模式,这里在pnp4nagios官网上有配置的详解,

https://docs.pnp4nagios.org/pnp-0.6/config#bulk_mode%EF%BC%9A

这里仅作为一个对官网的引用:
在这里,我们仅需要参考这个官网网页中的Bulk Mode这个模块的内容:
修改nagios.cfg这个配置文件:
vim /usr/local/nagios/etc/nagios.cfg
将process_performance_data=0修改为:
process_performance_data=1
之后将这段话添加进去:
#

service performance data

#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET:: TIMET T I M E T \tHOSTNAME:: HOSTNAME H O S T N A M E \tSERVICEDESC:: SERVICEDESC S E R V I C E D E S C \tSERVICEPERFDATA:: SERVICEPERFDATA S E R V I C E P E R F D A T A \tSERVICECHECKCOMMAND:: SERVICECHECKCOMMAND S E R V I C E C H E C K C O M M A N D \tHOSTSTATE:: HOSTSTATE H O S T S T A T E \tHOSTSTATETYPE:: HOSTSTATETYPE H O S T S T A T E T Y P E \tSERVICESTATE:: SERVICESTATE S E R V I C E S T A T E \tSERVICESTATETYPE:: SERVICESTATETYPE S E R V I C E S T A T E T Y P E
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

#

host performance data starting with Nagios 3.0

host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET:: TIMET T I M E T \tHOSTNAME:: HOSTNAME H O S T N A M E \tHOSTPERFDATA:: HOSTPERFDATA H O S T P E R F D A T A \tHOSTCHECKCOMMAND:: HOSTCHECKCOMMAND H O S T C H E C K C O M M A N D \tHOSTSTATE:: HOSTSTATE H O S T S T A T E \tHOSTSTATETYPE:: HOSTSTATETYPE H O S T S T A T E T Y P E
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

然后修改commands.cfg这个配置文件:
vim /usr/local/nagios/etc/objects/commands.cfg
添加这两个命令的定义:
define command{

  command_name    process-service-perfdata-file

  command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata

}

define command{

  command_name    process-host-perfdata-file

  command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata

}
在nagios模板文件中添加图形化模板:
vim /usr/local/nagios/etc/objects/templates.cfg
define host {

name host-pnp

action_url /pnp4nagios/index.php/graph?host= HOSTNAME H O S T N A M E &srv=HOST

register 0

}

define service {

name service-pnp

action_url /pnp4nagios/index.php/graph?host= HOSTNAME H O S T N A M E &srv= SERVICEDESC S E R V I C E D E S C

register 0

}
此时修改完成了,如果要调用这个模板的话,需要在localhost.cfg文件中定义修改
因为之后会比较多的修改这个文件,所以,我这里将localhost.cfg文件备份之后去掉空行和注释行,看的比较直观一些:
备份:
cd /usr/local/nagios/etc/objects/
cp -p localhost.cfg localhost.cfg.bak
去空行和注释:
sed -i ‘/^#.*|^$/d’ localhost.cfg
修改localhost.cfg,在想要图形显示的那个模块上添加调用相应的模块就可以了。例如:
vim /usr/local/nagios/etc/objects/localhost.cfg
define host{
use linux-server,host-pnp

    host_name               localhost
    alias                   localhost
    address                 127.0.0.1
    }

define service{
use local-service,service-pnp
host_name localhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
这里要注意的一点是,如果你定义的是主机模块,那么用的是host-pnp,如果是服务模块,用的service-pnp,相互对应,不要弄错。想要哪个模块有图形化的效果,就在哪个模块相应的调用host-pnp或者service-pnp即可。

重启apache服务和nagios服务
systemctl restart httpd.service
systemctl restart nagios
然后回到192.168.1.191/nagios登录界面,刷新一下,在新出现的主机上发现了一个网格状的小图标:
这里写图片描述
点开这个图标,会显示
这里写图片描述
这里如果的你这个界面显示全是绿色的是表示正常,我这里有一个红色的,显示php-gd库没有调用,排查之后发现是权限不足,所以这里修改了一下session的权限:
chown nagios:nagios /var/lib/php/session
之后重启apache,
systemctl restart httpd
刷新界面,再次点击网格状小图标,全都是绿色,表示正常。
然后删除这个检查界面:
rm -rf /usr/local/pnp4nagios/share/install.php
再次点击这个网格小图标显示:
这里写图片描述
到此pnp安装完成
五、监控指定的端口
修改配置文件监控别的端口(这里以8080端口为例),我要检测另一台机器上的tomcat正常运行,IP:192.168.1.170:8080
因为nagios的命令里没有监控8080的模板,所以需要自己定义一下。
vim //usr/local/nagios/etc/objects/commands.cfg在最后添加下面的内容:
define command{
command_name check_port8080
command_line USER1 U S E R 1 /check_tcp -H HOSTADDRESS H O S T A D D R E S S -p 8080 ARG2 A R G 2
}
修改localhost.cfg文件添加监控主机和监控服务:
vim /usr/local/nagios/etc/objects/localhost.cfg,添加内容:

define host{
        host_name               text_1.170          ##要监控的主机名,可以随便取,不过最好是方便自己管理的
        alias                   win2008-tomcat      ##取别名,随便取
        address                 192.168.1.170       ##监控主机的IP地址
        check_command           check-host-alive    ##调用的命令是检查主机是否存活,在commands.cfg里有定义这个命令
        check_period            24x7                ##时间是7x24小时监控
        check_interval          1                   ##间隔时间(分)根据自己需求写,我写1是比较快的检查出效果,实际环境比较耗费资源
        max_check_attempts      1                   ##最大尝试次数
        contact_groups          admins              ##所属组
        notification_period     24x7                ##通知时间
        notification_options    d,u,r               ##监控哪些状态
        notification_interval   60                  ##通知间隔
}
define service{
        host_name               text_1.170          ##监控哪台机器上的服务,这个一定要对应好上面的主机名
        service_description     8080port            ##服务的描述
        check_command           check_port8080         ##调用的哪个命令
        check_period            24x7                ##
        check_interval          1
        retry_check_interval    1
        max_check_attempts      1
        contact_groups          admins
        notification_period     24x7
        notification_options    w,c,u,r
        notification_interval   60
}

上面的文件中监控状态有:
0 绿色 正常 r
1 黄色 一般警告 w
2 红色 严重警告 c
3 橘红 未知情况 u
复制以上命令时请去掉##注释后面的说明,否则会报错。
重启nagios
systemctl restart nagios
返回nagios界面里看到已经出现了新增的监控主机和监控的服务,如果是灰色的,不要着急,等一会刷新界面就好了。
监控别的服务或者端口也可以使用这种方式在这里定义,但是如果监控主机的资源,最好还是跟nrpe结合,比较方便。

六、msmtp邮件报警
我使用的还是msmtp+mutt来实现的。
cd /opt
bzip2 -d msmtp-1.4.32.tar.bz2
如果没有bzip2解压工具,请yum:
yum install bzip2 -y
然后
tar fx msmtp-1.4.32.tar
cd msmtp-1.4.32
./configure –prefix=/usr/local//msmtp(这里还是指定了目录,大家可以自行设置安装路径,或直接./configure)
编译安装:
make && make install
安装mutt功能:
yum install mutt -y
会在/etc下自动生成一个Muttrc的文件,编辑这个文件,添加3行到文件末尾:
vim /etc/Muttrc
set from=”邮箱地址”
set realname=”nagios”
set sendmail=”/usr/local/bin/msmtp”
以阿里云邮箱为例:
set from=”*@aliyun.com”
set realname=”nagios”
set sendmail=”/usr/local/bin/msmtp”(这个路径是我安装msmtp之后的路径,如果是安装在别的路径下,这个写成msmtp二进制文件所在的路径)
在msmtp的安装路径 创建一个目录etc
mkdir /usr/local/msmtp/etc
在这个目录里创建一个文件:
vim /usr/local/msmtp/etc/msmtprc并插入一下内容:
account default
host smtp.aliyun.com
port 25
from ***@aliyun.com
tls off
auth login
user ***@aliyun.com
password **
logfile /tmp/msmtp.log
其中的两个邮箱是从哪发,发给谁,密码是你的邮箱登录密码。
保存之后,如果觉得这个密码是明文的,不安全,可以更改一下权限:
chmod 600 /usr/local/msmtp/etc/msmtprc
然后把这个文件更改所有者和所属组:
chown nagios:nagios /usr/local/msmtp/etc/msmtprc
测试邮件发送:
echo “This is a test mail” | mutt -s ‘Test’ *@aliyun.com
如果邮箱有收到,那么就可以修改nagios的部分文件了。
vim /usr/local/nagios/etc/objects/contacts.cfg
将第34行的email后面的nagios@localhost修改成你的邮箱(多个邮箱用英文逗号隔开):

define contact{
         contact_name                    nagiosadmin          
        use                             generic-contact        
         alias                           Nagios Admin           

         email                           ********@aliyun.com      
        }

查看一下mutt命令所在的路径:
which mutt
显示是在:
/usr/bin/mutt
修改commands.cfg文件:
vim /usr/local/nagios/etc/objects/commands.cfg
将第29行和第35行的/bin/mail替换成//usr/bin/mutt
重启nagios
systemctl restart nagios
关闭开启几次192.168.1.170中的tomcat进行测试
如果监控界面跳出一个his service is flapping between states的字样通知,这是nagios的抖动检测对某一个服务经常开启关闭的提示,如果不想看到这个提示,可以修改nagios.cfg文件:
vim /usr/local/nagios/etc/nagios.cfg
将enable_flap_detection=1修改为
enable_flap_detection=0
即可。
以上就是本次的安装教程,其实跟linux6安装的区别不大,理解之后再去做,就简单很多。希望一起共同进步。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值