Nagios监控系统环境部署

Nagios的功能是监控服务和主机,但其自身并不包括这部分功能,全部的监控、检测功能都是经过各类插件来完成。启动Nagios后,它会周期性的调用插件去检测服务器状态,同时Nagios会维持一个队列,全部插件返回来的状态信息都进入队列,Nagios每次都从队首读取信息,进行处理后,再把状态经过web展示出来。php

这就是所谓的被动模式,常常用于监控主机的系统资源,好比系统负载、磁盘使用率、内存使用率、网络状态、系统进程数等等。html

另外一种是主动模式,主要是nagios服务器主动去获取数据,经常使用于探测URL的监控和服务状态监控。mysql

相比于主动模式中服务器去被监控主机上轮询获取监控数据的方式,这样的最大优点是避免除了数据处理工做之外的其余工做都放在了被监控主机上(包括数据传输),避免了被监控主机量大时,一次轮询时间过长而致使监控反应延迟,这也是被动模式可以承担更大监控量的关键。linux

Nagios提供了许多插件,利用这些插件能够方便的监控不少服务状态,安装完成后,在nagios目录下的/libexec里放nagios自带的可使用的全部插件,如check_disk是检查磁盘空间的插件,check_load是检查CPU负载的插件。每个插件均可经过运行./check_xxx -h命令来查看其使用方法和功能。ios

1、部署环境

主机 操做系统 IP地址 主要软件
Nagios centos7.3 x86_64 192.168.144.112 Nagios4.0.一、nagios-plugins-1.五、LAMP环境
被监控主机 centos7.3 x86_64 192.168.144.111

2、Nagios服务主机部署

一、首先准备LAMP环境

  • 因为被动模式数据进过处理后须要经过web界面呈现出来,所以在nagios服务主机上须要LAMP环境支持。
yum install -y \
httpd \
mariadb-server mariadb \
php \
php-mysql \
php-gd \
libjpeg* \
php-ldap \
php-odbc \
php-pear \
php-xml \
php-xmlrpc \
php-mhash

vim /etc/httpd/conf/httpd.confweb

ServerName www.yun.com
...

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
...
DirectoryIndex index.html index.php
  • 关闭防火墙和SELinux,启动服务

systemctl stop firewalld.service
setenforce 0
systemctl start httpd
systemctl start mariadb.servicesql

二、准备nagios服务软件相关环境

yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-develapache

useradd -s /sbin/nologin nagiosvim

mkdir /usr/local/nagioswindows

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

ll -d /usr/local/nagios/ 查看权限

三、解压软件包,执行安装

tar zxvf nagios-4.0.1.tar.gz -C /opt/
cd /opt/nagios-4.0.1/
./configure --prefix=/usr/local/nagios

执行安装程序后,编译各模块的五大步骤
make all    //首先执行所有编译

make install

make install-init        //初始化命令位置

make install-commandmode   //编译安装控制模块

make install-config      //编译生成相关配置文件

chkconfig --add /etc/rc.d/init.d/nagios

chkconfig --level 35 nagios on

chkconfig --list nagios

  • 为验证编译是否完整成功,须要检查/usr/local/nagios/下是否存在etc、bin、sbin、share、var 这五个目录

四、编译安装插件模块

tar xvzf nagios-plugins-1.5.tar.gz -C /opt
cd /opt/nagios-plugins-1.5
./configure --prefix=/usr/local/nagios 安装插件模块,注意放入nagios安装目录中
make && make install

五、修改Apache配置文件,为nagios建立虚拟目录

vim /etc/httpd/conf/httpd.conf

找到:
User apache 
Group apache 
修改成 
User nagios 
Group nagios 
...

为了安全起见,通常状况下要让nagios 的web 监控页面必须通过受权才能访问,
这须要增长验证配置,即在httpd.conf 文件最后添加以下信息:
#setting for nagios 
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" 
<Directory "/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 
</Directory> 
Alias /nagios "/usr/local/nagios/share" 
<Directory "/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 
</Directory>
  • 设置完访问验证设置后,须要设置验证的帐户密码
  • 利用htpasswd在/usr/local/nagios/etc/htpasswd生成jack帐户并设定密码

htpasswd -c /usr/local/nagios/etc/htpasswd jack

cat /usr/local/nagios/etc/htpasswd

jack:$apr1$DR0SjMa5$trumMzpqj./BA15Iswx2g0

systemctl restart httpd.service

3、配置nagois各功能模块配置文件

1.templates.cfi nagios

主要用于监控主机资源以及服务,在nagios配置中称为对象,
为了避免必重复定义一些监控对象,Nagios引入了一个模板配置文件,
将一些共性的属性定义成模板,以便于屡次引用。

 contact_groups  联系组属性改为 ts 将在后面的contacts.cfg文件中定义

2.resource.cfg文件

resource.cfg是nagios的变量定义文件 通常无需更改
$USER1$=/usr/local/nagios/libexec

3.commands.cfg文件

此文件默认是存在的,无需修改便可使用,固然若是有新的命令须要加入时,在此文件进行添加便可

4. hosts.cfg文件,若是建立位置不在object下,须要注意属主属组权限,而且主配置文件中告知为绝对路径

此文件默认不存在,须要手动建立,hosts.cfg主要用来指定被监控的主机地址以及相关属性信息(不能有任何空格)

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

5.localhost.cfg文件  用来监控本机 通常无需更改

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

7.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#指定检查的命令。
        }  

8.contacts.cfg文件   contacts.cfg是一个定义联系人和联系人组的配置文件(不能有空格)

define contact{
        contact_name                    jack#联系人的名称,这个地方不要有空格
        use                             generic-contact#引用generic-contact的属性信息,其中“generic-contact”在templates.cfg文件中进行定义
        alias                           Nagios Admin
        email                           13951868284@139.com
        }
define contactgroup{
        contactgroup_name       ts#联系人组的名称,一样不能空格
        alias                   Technical Support#联系人组描述
        members                 jack#联系人组成员,其中“jack”就是上面定义的联系人,若是有多个联系人则以逗号相隔
        }

9.cgi.cfg文件 此文件用来控制相关cgi脚本
因为nagios的web监控界面验证用户为jack,因此只需在cgi.cfg文件中添加此用户的执行权限
在最后加入

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

10. 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对外部命令检测的时间间隔
  • 检测配置文件

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 验证配置文件

Nagios监控系统环境部署

Nagios监控系统环境部署Nagios监控系统环境部署

相关文章
相关标签/搜索