Nagios 简介 :

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

Nagios 可以监控的功能有:

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

本案环境 :

主机 系统 IP地址
nagios CentOS 7.4 192.168.100.130
被监控 CentOS 7.4 192.168.100.131

部署 Nagios 监控系统

1.关闭防火墙 :

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.创建 nagios 用户 :

useradd -M -s /sbin/nologin nagios

mkdir /usr/local/nagios

chown -R nagios.nagios /usr/local/nagios

3.安装环境 :

yum -y install gcc gcc-c++ make perl openssl-devel

4.编译安装 nagios :


wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.1.tar.gz
tar zxvf nagios-4.3.1.tar.gz

cd nagios-4.3.1/

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

make all

make install

make install-init   # 把nagios做成一个运行脚本,使nagios随系统开机启动

make install-commandmode  # 给外部命令访问nagios配置文件的权限

make install-config  # 把配置文件样例复制到nagios的安装目录
chkconfig --add /etc/rc.d/init.d/nagios

chkconfig --level 35 nagios on

chkconfig --list nagios

5.检验是否安装成功 :

[root@localhost nagios-4.3.1]# ls /usr/local/nagios/
bin  etc  libexec  sbin  share  var                    #查看文件是否存在

6.安装 nagios-plugins 插件:

tar zxvf nagios-plugins-1.5.tar.gz -C /opt/

cd /opt/nagios-plugins-1.5

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

7.安装 web 服务 :

yum -y install httpd php

8.修改 http 配置文件 :

vim /etc/httpd/conf/httpd.conf 

User nagios      #管理用户和组修改成nagios
Group nagios

DirectoryIndex index.html index.php   #添加 index.php

AddType application/x-httpd-php .php     #添加可识别 php 
# 为了安全起见,一般情况下要让nagios 的web 监控页面必须经过授权才能访问
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"   #末尾添加
 
     AuthType Basic 
     Options ExecCGI 
     AllowOverride None 
     Order allow,deny 
     Allow from all 
     AuthName "Nagios Access" 
     AuthUserFile /usr/local/nagios/etc/htpasswd              
     Require valid-user 
 
Alias /nagios "/usr/local/nagios/share" 
 
     AuthType Basic 
     Options None 
     AllowOverride None 
     Order allow,deny 
     Allow from all 
     AuthName "nagios Access" 
     AuthUserFile /usr/local/nagios/etc/htpasswd 
     Require valid-user 
 

9.创建访问认证文件 :

[root@localhost ]# htpasswd -c /usr/local/nagios/etc/htpasswd nagiosadm  #用户名 nagiosadm
New password:         #密码
Re-type new password: 
Adding password for user nagiosadm

10.开启服务,访问 http://192.168.100.130/nagios :

systemctl start httpd.service 
systemctl start nagios.service

部署监控三剑客 Nagios 服务器监控_第1张图片部署监控三剑客 Nagios 服务器监控_第2张图片

11.修改 objects 配置文件模板 :

1. 修改 templates.cfg :

cd /usr/local/nagios/etc/objects

vim templates.cfg  #定义主机和服务模板的配置文件

contact_groups  test   #5个全部修改  定义联系组的名称

2.添加 hosts.cfg :

vim hosts.cfg  #hosts.cfg主要用来指定被监控的主机地址以及相关属性信息(不能有任何空格)

define host{   
        use                     linux-server #引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。
        host_name               Nagios-Linux #主机名
        alias                   Nagios-Linux #主机别名
        address                 192.168.100.131 #被监控的主机地址,这个地址可以是ip,也可以是域名。
        }   
#定义一个主机组   
define hostgroup{      
        hostgroup_name          bsmart-servers#主机组名称,可以随意指定。
        alias                   bsmart servers#主机组别名
        members                 Nagios-Linux#主机组成员,其中“Nagios-Linux”就是上面定义的主机。     
        }

3. localhost.cfg 文件 #用来监控本机 一般无需更改

4. windows.cfg #用来监控windows 这里无需使用

5.添加 services.cfg :

vim services.cfg  #主要用于定义监控的服务和主机资源

define service{  
        use                     local-service #引用local-service服务的属性值,local-service在templates.cfg文件中进行了定义。
        host_name               Nagios-Linux #指定要监控哪个主机上的服务,“Nagios-Server”在hosts.cfg文件中进行了定义。
        service_description     check-host-alive #对监控服务内容的描述,以供维护人员参考。
        check_command           check-host-alive #指定检查的命令。
        }  

6.修改 contacts.cfg :

vim contacts.cfg #定义联系人和联系人组的配置文件(不能有空格)
define contact{
        contact_name                    nagiosadm #联系人的名称,这个地方不要有空格
        use                             generic-contact #引用generic-contact的属性信息,其中“generic-contact”在templates.cfg文件中进行定义
        alias                           Nagios Admin
        email                           [email protected]    #邮箱
        }
define contactgroup{
        contactgroup_name       test #联系人组的名称,同样不能空格
        alias                   Technical Support #联系人组描述
        members                 nagiosadm #联系人组成员,其中“nagiosadm”就是上面定义的联系人,如果有多个联系人则以逗号相隔
        }

7. commands.cfg 文件 #此文件默认是存在的,无需修改即可使用,当然如果有新的命令需要加入时,在此文件进行添加即可

12.修改 nagios 配置文件 :

1. resource.cfg文件 #是nagios的变量定义文件

2. 修改 cgi.cfg :

cd /usr/local/nagios/etc/ 

vim cgi.cfg  #文件用来控制相关cgi脚本

#由于nagios的web监控界面验证用户为nagiosadm,所以只需在cgi.cfg文件中添加此用户的执行权限
#末尾添加

default_user_name=nagiosadm
authorized_for_system_information=nagiosadmin,nagiosadm  
authorized_for_configuration_information=nagiosadmin,nagiosadm  
authorized_for_system_commands=nagiosadm
authorized_for_all_services=nagiosadmin,nagiosadm  
authorized_for_all_hosts=nagiosadmin,nagiosadm
authorized_for_all_service_commands=nagiosadmin,nagiosadm  
authorized_for_all_host_commands=nagiosadmin,nagiosadm

3.修改 nagios.cfg :

vim nagios.cfg #将对象配置文件在Nagios.cfg文件中进行引用

cfg_file=/usr/local/nagios/etc/objects/hosts.cfg    #添加
cfg_file=/usr/local/nagios/etc/objects/services.cfg #添加
command_check_interval=10s       #该变量用于设置nagios对外部命令检测的时间间隔

13.检查配置文件语法 :

[root@localhost ]# /etc/init.d/nagios checkconfig 
Running configuration check...
 OK.

14. 访问 http://192.168.100.130/nagios :

systemctl restart nagios.service

部署监控三剑客 Nagios 服务器监控_第3张图片