|
http://www.unixvip.com/app/nagios/720/ 一.安装监控服务器
IP:192.168.2.242
WEB服务器使用Apache
(1)安装Nagios核心
/usr/sbin/useradd nagios && passwd nagios
/usr/sbin/groupadd nagcmd (建立一个组nagcmd用于从Web接口执行外部命令)
将apache、nagios 用户加入nagcmd组
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd apache
tar zxvf nagios-3.2.3.tar.gz
./configure --with-httpd-conf=/etc/httpd/conf --with-nagios-user=nagios --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
最后的 make install-webconf 已经将虚拟主机的配置增加到/etc/httpd/conf/nagios.conf
将它拷贝到/etc/httpd/conf.d 目录中,apache 自动将该目录中*.conf 文件包含进去.
创建Apache密码认证文件,加入admin用户
#htpasswd -c /usr/local/nagios/etc/htpasswd.users admin
修改Nagios的CGI配置文件/usr/local/nagios/etc
默认的授权用户是nagiosadmin ,改为自定义的admin
use_authentication=1
设定启用身份验证
authorized_for_system_information=admin
设定系统信息的授权用户
authorized_for_configuration_information=admin
设定配置信息的授权用户
authorized_for_system_commands=admin
设定系统命令的授权用户
authorized_for_all_services=admin
设定全部监测服务的授权用户。
authorized_for_all_hosts=admin
设定全部被监测主机的授权用户
authorized_for_all_service_commands=admin
设定全部监测服务命令的授权用
authorized_for_all_host_commands=admin
设定全部主机命令的授权用户
(2) 安装Nagios基本插件
#tar zxvf 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
在/usr/local/nagios/libexec/ 就可以看到插件程序了
(3)启动Nagios
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #验证配置文件语法
#/etc/init.d/naigos start #启动
http://192.168.2.242/nagios 进行访问,如果出现CGI认证问题,编辑/usr/local/nagios/etc/cgi.conf,将use_authentication=1 改为use_authentication=0
二.监控Windows
1. 被监控主机Windows 上的配置
在Windows 上安装 NSClient++-0.3.8-Win32.msi
在 Allowed hosts 里填入监控服务器IP:192.168.2.242,不设置NSclient Password 密码,设置"允许桌面交互"(或者安装后在服务里设置)
(1)找到安装目录的NSC.ini,在[modules]中加载以下模块:
FileLogger.dll
CheckSystem.dll #CPU负载、内存、UPTIME 监控等项目需要
CheckDisk.dll #磁盘空间监控需要
NSClientListener.dll #基本,必须
SysTray.dll
CheckWMI.dll
RemoteConfiguration.dll
注:默认的配置监控项目只需要CheckSystem.dll、CheckDisk.dll。NSClientListener.dll
(2)在[Settings]小节中,allowed_hosts=192.168.2.242(安装时填入的监控服务器IP),
(3) 在[NSClient] 节中,去掉port=12489 的注释。
2.监控端Nagios 的设置
在/usr/local/nagios/etc/nagios.cfg 加入以下行:
cfg_file=/usr/local/nagios/etc/windows-server/winserver1.cfg
#mkidr /usr/local/nagios/etc/windows-server #建立存放Win服务器配置文件的目录
在windows.cfg 的基础上进行修改:
#cp /usr/local/nagios/etc/objects /usr/local/nagios/etc/windows-server/winserver1.cfg
修改winserver.cfg:
define host{
use windows-server ; Inherit default values from a template
host_name winserver1 ; The name we're giving to this host
alias My Windows Server ; A longer name associated with the host
address 192.168.2.240 ; 改为被监控的Win服务器IP
}
#./check_nt -H 192.168.2.240 -p 12489 -v UPTIME #测试,正常返回类似以下的信息
System Uptime - 0 day(s) 1 hour(s) 48 minute(s)
如果出现提示Connection refused,could not fetch information from server ,则有可能是以下问题:
(1)NSC.ini 设置了password 选项,测试时 check_nt 应该增加 -s password 参数,同时commands.cfg 中的check_nt 也应该增加 -s password 参数。
(2)allowed_hosts 选项要加入监控服务器端的IP
(3)没加载 NSClientListener.dll,即无法监控端口
三.监控Linux 服务器
npre 是一个代理检测程序插件,工作于C/S 模式,监听监控服务器发现的命令(chech_nrpe),并把内容传回给监控服务器,监控服务器和被监控服务器都要安装nrpe。
http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf 参考这个文档
1.被监控主机的安装
IP: 192.168.2.243
(1) 安装 nagios-plugins
#useradd nagios
#passwd nagios
#tar zxvf nagios-plugins-1.4.15.tar.gz
#./configure
#make
#make install
#chown -R nagios.nagios /usr/local/nagios
(2) 安装nrpe 代理检测程序插件
#yum install xinetd #需要xinetd
#./configure
#make all
#make install-plugin
#make install-daemon
#make install-daemon-config
#make install-xinetd
修改 /etc/xinetd/nrpe
将only_from = 127.0.0.1 改为only_from = 127.0.0.1 192.168.2.242
修改 /etc/services ,增加
nrpe 5666/tcp #NRPE
#/etc/init.d/xinetd restart
#/usr/local/nagios/libexec/check_nrpe -H localhost #测试,返回NRPE v2.12 则正常
下面是定义要监控的对像,默认已经有一些项目。
添加 command[check_xxx] 项目:
#vim /usr/local/nagios/etc/nrpe.conf
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
测试,可以测试各个监测项目:
#/usr/local/nagios/libexec/check_nrpe -H localhost -c check_swap
正常能返回类似以下数据:
SWAP OK - 100% free (2047 MB out of 2047 MB) |swap=2047MB;409;204;0;2047
注:如果有防火墙,要打开5666端口
2.监控主机的安装配置
安装npre,目的生成/usr/local/nagios/libexec/check_nrpe
#tar zxvf nrpe-2.12.tar.gz
#./configure
#make all
#make install-plugin
测试下是否可以连接到被监控机器
#/usr/local/nagios/libexec/check_nrpe -H 192.168.2.243 #返回NRPE的版本号正常
编辑/usr/local/nagios/etc/objects/commands.cfg , 加入一个check_nrpe 的命令定义:
#vim /usr/local/nagios/etc/objects/commands.cfg
#'check_nrpe' command defintion
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
以下增加的主机和要监控的项目:
创建一个配置文件,定义一个define host {} 和多个 define service {} ,然后在nagios.cfg 中包含此文件
#mkdir /usr/local/nagios/etc/linux-server
#vim /usr/local/nagios/etc/linux-server/webserver1.cfg
define host{
use linux-server
host_name webserver1
alias LAMP_Server
address 192.168.2.243
}
define service{
use generic-service
host_name webserver1
service_description HTTP
check_command check_http
}
define service{
use generic-service
host_name webserver1
service_description SSH
check_command check_ssh
}
define service{
use generic-service
host_name webserver1
service_description SMTP
check_command check_smtp
}
define service{
use generic-service
host_name webserver1
service_description POP3
check_command check_pop
}
define service{
use generic-service
host_name webserver1
service_description check-swap
check_command check_nrpe!check_swap
}
define service{
use generic-service
host_name webserver1
service_description check-load
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name webserver1
service_description check-disk
check_command check_nrpe!check_had1
}
define service{
use generic-service
host_name webserver1
service_description zombie_procs
check_command check_nrpe!check_zombie_procs
}
define service{
use generic-service
host_name webserver1
service_description check-users
check_command check_nrpe!check_users
}
define service{
use generic-service
host_name webserver1
service_description total_procs
check_command check_nrpe!check_total_procs
}
注:(1)定义的 define host {} 继承了etc/objects/templates.cfg模板中名为linux-server的主机配置,define service{}则继承了etc/objects/templates.cfg 中generic-service的设置。
(2)可以编辑templates.cfg 中参照host、service 的定义,增加自定义的host 和service , 然后在webserver1.cfg 中引用。
(3)在webserver1.cfg 中 define host {}和 define service {} 均定重新指定templates.cfg 有关host 和 service 中的选项,会覆盖从templates.cfg继承的值。
(4) 定义的监测项目(define service),有些是不依懒于NRPE的,有些是依懒于NRPE(check_nrpe),依懒于nrpe的监测项要在被监控的机器上nrpe.cfg有配置。
#vim /usr/local/nagios/etc/nagios.cfg #增加配置文件
cfg_file=/usr/local/nagios/etc/linux-server/webserver1.cfg
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #验证配置文件语法
#/etc/init.d/nagios restart
|
|
|