监控之nagios的安装部署(监控本机及其他主机的配置+警报机制的配置)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监控之nagios的安装部署(监控本机及其他主机的配置+警报机制的配置)相关的知识,希望对你有一定的参考价值。

主机环境   redhat6.5 64位

实验环境   服务端1 ip 172.25.25.1

           服务端2 ip 172.25.25.2

安装包     nagios-plugins-2.1.1.tar.gz  

nagios-cn-3.2.3.tar.bz2

gd-devel-2.0.35-11.el6.x86_64.rpm

nrpe-2.15.tar.gz

防火墙状态:关闭

Selinux状态:Disabled


1.安装nagios、监控本地及测试

A)配置安装nagios及插件

[[email protected] mnt]# ls

nagios-plugins-2.1.1.tar.gz     nagios-cn-3.2.3.tar.bz2

gd-devel-2.0.35-11.el6.x86_64.rpm

[[email protected] mnt]# yum installgd-devel-2.0.35-11.el6.x86_64.rpm -y

[[email protected] mnt]# useradd Nagios                  #创建系统用户ngios

[[email protected] mnt]# usermod -a -G nagcmd Nagios      #将nagios添加到nagcmd附加组

[[email protected] mnt]# usermod -a -G nagcmd apache      #将apache也添加到nagcnd附加组

[[email protected] mnt]# id Nagios                       #查看

uid=1001(nagios) gid=1001(nagios)groups=1001(nagios),1002(nagcmd)

[[email protected] mnt]# id apache

uid=48(apache) gid=48(apache) groups=48(apache),1002(nagcmd)

[[email protected] mnt]# tar jxf nagios-cn-3.2.3.tar.bz2  #解压

[[email protected] mnt]# cd nagios-cn-3.2.3

[[email protected] nagios-cn-3.2.3]# ./configure--with-command-group=nagcmd  #配置

[[email protected] nagios-cn-3.2.3]# make all

[[email protected] nagios-cn-3.2.3]# make install         #安装

[[email protected] nagios-cn-3.2.3]# make install-init    #安装脚本文件

[[email protected] nagios-cn-3.2.3]# make install-config  #安装配置文件

[[email protected] nagios-cn-3.2.3]# make install-webconf

[[email protected] nagios-cn-3.2.3]# cat /usr/local/nagios/etc/htpasswd.users #查看密码

nagiosadmin:gCWSDnqEHR45c

[[email protected] nagios-cn-3.2.3]# htpasswd -c/usr/local/nagios/etc/htpasswd.users nagiosadmin                                #修改密码

New password:

Re-type new password:

Adding password for user nagiosadmin

[[email protected] nagios-cn-3.2.3]# cat/usr/local/nagios/etc/htpasswd.usersnagiosadmin:QNeDXoEuaEVuI

[[email protected] nagios-cn-3.2.3]# /etc/init.d/httpd start      #开启httpd

Stopping httpd:                                           [ OK  ]

[[email protected] nagios-cn-3.2.3]# /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg                           #校验nagios的语法

[[email protected] nagios-cn-3.2.3]# /etc/init.d/nagios start     #开启nagios

Starting nagios: done.

#安装nagios插件

[[email protected] mnt]# tar zxf nagios-plugins-2.1.1.tar.gz      #解压

[[email protected] mnt]# cd nagios-plugins-2.1.1

[[email protected] nagios-plugins-2.1.1]# ./config--with-nagios-user=nagios --with-nagios-group=nagios                                                #配置

[[email protected] nagios-plugins-2.1.1]# make                    #编译

[[email protected] nagios-plugins-2.1.1]# make install            #安装

B)添加本地服务

 [[email protected] etc]# vimnagios.cfg

  cfg_file=/usr/local/nagios/etc/objects/hosts.cfg        #添加文件
  cfg_file=/usr/local/nagios/etc/objects/services.cfg   
  # Definitions formonitoring the local (Linux) host
  #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg   #标记localhost文件

[[email protected] etc]# cd objects/

