90807 发表于 2016-11-3 08:43:29

监控之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.bz2gd-devel-2.0.35-11.el6.x86_64.rpmnrpe-2.15.tar.gz防火墙状态:关闭
Selinux状态:Disabled


1.安装nagios、监控本地及测试
A)配置安装nagios及插件# 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
# yum installgd-devel-2.0.35-11.el6.x86_64.rpm -y
# useradd Nagios                  #创建系统用户ngios
# usermod -a -G nagcmd Nagios      #将nagios添加到nagcmd附加组
# usermod -a -G nagcmd apache      #将apache也添加到nagcnd附加组
# id Nagios                     #查看
uid=1001(nagios) gid=1001(nagios)groups=1001(nagios),1002(nagcmd)
# id apache
uid=48(apache) gid=48(apache) groups=48(apache),1002(nagcmd)
# tar jxf nagios-cn-3.2.3.tar.bz2#解压
# cd nagios-cn-3.2.3
# ./configure--with-command-group=nagcmd#配置
# make all
# make install         #安装
# make install-init    #安装脚本文件
# make install-config#安装配置文件
# make install-webconf
# cat /usr/local/nagios/etc/htpasswd.users #查看密码
nagiosadmin:gCWSDnqEHR45c
# htpasswd -c/usr/local/nagios/etc/htpasswd.users nagiosadmin                              #修改密码
New password:
Re-type new password:
Adding password for user nagiosadmin
# cat/usr/local/nagios/etc/htpasswd.usersnagiosadmin:QNeDXoEuaEVuI
# /etc/init.d/httpd start      #开启httpd
Stopping httpd:                                           [ OK]
# /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg                           #校验nagios的语法
# /etc/init.d/nagios start   #开启nagios
Starting nagios: done.
#安装nagios插件
# tar zxf nagios-plugins-2.1.1.tar.gz      #解压
# cd nagios-plugins-2.1.1
# ./config--with-nagios-user=nagios --with-nagios-group=nagios                                                #配置
# make                  #编译
# make install            #安装
B)添加本地服务 # vimnagios.cfg

1
2
3
4
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文件





# cd objects/
# cp -p localhost.cfg hosts.cfg
# cp -p localhost.cfg services.cfg
# vim hosts.cfg                     #主机配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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_namelinux-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
      }





# vim resource.cfg                         #服务配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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
      }





# /etc/init.d/nagios reload       #刷新
Running configuration check...done.
Reloading nagios configuration...done
C)测试172.25.25.1/Nagios


2.远程监控服务端2mysql及测试
A)   安装mysql及添加授权
服务端2
# yum install mysql-server -y       #安装mysql
# /etc/init.d/mysqld start          #开启mysql
# mysql_secure_installation         #初始化,添加密码redhat
# mysql -predhat                  #进入mysql
mysql> create database nagdb;                     #添加nagdb库
Query OK, 1 row affected (0.00 sec)               
mysql> grant select on nagdb.* to nagios@'172.25.25.1'identified by 'redhat';
Query OK, 0 rows affected (0.00 sec)                #给nagios用户授予nagdb库的查看权限
mysql> Bye                                          #退出

#服务端1,测试
# ./check_mysql -H 172.25.25.2 -u nagios-p redhat -d nagdb
B)   将mysql服务(服务端2)添加到nagios(服务端1)
服务端1
# vim hosts.cfg                #定义主机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
      }
# 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中要调用的参数(命令名字!主机名!密码!数据库的名称)
      }





# vim commands.cfg            #定义命令

1
2
3
4
5
# '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 数据库的名称
      }





# /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
# /etc/init.d/nagios reload    #刷新
Running configuration check...done.
Reloading nagios configuration...done
C)测试点击拓扑图,添加server2.example.com成功

点击主机,查看两台主机

点击服务,如图



3.远程监控服务端2的根分区和用户数
A)安装nagios插件及nrpe服务端2
# ls
nagios-plugins-2.1.1.tar.gz nrpe-2.15.tar.gz
# tar zxf nagios-plugins-2.1.1.tar.gz #解压plugins插件
# cd nagios-plugins-2.1.1
# ./configure            
# make                  
# make install         
# cd /usr/local/nagios/                  
# ls
includelibexecshare
# useradd -u 1001 nagios         #创建nagios用户
# chown nagios.nagios * -R         #修改文件权限
# 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
# cd /mnt/
# tar zxf nrpe-2.15.tar.gz            #解压nrpe
# cd nrpe-2.15
# ./configure                  #配置
# make all
# make install-plugin
# make install-daemon
# make install-daemon-config
# yum install -y xinetd
# make install-xinetd
# vim /etc/services             #添加nrpe的端口
nrpe            5666/tcp
# cd /etc/xinetd.d/
# vim nrpe                  #进入配置文件
15         only_from       = 172.25.25.1          #允许172.25.25.1监听
# cd /usr/local/nagios/etc/
# ls
nrpe.cfg
# vim nrpe.cfg                   #修改命令

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





# cd ..
# ls
binetcinclude libexecshare
# cd libexec/
# ./check_disk -w 20% -c 10% -p /   #测试
DISK OK - free space: / 6222 MB (85% inode=93%);|/=1057MB;6135;6902;0;7669
# /etc/init.d/xinetd start            #开启xinetd
Starting xinetd:                                          
# netstat -antple |grep 5666          #查看端口,开启
tcp      0   0 :::5666                  :::*                        LISTEN      0         23552      23120/xinetd      
# scp check_nrpe172.25.25.1:/usr/local/nagios/libexec/
root@172.25.25.1's password:                               #将nrpe传给服务端1
check_nrpe                                 100%   75KB 75.0KB/s   00:00
B) 将根分区和用户数(服务端2)添加到nagios(服务端1)服务端1
# pwd
/usr/local/nagios/libexec
# chown nagios.nagios check_nrpe      #修改权限
# ./check_nrpe -H 172.25.25.2      #测试
NRPE v2.15
# cd ..
# cd etc/objects/
# vim services.cfg                   #添加服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
####################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
      }





# vim commands.cfg                   #添加命令

1
2
3
4
5
# 'check_nrpe' command definition
define command{
      command_name    check_nrpe
      command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c$ARG1$
      }





# /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
# /etc/init.d/nagios reload         #刷新
C)测试

4.nagios警报的配置及测试(邮件联系人)
# vim contacts.cfg                           #修改邮件地址

1
35         email                           xxxxxxxxxx@qq.com





# /etc/init.d/nagios reload                  #刷新
$ cd /mnt/
$ ls
alert-agent-4.1.3.1-linux-x64.tar.gz
$ tar zxfalert-agent-4.1.3.1-linux-x64.tar.gz -C /usr/local/nagios/libexec/
$ cd /usr/local/nagios/libexec/
$ cpalert-agent/plugin/nagios-plugin/nagios .
$ cpalert-agent/plugin/nagios-plugin/110monitor.cfg ../etc/objects/
$ chmod +x nagios
$ chmod nagios.nagios * -R
$ cd ..
# cd etc/
# vim nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/110monitor.cfg      #添加
# cd objects/
# vim 110monitor.cfg

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





# /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
# /etc/init.d/nagios reload

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

邮件也发过来了,如图



页: [1]
查看完整版本: 监控之nagios的安装部署(监控本机及其他主机的配置+警报机制的配置)