×

扫描二维码登录本站

QQ登录

只需一步,快速开始

搭建nagios监控全平台

标签: 监控
来自:网络



前言1. Nagios简介2. 相关环境3. 部署规划4. 代码获取5. 前提依赖5.1 主机环境检查(全部节点)6. 编译安装6.1 创建用户nagios(全部节点)6.2 安装nagios主程序(主节点安装)6.3 安装nagios插件(全部节点安装)6.4 安装NRPE(全部节点安装)6.4.1 被监控节点配置6.4.2 主节点配置6.5 安装Apache(主节点安装)6.6 安装PHP(主节点安装)6.7 使用apache 发布PHP的WEB7. 配置Nagios7.1 配置远程被监控节点7.1.1 修改配置文件7.1.2 重启xinetd服务7.1.3 校验配置7.2 配置监控服务主节点7.2.1 cgi.cfg(控制CGI访问的配置文件)7.2.2 nagios.cfg(nagios主配置文件)7.2.3 定义监控的主机组7.2.4 定义监控的主机7.2.4.1 本地主机监控配置7.2.4.2 远程主机监控配置7.2.4.3 邮件监控7.2.4.4 校验配置7.2.4.5 启动8. 监控页面9. 相关链接
最近在研究云监控的相关工具,之前写过Ganglia的安装步骤,这回来记录下Nagios的安装步骤。 本文不讲解相关原理,若想了解请参考其他资料. 本文目的: 即使之前未触过nagios,也能按照文中步骤搭建自己的nagios监控集群. 云监控  nagios  nrpe                   nagios培训


目录[-]
前言 1. Nagios简介 2. 相关环境 3. 部署规划 4. 代码获取 5. 前提依赖 5.1 主机环境检查(全部节点) 6. 编译安装 6.1 创建用户nagios(全部节点) 6.2 安装nagios主程序(主节点安装) 6.3 安装nagios插件(全部节点安装) 6.4 安装NRPE(全部节点安装) 6.4.1 被监控节点配置 6.4.2 主节点配置 6.5 安装Apache(主节点安装) 6.6 安装PHP(主节点安装) 6.7 使用apache 发布PHP的WEB 7. 配置Nagios 7.1 配置远程被监控节点 7.1.1 修改配置文件 7.1.2 重启xinetd服务 7.1.3 校验配置 7.2 配置监控服务主节点 7.2.1 cgi.cfg(控制CGI访问的配置文件) 7.2.2 nagios.cfg(nagios主配置文件) 7.2.3 定义监控的主机组 7.2.4 定义监控的主机 7.2.4.1 本地主机监控配置 7.2.4.2 远程主机监控配置 7.2.4.3 邮件监控 7.2.4.4 校验配置 7.2.4.5 启动 8. 监控页面 9. 相关链接

前言
最近在研究云监控的相关工具,之前写过Ganglia的安装步骤,这回来记录下Nagios的安装步骤。
本文不讲解相关原理,若想了解请参考其他资料.
本文目的: 即使之前未触过nagios,也能按照文中步骤搭建自己的nagios监控集群.
@Author  duangr  
1. Nagios简介
Nagios是一个可运行在Linux/Unix平台之上的开源监视系统,可以用来监视系统运行状态和网络信息。Nagios可以监视所指定的本地或远程主机以及服务,同时提供异常通知功能。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
2. 相关环境
Host Name
IP
OS

Arch
duangr-1
192.168.56.10
CentOS 6.4
x86_64
duangr-2
192.168.56.11
CentOS 6.4
x86_64
duangr-3
192.168.56.12
CentOS 6.4
x86_64
3. 部署规划


监控服务主节点(Master)
duangr-1
被监控从节点(Slave)
duangr-2, duangr-3
Nagios主节点需要安装:

  • nagios
  • nagios-plugin
  • nrpe
  • php
  • apache

Nagios从节点需要安装:

  • nagios-plugin
  • nrpe

安装路径规划


nagios安装路径
/usr/local/nagios
php安装路径
/usr/local/php
apache安装路径
/usr/local/apache2
4. 代码获取 5. 前提依赖
5.1 主机环境检查(全部节点)
1
# rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel

2
gcc-4.4.7-3.el6.x86_64

3
glibc-2.14.1-6.x86_64

4
glibc-common-2.14.1-6.x86_64