[[email protected] objects]# cp -p localhost.cfg hosts.cfg

[[email protected] objects]# cp -p localhost.cfg services.cfg

[[email protected] objects]# vim hosts.cfg                       #主机配置文件

define host{                                               #主机
        use                     linux-server                #使用的模板
        host_name               server1.example.com         #主机名
        alias                   Manager                     #别名
        address                 172.25.29.1                 #ip
        icon_image              server.gif                  #下面几行是在拓扑图中的位置
       statusmap_image         server.gd2
        2d_coords               500,200
        3d_coords               500,200,100
        }
define hostgroup{
       hostgroup_name  linux-servers ;The name of the hostgroup
        alias           Linux Servers ; Long name of the group
        members         *    ; Comma separated list of hosts that belong to this group
        }

[[email protected] etc]# vim resource.cfg                         #服务配置文件

define servicegroup{                                        #服务组
        servicegroup_name系统负荷检查                
        alias 负荷检查                                
        membersserver1.example.com,进程总数,server1.example.com,登录用户数,server1.example.com,根分区,server1.example.com,交换空间利用率
        }
 
define service{                                            #服务
        use                             local-service      #使用的模板  
        host_name                       *
       service_description            PING
       check_command                  check_ping!100.0,20%!500.0,60% #要传的参数
        }
 
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server1.example.com
       service_description             根分区
       check_command                  check_local_disk!20%!10%!/
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server1.example.com
       service_description             登录用户数
       check_command                  check_local_users!20!50
        }
 
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server1.example.com
       service_description             进程总数
       check_command                   check_local_procs!250!400!RSZDT
        }
 
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server1.example.com
 
       service_description             系统负荷
       check_command                  check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
        }
 
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server1.example.com
       service_description             交换空间利用率
       check_command                  check_local_swap!20!10
        }
 
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server1.example.com
       service_description            SSH
       check_command                  check_tcp!22!1.0!10.0
       notifications_enabled           0
        }
define service{
        use                             local-service         ; Name of service template to use
        host_name                       server1.example.com
       service_description            HTTP
       check_command                  check_http
       notifications_enabled           0
        }

[[email protected] objects]# /etc/init.d/nagios reload       #刷新

Running configuration check...done.

Reloading nagios configuration...done

C)测试172.25.25.1/Nagios

技术分享


2.远程监控服务端2mysql及测试

  A)     安装mysql及添加授权

服务端2

[[email protected] ~]# yum install mysql-server -y       #安装mysql

[[email protected] ~]# /etc/init.d/mysqld start          #开启mysql

[[email protected] ~]# mysql_secure_installation         #初始化,添加密码redhat

[[email protected] ~]# mysql -predhat                    #进入mysql

mysql> create database nagdb;                       #添加nagdb库

Query OK, 1 row affected (0.00 sec)               

mysql> grant select on nagdb.* to [email protected]‘172.25.25.1‘identified by ‘redhat‘;

Query OK, 0 rows affected (0.00 sec)                #给nagios用户授予nagdb库的查看权限

mysql> Bye                                          #退出

 

#服务端1,测试

[[email protected] objects]# ./check_mysql -H 172.25.25.2 -u nagios-p redhat -d nagdb

  B)     将mysql服务(服务端2)添加到nagios(服务端1)

服务端1

[[email protected] objects]# vim hosts.cfg                #定义主机

define host{
        use                     linux-server        #调用的模版
        host_name              server2.example.com  #主机名(command.cfg中要调用的参数)
        alias                    MYSQL              #别名
        address                 172.25.25.2         #ip
        icon_image              server.gif
       statusmap_image         server.gd2           #坐标的定义
        2d_coords               400,200
        3d_coords               400,200,100
        }
[[email protected] objects]# vim services.cfg            #定义服务
####################check_mysql#######################
define service{
        use                             local-service       
        host_name                       server2.example.com(调用hosts.cfg中的host_name)
       service_description            MYSQL
       check_command                  check_mysql!nagios!redhat!nagdb    #command.cfg中要调用的参数(命令名字!主机名!密码!数据库的名称)
        }

