系统环境:RHEL6 x86_64
selinux and iptables disabled
nagios 主机:192.168.0.71
mysql 主机: 192.168.0.36
依赖性及环境
yum install httpd gcc make gd
-devel -y
gd
-devel 如果yum源中没有可自行下载与gd版本一致的开发包
yum install mysql
-devel openssl
-devel -y
useradd nagios
usermod
-G nagios apache
运行 nagios 服务的用户
使 apache 用户对 nagios 目录具有写权限,不然 web 页面操作失败
nagios 软件安装
tar jxf nagios-cn-
3.2.
3.tar.bz2
cd nagios-cn-
3.2.
3
./configure
#编译
make all
make
install
make
install-init
make
install-commandmode
make
install-config
make
install-webconf
安装编译所需软件包编译时 缺什么装什么
插件安装
tar zxf nagios-plugins-
1.4.15.tar.gz
#nagios 插件安装
cd nagios-plugins-
1.4.15
./configure
make
make install
相关配置文件
vim /usr/local/nagios/etc/nagios
.cfg
#nagios 配置
#新建 hosts.cfg 文件,存放主机与主机组定义
cfg_file=/usr/local/nagios/etc/objects/hosts
.cfg
#新建 services.cfg 文件,存放服务与服务组定义
cfg_file=/usr/local/nagios/etc/objects/services
.cfg
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
#注释 localhost.cfg 文件
#vim /usr/local/nagios/etc/objects/host.cfg
#定义本地主机
define host{
use
linux-server
host_name
server471
.example.com
alias
manager
address
127.0.0.1
icon_image
server
.gif
statusmap_image
server
.gd2
2d_coords
500,
200
3d_coords
500,
200,
100
}
#定义远程主机
define host{
use
linux-server
host_name
server472
.example.com
parents
server471
.example.com
alias
mysql
address
172.25.47.2
icon_image
server
.gif
statusmap_image
server
.gd2
2d_coords
100,
200
3d_coords
100,
100,
0
}
#主机组并不是必须的,这是配合 nagios 的监控页面的显示
#定义主机组
define hostgroup{
hostgroup_name
linux-servers
alias
Linux Servers
members
*
}
vim /usr/local/nagios/etc/objects/services
.cfg
#定义服务组
define servicegroup{
servicegroup_name 系统负荷检查
alias
负荷检查
members
server471
.example.com,进程总数,server471
.example.com,登录用数,server471
.example.com,根分区,server471
.example.com,交换空间利用率
}
#定义服务
define service{
use
local-service
host_name
*
service_description
PING
check_command check_ping!
100.0,
20%!
500.0,
60%
}
执行:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios
.cfg
显示:
Total Warnings:
0
Total Errors:
0
#校验 nagio配置文件的正确性
无报错 重启服务
htpasswd -c /usr/local/nagios/etc/htpasswd
.users nagiosadmin
#设置nagios 监控页面访问用户和密码
service nagios start
service httpd start
#启动 nagios 和 httpd 服务
http://
192.168.0.71/nagios
#访问 nagios 监控页面,输入上面添加的用户名和密码

监控 mysql 主机
mysql 主机上运行有 mysql 服务,在其上创建监控检测帐户
mysql> create database nagdb;
mysql> grant select on nagdb.* to nagdb@
'192.168.0.71';
mysql> flush privileges;
在 nagios 主机上检测是否可以连接 mysql 主机上的 mysql 服务
/usr/local/nagios/libexec/check_mysql -
H 192.168.
0.
36 -u nagdb -d nagdb
Uptime: 73 Threads: 1 Questions: 7 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8
Queries per second
avg: 0.
95
在 nagios 主机上添加对 mysql 服务监控的定义
#vim /usr/local/nagios/etc/objects/hosts.cfg
添加如下行
#define host{
use
linux-server
host_name
server472.example.com
parents
server471.example.com
alias
mysql
address
172.25.
47.2
icon_image
server.gif
statusmap_image
server.gd2
2d_coords
100,
200
#vim /usr/local/nagios/etc/objects/services.cfg 添加如下行
define service{
use
local-service
host_name
mysql 主机
servce_groups
mysql 服务组
service_description mysql 服务
check_command
check_mysql
}
define servicegroup{
servicegroup_name mysql 服务组
alias
mysql 服务器
}
vim /usr/local/nagios/etc/objects/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$
}
执行:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
显示:
Total Warnings: 0
Total Errors: 0
重启服务
Nagios 通过
NRPE 监控远程主机系���状况
Nagios实现远程监控server2 系统状况
配置Server2
tar zxf nrpe-
2.15.tar.gz
cd nrpe-
2.15
yum install gcc
yum install openssl-devel
#解决软件依赖性
usreadd nagios
./configure
#编译后按提示操作 缺什么装什么
make all
make install-plugin
useradd nagios
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
yum install -
y xinetd
vim /etc/xinetd
.d/nrpe
disable
= no
only_from
=
172.25.47.1
#监控端IP
vim /etc/services
nrpe
5666/tcp
#添加端口
/etc/init
.d/xinetd restart
netstat -antlp
#检查是否添加成功
scp /usr/local/nagios/libexec/check_nrpe root
@172.25.47.1:/usr/local/nagios/libexec/
#将被监控端安装的 check_nrpe 发送至监控端的同目录下也可以在监控端自己安装
*在监控端要将check_nrpe 所属组和用户改为 nagios
安装plugins模块
tar zxf nagios-plugins-
2.1.1.tar.gz
cd nagios-plugins-
2.1.1
./configure
make
make install
cd /usr/local/nagios/etc/
vim nrpe
.cfg
#################################
command[check_users]=/usr/local/nagios/libexec/check_users -w
5 -c
10
command[check_load]=/usr/local/nagios/libexec/check_load -w
15,
10,
5 -c
30,
25,
20
command[check_disk]=/usr/local/nagios/libexec/check_disk -w
20% -c
10% -p /
###################################
监控端可监控服务
监控端server1下 进行如下测试:
cd /usr/local/nagios/libexec
./check_nrpe -H
172.25.47.2
# -H 指定被监控端IP
NRPE v2
.15
#得到NRPE 版本号 即可
命令行监控方法
./check_nrpe -H
172.25.47.2 -c check_users
图形实时监控方法
配置监控端server1中nagios的文件
/usr/local/nagios/etc/objects
vim commands
.cfg
# 'check_nrpe' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -u $ARG1$ -c $ARG1$
}
vim services
.cfg
define service{
use
local-service
host_name
server472
.example.com
service_description
根分区
check_command
check_nrpe!check_disk
}
vim hosts
.cfg
define host{
use
linux-server
host_name
server472
.example.com
parents
server471
.example.com
alias
mysql
address
172.25.47.2
icon_image
server
.gif
statusmap_image
server
.gd2
2d_coords
100,
200
3d_coords
100,
100,
0
}
执行:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios
.cfg
显示:
Total Warnings:
0
Total Errors:
0
重启服务
--------------------------------------分割线 --------------------------------------