5
gd-2.0.35-11.el6.x86_64

6
package gd-devel is not installed

7
package xinetd is not installed

8
openssl-devel-1.0.0-27.el6.x86_64



若有缺失,请先安装. 可通过如下几个镜像网站下载相关安装包:

  • http://rpm.pbone.net/
  • http://mirrors.163.com/centos/6.4/os/x86_64/Packages/
  • http://mirrors.sohu.com/centos/6.4/os/x86_64/Packages/

安装后再次检查如下:
1
# rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel

2
gcc-4.4.7-3.el6.x86_64

3
glibc-2.14.1-6.x86_64

4
glibc-common-2.14.1-6.x86_64

5
gd-2.0.35-11.el6.x86_64

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

7
xinetd-2.3.14-38.el6.x86_64

8
openssl-devel-1.0.0-27.el6.x86_64



6. 编译安装
6.1 创建用户nagios(全部节点)
1
useradd nagios -d /usr/local/nagios

2
passwd nagios   (密码自定义)



6.2 安装nagios主程序(主节点安装)
1
tar -zxf nagios-4.0.2.tar.gz

2
cd nagios-4.0.2

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

4
make all

5
make install && make install-init && make install-commandmode && make install-config



将nagios添加为服务
1
chkconfig --add nagios  

2
chkconfig nagios off

3
chkconfig --level 35 nagios on

4
chkconfig --list nagios     

5
nagios          0:关闭  1:关闭  2:关闭  3:启用  4:关闭  5:启用  6:关闭



6.3 安装nagios插件(全部节点安装)
1
tar -zxf nagios-plugins-1.5.tar.gz

2
cd nagios-plugins-1.5

3
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios      

4
make && make install



如果出现mysql相关的编译错误,是mysql的默认安装路径被修改导致的,调整with-mysql后重新make
1
./configure --prefix=/usr/local/nagios  --with-mysql=/usr/local/mysql

2
make && make install



6.4 安装NRPE(全部节点安装)
1
tar -zxf nrpe-2.15.tar.gz

2
cd nrpe-2.15

3
./configure --enable-command-args

4
make all

5
make install-plugin



下面步骤只需要在被监控节点执行
1
make install-daemon && make install-daemon-config && make install-xinetd



6.4.1 被监控节点配置
如果是被监控节点,需要配置NRPE已守护进程运行(通过xinetd来运行)
1、更改/etc/xinetd.d/nrpe文件,设置允许nagios主节点服务器连接
1
vi /etc/xinetd.d/nrpe

2
only_from       = 127.0.0.1 192.168.56.10



2、在/etc/services结尾增加:
1
nrpe      5666/tcp       # NRPE



3、增加对参数的支持
1
vi /usr/local/nagios/etc/nrpe.cfg

2
dont_blame_nrpe=1



4、启动xinetd
1
service xinetd restart



5、验证nrpe是否监听
1
netstat -at | grep nrpe



6、测试nrpe是否正常运行
1
/usr/local/nagios/libexec/check_nrpe -H localhost

2
NRPE v2.15



6.4.2 主节点配置
如果是监控服务主节点,在全部被监控节点NRPE配置完成后,可以依次做下检测
1
/usr/local/nagios/libexec/check_nrpe -H 192.168.56.11

2
NRPE v2.15

3
/usr/local/nagios/libexec/check_nrpe -H 192.168.56.12

4
NRPE v2.15



6.5 安装Apache(主节点安装)
1
tar -zxf httpd-2.2.23.tar.gz

2
cd httpd-2.2.23

3
./configure --prefix=/usr/local/apache2

4
make && make install



6.6 安装PHP(主节点安装)
1
cd /export/home/tools/soft/php

2
tar -zxf php-5.4.10.tar.gz

3
cd /php-5.4.10

4
./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache2/bin/apxs

5
make  && make install



6.7 使用apache 发布PHP的WEB                   nagios实施
vi /usr/local/apache2/conf/httpd.conf
01
....

02
Listen 80

03
....

04
<IfModule dir_module>

05
    DirectoryIndex index.html index.php

06
    AddType application/x-httpd-php .php

07
</IfModule>

08
....

09
#setting for nagios

10
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"

11
<Directory "/usr/local/nagios/sbin">

12
     AuthType Basic