[[email protected] objects]# vim commands.cfg            #定义命令

# ‘check_mysql‘ command definition
define command{
        command_name    check_mysql                #命令的名字
        command_line    $USER1$/check_mysql -H $HOSTADDRESS$ -u$ARG1$ -p $ARG2$ -d  $ARG3$       #调用的脚本绝对路径 -H 主机名(调用hosts.cfg中的host_name) -u mysql的用户名 -p 用户密码 -d 数据库的名称
        }

[[email protected] objects]# /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg                                                      #检查是否有语法错误

Total Warnings: 0

Total Errors:   0                                    #无语法错误

Things look okay - No serious problems were detected during thepre-flight check

[[email protected] objects]# /etc/init.d/nagios reload    #刷新

Running configuration check...done.

Reloading nagios configuration...done

C)测试

点击拓扑图,添加server2.example.com成功

技术分享

点击主机,查看两台主机

技术分享

点击服务,如图

技术分享


3.远程监控服务端2的根分区和用户数

A)安装nagios插件及nrpe

服务端2

[[email protected] mnt]# ls

nagios-plugins-2.1.1.tar.gz nrpe-2.15.tar.gz

[[email protected] mnt]# tar zxf nagios-plugins-2.1.1.tar.gz #解压plugins插件

[[email protected] mnt]# cd nagios-plugins-2.1.1

[[email protected] nagios-plugins-2.1.1]# ./configure           

[[email protected] nagios-plugins-2.1.1]# make                 

[[email protected] nagios-plugins-2.1.1]# make install         

[[email protected] mnt]# cd /usr/local/nagios/                 

[[email protected] nagios]# ls

include  libexec  share

[[email protected] nagios]# useradd -u 1001 nagios           #创建nagios用户

[[email protected] nagios]# chown nagios.nagios * -R         #修改文件权限

[[email protected] nagios]# ll                              #查看

total 12

drwxr-xr-x 2 nagios nagios 4096 Oct 23 10:50 include

drwxr-xr-x 2 nagios nagios 4096 Oct 23 10:50 libexec

drwxr-xr-x 3 nagios nagios 4096 Oct 23 10:50 share

[[email protected] libexec]# cd /mnt/

[[email protected] mnt]# tar zxf nrpe-2.15.tar.gz            #解压nrpe

[[email protected] mnt]# cd nrpe-2.15

[[email protected] nrpe-2.15]# ./configure                  #配置

[[email protected] nrpe-2.15]# make all

[[email protected] nrpe-2.15]# make install-plugin

[[email protected] nrpe-2.15]# make install-daemon

[[email protected] nrpe-2.15]# make install-daemon-config

[[email protected] nrpe-2.15]# yum install -y xinetd

[[email protected] nrpe-2.15]# make install-xinetd

[[email protected] nrpe-2.15]# vim /etc/services             #添加nrpe的端口

nrpe            5666/tcp

[[email protected] nrpe-2.15]# cd /etc/xinetd.d/

[[email protected] xinetd.d]# vim nrpe                  #进入配置文件

 15         only_from       = 172.25.25.1          #允许172.25.25.1监听

[[email protected] etc]# cd /usr/local/nagios/etc/

[[email protected] etc]# ls

nrpe.cfg

[[email protected] etc]# vim nrpe.cfg                   #修改命令

221 command[check_disk]=/usr/local/nagios/libexec/check_disk -w20% -c 10% -p /

[[email protected] etc]# cd ..

[[email protected] nagios]# ls

bin  etc  include libexec  share

[[email protected] nagios]# cd libexec/

[[email protected] libexec]# ./check_disk -w 20% -c 10% -p /     #测试

DISK OK - free space: / 6222 MB (85% inode=93%);|/=1057MB;6135;6902;0;7669

[[email protected] libexec]# /etc/init.d/xinetd start            #开启xinetd

Starting xinetd:                                          [  OK  ]

