Nagios是一款Linux上成熟的监视系统运行状态和网络信息的开原IT基础设施监视系统,Nagios能监视所指定的本地或远程主机及服务,例如HTTP服务、FTP服务等,同时提供异常通知、事件处理等功能,当主机或服务出现故障时,Nagios还可以通过邮件、手机短信等形式在第一时间进行通知。Nagios可运行在Linux和Unix平台上,同时提供一个可选的基于浏览器的Web界面,方便系统管理员查看系统的运行状态、网络状态、各种系统问题及日志异常等。
环境: 192.168.0.201 mysql主机 rhel6.4
192.186.0.202 nagios主机 rhel6.4
安装相关软件包:
yum install httpd gcc make perl-ExtUtils-Embed.x86_64 -y
yum localinstall gd-devel-2.0.35-11.el6.x86_64.rpm -y
安装nagios:
-
useradd nagios
-
usermod -G nagios apache
-
#编译所需软件包
-
#运行 nagios 服务的用户
-
#使 apache 用户对 nagios 目录具有写权限,不然 web 页面操作失败
-
tar jxf nagios-cn-3.2.3.tar.bz2
-
#nagios 软件安装
-
cd nagios-cn-3.2.3
-
./configure –enable-embedded-perl
-
make all //根据提示完成安装
-
make install
-
make install-init
-
make install-commandmode
-
make install-config
-
make install-webconf //在apache下通过这条命令可以快速整合
安装nagios-plugins:
-
yum install mysql-devel openssl-devel -y
-
tar zxf nagios-plugins-1.4.15.tar.gz
-
cd nagios-plugins-1.4.15
-
./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-extra-opts --enable-libtap --enable-perl-modules
-
make
-
make install
配置nagios:
-
vi /usr/local/nagios/etc/nagios.cfg
-
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg #注释掉localhost.cfg文件
-
cfg_file=/usr/local/nagios/etc/objects/services.cfg #新建 services.cfg 文件,存放服务与服务组定义
-
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg #新建 hosts.cfg 文件,存放主机与主机组定义
配置hosts.cfg:
-
vi /usr/local/nagios/etc/objects/hosts.cfg
-
define host{ //主机的管理
-
use linux-server //使用默认的主机规则
-
host_name vm2.example.com //主机名
-
alias Nagios vm2 //主机别名
-
address 127.0.0.1 //主机ip地址
-
icon_image switch.gif //图标
-
statusmap_image switch.gd2
-
2d_coords 100,200 //2D图像坐标
-
3d_coords 100,200,100 //3D图像坐标
-
}
-
define hostgroup{ //主机组的管理
-
hostgroup_name linux-servers //主机组名字
-
alias Linux Servers //别名
-
members * //*代表上面所有主机
-
}
配置services.cfg:
-
define servicegroup{
-
servicegroup_name 系统负荷检查
-
alias 负荷检查
-
members vm2.example.com,进程总数,vm2.example.com,登录用户数,vm2.example.com,根分区,vm2.example.com,交换空间利用率
-
}
-
define service{
-
use local-service ; Name of service template to use
-
host_name *
-
service_description PING //表示监控ping服务
-
check_command check_ping!100.0,20%!500.0,60%
-
}
-
define service{
-
use local-service ; Name of service template to use
-
host_name vm2.example.com
-
service_description 根分区
-
check_command check_local_disk!20%!10%!/
-
}
-
define service{
-
use local-service ; Name of service template to use
-
host_name vm2.example.com
-
service_description 登录用户数
-
check_command check_local_users!20!50
-
}
-
define service{
-
use local-service ; Name of service template to use
-
host_name vm2.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 vm2.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 vm2.example.com
-
service_description 交换空间利用率
-
check_command check_local_swap!20!10
-
}
-
define service{
-
use local-service ; Name of service template to use
-
host_name vm2.example.com
-
service_description SSH
-
check_command check_tcp!22!1.0!10.0
-
notifications_enabled 1 //这里表示进行通知
-
}
-
define service{
-
use local-service ; Name of service template to use
-
host_name vm2.example.com
-
service_description HTTP
-
check_command check_http
-
notifications_enabled 1
-
}
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 校验 nagios 配置文件的正确性
如果没有error的话,开启服务
/etc/init.d/nagios start
/etc/init.d/httpd start
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin nagios 监控页面访问用户和密码
打开浏览器,输入帐号密码:

过一会儿,你就可以看到主机状况了
OK,现在我们来监控Mysql主机 192.168.0.201
在Mysql主机上进行操作
-
mysql> create database nagdb;
-
mysql> grant select on nagdb.* to nagdb@‘192.168.0.202‘;
-
mysql> flush privileges;
在Nagios主机上检测是否能连接到Mysql主机上的mysql服务
[root@vm2 ~]# /usr/local/nagios/libexec/check_mysql -H 192.168.0.201 -u nagdb -d nagdb
Uptime: 19056 Threads: 12 Questions: 102960 Slow queries: 0 Opens: 317 Flush tables: 1 Open tables: 63 Queries per second avg: 5.403
更改配置文件hosts.cfg services.cfg commands.cfg增加对Mysql主机的监控
-
vi /usr/local/nagios/etc/objects/hosts.cfg 添加下面内容
-
define host{
-
use linux-server
-
host_name mysql主机
-
alias mysql服务器
-
address 192.168.0.201
-
icon_image server.gif
-
statusmap_image server.gd2
-
2d_coords 500,200
-
3d_coords 500,200,100
-
}
-
vi /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服务器
-
}
-
vi /usr/local/nagios/etc/objects/commands.cfg 添加下面内容
-
define command{
-
command_name check_mysql
-
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u nagdb -d nagdb
-
}
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 检测配置文件
service nagios reload reload服务
截取的监控图:

利用NRPE和Nagios-plugin监控远程主机:

NRPE是Nagios的一个功能扩展,它可以在远程Linux和Unix主机上执行插件程序。通过在远程服务器上安装NRPE构件及Nagios插件程序来向Nagios监控主机提供该服务器的一些本地情况,例如,CPU负载、内存使用、磁盘使用等。
远程主机配置
-
useradd nagios
-
tar -xzf nagios-plugins-1.4.15.tar.gz
-
cd nagios-plugins-1.4.15
-
./configure --with-nagios-user=nagios --with-nagios-group=nagios
-
make
-
make install
-
yum install xinetd -y
-
tar zxf nrpe-2.12.tar.gz
-
cd nrpe-2.12
-
./configure
-
make all
-
make install-plugin
-
make install-daemon
-
make install-daemon-config
-
make install-xinetd
-
vim /etc/xinetd.d/nrpe
-
only_from= 192.168.0.202 //添加Nagios监控主机ip
-
vim /etc/services
-
nrpe 5666/tcp //跟/etc/xinetd.d/nrp端口一样
-
/etc/init.d/xinetd start
-
netstat -anlpte | grep 5666 //检测nrpe是否启动成功
Nagoi主机配置:
-
tar zxf nrpe-2.12.tar.gz
-
cd nrpe-2.12
-
./configure --with-nagios-user=nagios --with-nagios-group=nagios
-
make all
-
make install-plugin
检测:
[root@vm2 ~]# /usr/local/nagios/libexec/check_nrpe -H 192.168.0.201
NRPE v2.12
看到以上输出说明与远程主机连接正常
修改配置文件 commands.cfg services.cfg
-
vi /usr/local/nagios/etc/objects/commands.cfg
-
define command{
-
command_name check_nrpe
-
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
-
}
-
vi /usr/local/nagios/etc/objects/services.cfg
-
define service{
-
use generic-service
-
host_name mysql主机
-
service_description CPU Load
-
check_command check_nrpe!check_load
-
}
-
define service{
-
use generic-service
-
host_name mysql主机
-
service_description Current Users
-
check_command check_nrpe!check_users
-
}
-
define service{
-
use generic-service
-
host_name mysql主机
-
service_description /Free Space
-
check_command check_nrpe!check_disk
-
}
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 检测配置文件
没有错误reload服务
service nagios reload
忙活了这么久,看下劳动成果:

明天再来折腾下Nagios报警,今天就到这里啦
Nagios监控Mysql及远程主机
原文:http://blog.chinaunix.net/uid-28841896-id-4670281.html