13
     Options ExecCGI

14
     AllowOverride None

15
     Order allow,deny

16
     Allow from all

17
     AuthName "Nagios Access"

18
     AuthUserFile /usr/local/nagios/etc/htpasswd

19
     Require valid-user

20
</Directory>

21
Alias /nagios "/usr/local/nagios/share"

22
<Directory "/usr/local/nagios/share">

23
     AuthType Basic

24
     Options None

25
     AllowOverride None

26
     Order allow,deny

27
     Allow from all

28
     AuthName "nagios Access"

29
     AuthUserFile /usr/local/nagios/etc/htpasswd

30
     Require valid-user

31
</Directory>



为web访问时添加用户名和密码(此处用户名为admin,可自定义)
1
/usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd admin



启动apache
1
/usr/local/apache2/bin/apachectl start



访问页面:
   http://192.168.56.10/nagios/
7. 配置Nagios
7.1 配置远程被监控节点                      监控软件
7.1.1 修改配置文件
1
# su - nagios

2
$ vi /usr/local/nagios/etc/nrpe.cfg



修改为如下配置内容:
1
command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$

2
command[check_load]=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$

3
command[check_disk]=/usr/local/nagios/libexec/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$

4
command[check_procs]=/usr/local/nagios/libexec/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$

5
command[check_procs_args]=/usr/local/nagios/libexec/check_procs  $ARG1$

6
command[check_swap]=/usr/local/nagios/libexec/check_swap -w $ARG1$ -c $ARG2$



以上监控命令功能:

  • check_users                    监控登陆用户数
  • check_load                     监控CPU负载
  • check_disk                      监控磁盘的使用
  • check_procs                   监控进程数量,状态包括 RSZDT
  • check_swap                    监控SWAP分区使用

7.1.2 重启xinetd服务
配置完上述命令后,重启 xinetd服务
1
service xinetd restart



7.1.3 校验配置
检查监控命令配置是否ok
1
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users  -a 5 10

2
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_load   -a 15,10,5 30,25,20

3
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_disk    -a 20% 10% /

4
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_procs -a 200 400 RSZDT

5
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_swap  -a 20% 10%



7.2 配置监控服务主节点 7.2.1 cgi.cfg(控制CGI访问的配置文件)
(使用 nagios 用户)
vi /usr/local/nagios/etc/cgi.cfg
修改如下内容,为admin用户增加权限:
1
default_user_name=admin

2
authorized_for_system_information=nagiosadmin,admin

3
authorized_for_configuration_information=nagiosadmin,admin

4
authorized_for_system_commands=nagiosadmin,admin

5
authorized_for_all_services=nagiosadmin,admin

6
authorized_for_all_hosts=nagiosadmin,admin

7
authorized_for_all_service_commands=nagiosadmin,admin

8
authorized_for_all_host_commands=nagiosadmin,admin



7.2.2 nagios.cfg(nagios主配置文件)
(使用 nagios 用户)
vi /usr/local/nagios/etc/nagios.cfg
1
#cfg_file=/export/home/nagios/etc/objects/localhost.cfg      (注释掉)

2
cfg_dir=/export/home/nagios/etc/servers



主配置文件声明了监控脚本的存储路径为 ./servers, 默认没有此目录,需要手工创建
nagios 会读取 servers 目录下面后缀为.cfg的全部文件作为配置文件
1
cd /usr/local/nagios/etc

2
mkdir servers

3
cd servers



7.2.3 定义监控的主机组
声明一个监控的主机组,将主机环境中提到的三台主机全部加入监控
vi /export/home/nagios/etc/servers/group.cfg
新文件,内容如下:
1
define hostgroup{

2
   hostgroup_name      duangr-server

3
   alias               duangr Server

4
   members             duangr-1,duangr-2,duangr-3

5
}



解释下上面的配置:

  • hostgroup_name:    主机组的名称,可随意指定
  • alias:                        主机组别名,可随意指定
  • members:                主机组成员,多个主机名称之前使用逗号分隔.另外主机名称必须与 define host 中host_name 一致.

主机的定义,后面会说到.
7.2.4 定义监控的主机
下面开始定义具体的主机
7.2.4.1 本地主机监控配置
先定义本地主机 duangr-1
vi /export/home/nagios/etc/servers/duangr-1.cfg
新文件,内容如下:
01
define host{

02
       use                          linux-server

03
       host_name                    duangr-1

04
       alias                        duangr-1

05
       address                      192.168.56.10

06
       }