[[email protected] libexec]# netstat -antple |grep 5666          #查看端口,开启

tcp        0     0 :::5666                    :::*                        LISTEN      0         23552      23120/xinetd       

[[email protected] libexec]# scp check_nrpe172.25.25.1:/usr/local/nagios/libexec/

[email protected]‘s password:                               #将nrpe传给服务端1

check_nrpe                                   100%   75KB 75.0KB/s   00:00 

B) 将根分区和用户数(服务端2)添加到nagios(服务端1) 

服务端1

[[email protected] libexec]# pwd

/usr/local/nagios/libexec

[[email protected] libexec]# chown nagios.nagios check_nrpe      #修改权限

[[email protected] libexec]# ./check_nrpe -H 172.25.25.2        #测试

NRPE v2.15

[[email protected] libexec]# cd ..

[[email protected] nagios]# cd etc/objects/

[[email protected] objects]# vim services.cfg                   #添加服务

####################check_nrpe#######################
define service{
        use                             local-service       
        host_name                       server2.example.com
       service_description             根分区
       check_command                  check_nrpe!check_disk
        }
 
define service{
        use                             local-service        
        host_name                       server2.example.com
       service_description             登录用户数
       check_command                  check_nrpe!check_users
        }

[[email protected] objects]# vim commands.cfg                   #添加命令

# ‘check_nrpe‘ command definition
define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c$ARG1$
        }

[[email protected] objects]# /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg

Total Warnings: 0

Total Errors:   0

Things look okay - No serious problems were detected during thepre-flight check

[[email protected] objects]# /etc/init.d/nagios reload           #刷新

C)测试

技术分享

 

4.nagios警报的配置及测试(邮件联系人)

[[email protected] objects]# vim contacts.cfg                           #修改邮件地址

35         email                           [email protected]

[[email protected] objects]# /etc/init.d/nagios reload                  #刷新

[[email protected] ~]$ cd /mnt/

[[email protected] mnt]$ ls

alert-agent-4.1.3.1-linux-x64.tar.gz

[[email protected] mnt]$ tar zxfalert-agent-4.1.3.1-linux-x64.tar.gz -C /usr/local/nagios/libexec/

[[email protected] mnt]$ cd /usr/local/nagios/libexec/

[[email protected] libexec]$ cpalert-agent/plugin/nagios-plugin/nagios .

[[email protected] libexec]$ cpalert-agent/plugin/nagios-plugin/110monitor.cfg ../etc/objects/

[[email protected] libexec]$ chmod +x nagios

[[email protected] libexec]$ chmod nagios.nagios * -R

[[email protected] libexec]$ cd ..

[[email protected] nagios]# cd etc/

[[email protected] etc]# vim nagios.cfg

cfg_file=/usr/local/nagios/etc/objects/110monitor.cfg      #添加

[[email protected] etc]# cd objects/

[[email protected] objects]# vim 110monitor.cfg

18         pager                           379cd8ca-5700-e2ef-10a2-c72a9158b55a                            #改成自己生成的key

[[email protected] objects]# /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg

Total Warnings: 0

Total Errors:   0

Things look okay - No serious problems were detected during thepre-flight check

[[email protected] objects]# /etc/init.d/nagios reload

 

  B)测试  当把服务端2的mysql停掉之后,如图:

技术分享

邮件也发过来了,如图

技术分享

 

本文出自 “不忘初心,方得始终” 博客,请务必保留此出处http://12087746.blog.51cto.com/12077746/1868666

以上是关于监控之nagios的安装部署(监控本机及其他主机的配置+警报机制的配置)的主要内容,如果未能解决你的问题,请参考以下文章

监控之cacti的安装部署(监控本机及其他主机+支持多线程+命令行监控)

实战Nagios网络监控—— Nagios+Nrpe监控其他主机

nagios 监控

监控之--Nagios如何监控本地主机及本地服务

监控之--Nagios如何监控本地主机及本地服务

实战Nagios网络监控——监控本机运行状态和Mysq主机