这里用一台Ubuntu12.04的系统当nagios服务器,还有一台远程windows主机来简单介绍下。
nagios监控服务器端地址:192.168.0.20
远程windows主机地址(被监控端):192.168.0.81
注: ip地址根据具体主机ip修改,并不是固定的
介绍下原理图:(这种监控模式是主动模式,是由nagios服务器端先发起的)
这里简单介绍下原理的意思:
nagios监控服务器端通过执行check_nt这个脚本,然后穿过远程windows主机的防火墙,和windows主机通信。
被监控客户端要安装NSClinet++这个软件,这个服务开启,会一直监听12489端口。
可以在cmd命令行界面敲入netstat -an 可以看到12489端口正在listening
注:要想真正了解原理,可以通过wireshark抓包分析。
下面就是具体配置过程:
nagios服务器端配置:
一 要在服务器端先装一些包
apt-get install -y apache2 apache2是web服务器
apt-get install -y libapache2-mod-php5 显示网页用的
apt-get install –y build-essential 提供c/c++的编译环境
apt-get install -y libgd2-xpm
apt-get install -y libgd2-xpm-dev GD库是php处理图形的扩展库
apt-get install -y make (默认好像装过了,编译用的)
apt-get install -y libssl-dev 安全套接层协议层,基于WEB应用的安全协议
二 创建nagios用户,nagcmd组
useradd -m nagios
密码为nagios
passwd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data
在debian/ubuntu上,www-data是默认运行web服务的用户/组,一般在通过apt安装web服务程序时生成。搭建web服务的文件夹/文件一般要设置成www-data的
三 下载nagios和nagios插件
创建一个目录,用于存储下载
mkdir -p ~/downloads
cd ~/downloads
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
解压
tar xzf nagios-3.2.3.tar.gz
cd nagios-3.2.3
设置编译参数,有兴趣的话可以打开configure这个脚本看看
./configure --with-command-group=nagcmd
编译
make all
安装 nagios初始化脚本,示例配置文件 设置外部命令目录权限
make install-init
make install-config
make install-commandmode
安装Nagios的Web配置文件在Apache的conf.d目录
make install-webconf
创建一个 nagiosadmin的帐户登录到Nagios Web界面。记住你分配给这个帐户的密码-你会需要它htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
这个地方会让你输入密码,待会登录的时候有用(下面会提到)
注: 如果还要添加更多的用户,执行命令 htpasswd 就不需要选项 “-c”,否则就会覆盖所有已经生成的行
重新启动Apache使新的设置生效
/etc/init.d/apache2 reload
可能遇到的错误:
每次重启apache2,都会出现以下错误提示:
Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
解决方法:
修改 httpd.conf 文件
vim /etc/apache2/httpd.conf
默认情况下,这个是一个空文件,在文件中加入以下内容:
ServerName localhost
保存文件退出,再次重启apache,错误提示没有了。
cd ~/downloads
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
配置Nagios在系统启动时自动启动
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
验证样品Nagios配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果没有错误,启动Nagios。
/etc/init.d/nagios start
登录到http://192.168.0.20/nagios/
192.168.0.20:nagios监控服务器地址
编辑主Nagios的配置文件
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
把前面注释的#删除掉
保存退出。
在 /usr/local/nagios/etc/objects/windows.cfg中
把address修改为192.168.0.81
define host{
use windows-server ; Inherit default values from a Windows server template (make sure you keep this line!)
host_name winserver //被监控的主机名 随便取都ok
alias My Windows Server
address 192.168.0.81 //被监控的主机的ip
}
远程windows主机配置:
在你可以开始监测私人服务和Windows机器的属性,你需要在这些机器上安装代理。我建议使用NSClient + +的插件
下载最新的稳定版本的NSClient + +插件http://sourceforge.net/projects/nscplus
解压缩NSClient + +文件到一个新的C:\ NSClient + +目录
开命令提示符窗口并切换到C:\ NSClient + +目录
注册NSClient + +系统服务,使用下面的命令:
nsclient++ /install
安装NSClient + +托盘用下面的命令(“系统托盘”是区分大小写):
nsclient++ SysTray
打开服务管理器,使确定的NSClientpp服务,允许与桌面交互(见“登录”选项卡,在服务管理器)。如果不是已经允许与桌面交互,选中复选框以允许它。
我的电脑右键—管理—服务和应用程序---服务
右键属性
编辑的NSC.INI的文件(位于C:\ NSClient + +目录)并进行以下更改:
除了CheckWMI.dll和RemoteConfiguration.dll,取消注释[模块]部分中列出的所有模块, (可选)需要通过改变“密码”选项,在[设置]部分客户的密码。取消注释“allowed_hosts”选项,在[设置]部分。Nagios服务器的IP地址加入到这一行,或留下空白,以允许所有主机连接。
请确保在“端口”选项[NSClient]部分注释掉,并设置为'12489'(默认端口)。
如果安装得当,应该会出现一个新的图标在系统托盘中。
nagios服务重启
/etc/init.d/nagios restart