07
  

08
define service{

09
       use                             local-service

10
       host_name                       duangr-1

11
       service_description             Host Alive

12
       check_command                   check-host-alive

13
       }

14
define service{

15
       use                             local-service
nagios配置

16
       host_name                       duangr-1

17
       service_description             Users

18
       check_command                   check_local_users!20!50

19
       }

20
define service{

21
       use                             local-service

22
       host_name                       duangr-1

23
       service_description             CPU

24
       check_command                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

25
       }

26
define service{

27
       use                             local-service

28
       host_name                       duangr-1

29
       service_description             Disk Root

30
       check_command                   check_local_disk!20%!10%!/

31
       }

32
define service{

33
       use                             local-service

34
       host_name                       duangr-1

35
       service_description             Disk Home

36
       check_command                   check_local_disk!20%!10%!/export/home

37
       }

38
define service{

39
       use                             local-service

40
       host_name                       duangr-1

41
       service_description             Zombie Procs

42
       check_command                   check_local_procs!5!10!Z

43
       }

44
define service{

45
       use                             local-service

46
       host_name                       duangr-1

47
       service_description             Total Procs

48
       check_command                   check_local_procs!250!400!RSZDT

49
       }

50
define service{

51
       use                             local-service

52
       host_name                       duangr-1

53
       service_description             Swap Usage

54
       check_command                   check_local_swap!20!10

55
       }



说明下,由于是此主机也是监控服务主节点所在主机,因此可以使用check_local_* 的相关命令来进行监控.               开源监控软件
这个文件中已经将常用的监控项配置进去.
7.2.4.2 远程主机监控配置
再定义远程主机duangr-2和duangr-3
定义远程主机的监控之前,需要先定义check_nrpe命令
vi /usr/local/nagios/etc/objects/commands.cfg
在文件的最后面添加如下内容:
1
# 'check_nrpe' command definition

2
define command{

3
       command_name    check_nrpe

4
       command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$

5
       }

6
define command{

7
       command_name    check_nrpe_args

8
       command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$ -a $ARG2$

9
       }



定义duangr-2主机的监控配置
$ vi /usr/local/nagios/etc/servers/duangr-2.cfg
新文件,内容如下:
001
define host{

002
       use                     linux-server

003
       host_name               duangr-2

004
       alias                   duangr-2

005
       address                 192.168.56.11

006
       }

007
  

008
define service{

009
       use                             local-service

010
       host_name                       duangr-2

011
       service_description             Host Alive

012
       check_command                   check-host-alive

013
       }

014
define service{

015
       use                             local-service

016
       host_name                       duangr-2

017
       service_description             Users

018
       check_command                   check_nrpe_args!check_users!5 10

019
       }

020
define service{

021
       use                             local-service

022
       host_name                       duangr-2

023
       service_description             CPU

024
       check_command                   check_nrpe_args!check_load!15,10,5 30,25,20

025
       }

026
define service{

027
       use                             local-service

028
       host_name                       duangr-2

029
       service_description             Disk Root

030
       check_command                   check_nrpe_args!check_disk!20% 10% /

031
       }

032
define service{

033
       use                             local-service

034
       host_name                       duangr-2

035
       service_description             Disk /export/home

036
       check_command                   check_nrpe_args!check_disk!20% 10% /export/home

037
       }

038
define service{

039
      use                             local-service

040
      host_name                       duangr-2

041
      service_description             Procs Zombie

042
      check_command                   check_nrpe_args!check_procs!5 10 Z

043
      }

044
define service{

045
      use                             local-service

046
      host_name                       duangr-2

047
      service_description             Procs Total

048
      check_command                   check_nrpe_args!check_procs_args!"-w400 -c600"

049
      }

050
define service{

051
       use                             local-service

052
       host_name                       duangr-2

053
       service_description             Swap Usage

054
       check_command                   check_nrpe_args!check_swap!20% 10%

055
       }

056
  

057
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

058
;;  下面是一些常用进程的监控,主要是云平台相关进程

059
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

060
;; 监控crond进程

