一、nagios简介

    Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

   Nagios 可以监控的功能有:

1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等); 
2、监控主机资源(处理器负荷、磁盘利用率等);
3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
4、并行服务检查机制;
5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,
   这种关系可被用来发现和明晰主机宕机或不可达状态;
6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
7、具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;
8、自动的日志回滚;
9、可以支持并实现对主机的冗余监控;
10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等。


二、安装Nagios基础支持套件和添加用户

1).安装套件

# yum install httpd gcc glibc glibc-common gd gd-devel xinetd openssl-devel


2).创建nagios用户和用户组(先进行该步骤,不然编译nagios时会报错)

# useradd -s /sbin/nologin nagios
# mkdir /usr/local/nagios# chown -R nagios.nagios /usr/local/nagios

3).安装httpd和php

# yum install httpd*    ##安装Web服务器Apache相关服务,nagios提供了web监控界面,通过web                             界面可以看到被监控主机运行状态
# yum install php*      ##安装PHP相关服务


三、下载并编译安装Nagios

1).下载并解压nagios

# wget http://nchc.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.1.0/nagios-4.1.0rc1.tar.gz 
# tar -zvxf nagios-4.1.0rc1.tar.gz
# cd nagios-4.1.0rc1


2).编译安装nagios

# ./configure --prefix=/usr/local/nagios

CentOS7安装Nagios_第1张图片


# make all   ##中间如有选择,直接A
# make install    ##安装主程序,CGI和HTML文件
# make install-init   ##在/etc/rc.d/init.d安装启动脚本

wKioL1W_K4Ggbh1nAAC85a64OFs806.jpg


# make install-config    ##安装示例配置文件

CentOS7安装Nagios_第2张图片


# make install-commandmode    ##配置目录权限

wKioL1W_LAmgiU3iAADH5q6TOvo847.jpg


3).配置自启动

# chkconfig --add nagios   ##增加nagios为系统服务
# chkconfig --level 35 nagios on  ##设置nagios在运行级别3、5的情况下为开启状态
# chkconfig --list nagios   ##列出nagios服务设置详情

CentOS7安装Nagios_第3张图片


4).验证程序是否配置正确

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

CentOS7安装Nagios_第4张图片


四、安装Nagios插件

1).下载nagios-plugins

# wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz  ##下载nagios-plugins
# tar -zxvf nagios-plugins-2.0.3.tar.gz   ##解压nagios-plugins
# cd nagios-plugins-2.0.3


2).编译安装nagios-plugins

# ./configure --prefix=/usr/local/nagios
# make
# make install


3).下载nagios-snmp-plugins

# wget http://nagios.manubulon.com/nagios-snmp-plugins.1.1.1.tgz 
# tar -zxvf nagios-snmp-plugins.1.1.1.tgz 
# cd nagios-plugins-2.0.3/


4).编译安装nagios-snmp-plugins

# yum install perl-CPAN   ##yum安装Perl-CPAN,CPAN是Perl软件收藏库,收集了大量有用的Perl                            模块(modules)及其相关的文件。nagios-snmp-plugins是一套用Perl编                           写的通过SNMP方式监控主机的插件程序,因此需要先安装perl-CPAN
# perl -MCPAN -e shell
# cpan[1]> install Net::SNMP


五、配置httpd

# vi /etc/httpd/conf/httpd.conf


1).将

User apache 
Group apache

修改为如下内容:

wKioL1XAbbmwJN2vAAAtf1hmems797.jpg


2).在如下位置添加index.php

wKioL1XBxC2T7LeaAABG3-it3Pk783.jpg


3).配置nagios.conf

# cd nagios-4.1.0rc1/
# ls
# make install-webconf    ##安装nagios的web接口,会在/etc/httpd/conf.d目录中创建                                       nagios.conf文件
# ls /etc/httpd/conf.d
# vi /etc/httpd/conf.d/nagios.conf

将21行和38行的htpasswd.user改为htpasswd(注:也可不进行更改,但在下部中要加全路径名)

CentOS7安装Nagios_第5张图片


4).创建nagios验证文件

# htpasswd -c /usr/local/nagios/etc/htpasswd admin  ##创建nagios登录web界面的用户名和密码
# cat /usr/local/nagios/etc/htpasswd    ##查看认证文件的内容

wKioL1XAerCAQ9yMAADSJaN4WPs523.jpg


5).关闭SELinux和防火墙:

a、临时关闭(不用重启机器):

# setenforce 0                       ##设置SELinux 成为permissive模式  (关闭SELinux)
# setenforce 1                       ##设置SELinux 成为enforcing模式     (开启SELinux)



b、修改配置文件需要重启机器:

# vi /etc/selinux/config

将SELINUX=enforcing 改为SELINUX=disabled

需重启机器


c、可自己做策略开放相应端口,这里我直接关闭:

# systemctl status firewalld.service       ##查看防火墙状态
# systemctl stop firewalld.service         ##关闭防火墙


6).启用服务并进入nagios

# systemctl start httpd.service
# systemctl start snmpd.service
# systemctl start nagios.service


    打开浏览器,输入http://127.0.0.1/nagios/,再输入前面配置的用户名及密码就进入了nagios的web界面了CentOS7安装Nagios_第6张图片



六、安装Nagios的问题

     安装后打开hosts选项,出现下图


CentOS7安装Nagios_第7张图片



     在上面的配置中我们使用了“htpasswd -c /usr/local/nagios/etc/htpasswd admin”来生成管理员账号和密码,nagios默认nagiosadmin作为我们登录的账号和密码,而cgi.cfg就是用来验证该身份的。如果我们生成的管理员账号不是nagiosadmin,验证时就会失败,也就会出现上图的错误。


修改如下:

 

# vi /usr/local/nagios/etc/cgi.cfg

CentOS7安装Nagios_第8张图片      

在如上地方添加你所生成的账号,这里就是如上的admin,再使用systemctl restart httpd.service重启http,OK了


CentOS7安装Nagios_第9张图片