搭建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监控集群. 云监控nagiosnrpe 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监控集群. @Authorduangr@Website duangr/blog/183160 1. Nagios简介 Nagios是一个可运行在Linux/Unix平台之上的开源监视系统,可以用来监视系统运行状态和网络信息。Nagios可以监视所指定的本地或远程主机以及服务,同时提供异常通知功能。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。 uploads/space/2013/1210/221839_BrAa_1189023.jpg 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. 代码获取
[*]nagios-4.0.2.tar.gz
[*]nagios-plugins-1.5.tar.gz
[*]nrpe-2.15.tar.gz
[*]httpd-2.2.23.tar.gz
[*]php-5.4.10.tar.gz
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
若有缺失,请先安装. 可通过如下几个镜像网站下载相关安装包:
[*]
[*]centos/6.4/os/x86_64/Packages/
[*]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=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$
2
command=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$
3
command=/usr/local/nagios/libexec/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
4
command=/usr/local/nagios/libexec/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
5
command=/usr/local/nagios/libexec/check_procs$ARG1$
6
command=/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. 监控页面
[ ttp://192.168.56.10/nagios]http://192.168.56.10/nagios uploads/space/2013/1210/235900_dZhw_1189023.jpg uploads/space/2013/1210/235901_C9Eq_1189023.jpg
想做Nagios, Zabbix,Cacti,iTop各种交流的,可以进入开源监控工具Nagios交流QQ群号 :476809427
页:
[1]