061
define service{

062
       use                             local-service

063
       host_name                       duangr-2

064
       service_description             PS: crond

065
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Ccrond"

066
       }

067
;; 监控zookeeper进程

068
define service{

069
       use                             local-service

070
       host_name                       duangr-2

071
       service_description             PS: QuorumPeerMain

072
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Cjava -aserver.quorum.QuorumPeerMain"

073
       }

074
;;监控storm的从节点进程

075
define service{

076
       use                             local-service

077
       host_name                       duangr-2

078
       service_description             PS: supervisor

079
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Cjava -adaemon.supervisor"

080
       }

081
;; 监控storm的主节点进程

082
define service{

083
       use                             local-service

084
       host_name                       duangr-2

085
       service_description             PS: nimbus

086
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Cjava -adaemon.nimbus"

087
       }

088
;; 监控MetaQ进程

089
define service{

090
       use                             local-service

091
       host_name                       duangr-2

092
       service_description             PS: MetaQ

093
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Cjava -ametamorphosis-server-w"

094
       }

095
;; 监控Redis进程

096
define service{

097
       use                             local-service

098
       host_name                       duangr-2

099
       service_description             PS: redis-server

100
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Credis-server"

101
       }

102
;; 监控hadoop主节点NameNode进程

103
define service{

104
       use                             local-service

105
       host_name                       duangr-2

106
       service_description             PS: NameNode  

107
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Cjava -aserver.namenode.NameNode"

108
       }

109
;; 监控hadoop主节点SecondaryNameNode进程
nagios安装
110
define service{

111
       use                             local-service

112
       host_name                       duangr-2

113
       service_description             PS: SecondaryNameNode

114
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Cjava -aserver.namenode.SecondaryNameNode"

115
       }

116
;; 监控hadoop主节点ResourceManager进程

117
define service{

118
       use                             local-service

119
       host_name                       duangr-2

120
       service_description             PS: ResourceManager

121
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Cjava -aserver.resourcemanager.ResourceManager"

122
       }

123
;; 监控hadoop从节点DataNode进程

124
define service{

125
       use                             local-service

126
       host_name                       duangr-2

127
       service_description             PS: DataNode

128
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Cjava -aserver.datanode.DataNode"

129
       }

130
;;监控hadoop从节点NodeManager进程

131
define service{

132
       use                             local-service

133
       host_name                       duangr-2

134
       service_description             PS: NodeManager

135
       check_command                   check_nrpe_args!check_procs_args!"-c1:1 -Cjava -aserver.nodemanager.NodeManager"

136
       }



说明下,由于duangr-2是远程主机,因此使用check_nrpe_args命令来监控.
这个文件中已经将常用的监控项配置进去, 同时还包含了hadoop、storm、zookeeper、metaq、redis的相关进程监控,主要的监控思路是判断进程是否存在。

定义duangr-3主机的监控配置
vi duangr-3.cfg  
内容与duangr-2.cfg类似,只需要修改 host_name 、alias、 address即可.
7.2.4.3 邮件监控
定义监控人邮件地址
vi /usr/local/nagios/etc/objects/contacts.cfg
1
define contact{

2
       contact_name                    nagiosadmin             ; Short name of user

3
       use                             generic-contact         ; Inherit default values from generic-contact template (defined above)

4
       alias                           Nagios Admin            ; Full name of user

5
       email                           yourname@domain.com  

6
                                                               ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

7
       }



除了配置监控邮件的接收人外,还要确保:

  • 本主机与邮件服务器互通
  • 本主机SendMail可以使用外部SMTP服务发送邮件

7.2.4.4 校验配置
1
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg



7.2.4.5 启动
1
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg



nagios已经是一个服务,也可以执行如下操作:
1
service nagios start/stop/restart/status



8. 监控页面


想做Nagios Zabbix,Cacti,iTop各种交流的,可以进入开源监控工具Nagios交流  QQ群号 476809427






上一篇:nagios插件check_mysql_qps详说
下一篇:详解运维监控利器Nagios(3)-配置Nagios监控系统 (2)
monicazhang

写了 2297 篇文章,拥有财富 12859,被 21 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

手机版|小黑屋|最新100贴|论坛版块|ITIL先锋论坛 |粤ICP备11099876号|网站地图
Powered by Discuz! X3.4 Licensed  © 2001-2017 Comsenz Inc.
返回顶部