Nagios是一个用来监控主机、服务和网络的开放源码软件,很多大的公司或组织都在使用它。
参考资料:
http://yahoon.blog.51cto.com/13184/41300
http://bbs.linuxtone.org/thread-1281-1-1.html
http://bbs.linuxtone.org/thread-2269-1-1.html
nagios官方文档
http://www.nagios.org/docs/
nagios中文文档
http://www.itnms.net/docs/nagios/cn/build/html/
nagios中文相关讨论区
http://bbs.linuxtone.org/forum-20-1.html
http://www.itnms.net/discuz/forumdisplay.php?fid=10&pageD1
nagios下载地址:
http://www.nagios.org/download/
这里选用
nagios-3.0.6.tar.gz
nagios-plugins-1.4.13.tar.gz
nrpe2.12
wget http://downloads.sourceforge.net/sourceforge/nagios/nagios-3.0.6.tar.gz?use_mirror=nchc
wget http://downloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz?use_mirror=nchc
wget http://nchc.dl.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
安装nagios
系统为as4
1.创建用户和用户组
#创建用户和用户组
useradd -m nagios
# -s /sbin/nologin 禁止登录,运行命令时可能会有限制,也可以不加本限制
groupadd nagcmd
usermod -G nagcmd nagios
#将nginx或apache运行用户加入组中
usermod -G nagcmd nobody
2.安装nagios
tar zxvf nagios-3.0.6.tar.gz
cd nagios-3.0.6
#gd默认安装路径
#./configure –with-command-group=nagcmd –prefix=/usr/local/nagios –with-gd-lib=/usr/lib64/ –with-gd-inc=/usr/include
./configure –with-command-group=nagcmd –prefix=/usr/local/nagios –with-gd-lib=/usr/local/gd2/lib –with-gd-inc=/usr/local/gd2/include
#以下为编译结果
—————————————————————-
*** Configuration summary for nagios 3.0.6 12-01-2008 ***:
General Options:
————————-
Nagios executable: nagios
Nagios user/group: nagios,nagios
Command user/group: nagios,nagcmd
Embedded Perl: no
Event Broker: yes
Install ${prefix}: /usr/local/nagios
Lock file: ${prefix}/var/nagios.lock
Check result directory: ${prefix}/var/spool/checkresults
Init directory: /etc/rc.d/init.d
Apache conf.d directory: /etc/httpd/conf.d
Mail program: /bin/mail
Host OS: linux-gnu
Web Interface Options:
————————
HTML URL: http://localhost/nagios/
CGI URL: http://localhost/nagios/cgi-bin/
Traceroute (used by WAP): /bin/traceroute
Review the options above for accuracy. If they look okay,
type ‘make all’ to compile the main program and CGIs.
—————————————————-
make all
make install
make install-init
make install-config
make install-commandmode
3.安装nagios-plugins
tar zxvf nagios-plugins-1.4.13.tar.gz
cd nagios-plugins-1.4.13
./configure –with-nagios-user=nagios –with-nagios-group=nagios –prefix=/usr/local/nagios
checking for ping6… /bin/ping6
checking for ICMP ping syntax…
到这里就停住了,应该是ipv6问题,加上–with-ping-command参数编译
参考下面地址:
http://www.linuxquestions.org/questions/linux-software-2/.configure-script-hangs-at-checking-for-icmp-ping-syntax…l-499235/
http://bbs.bitscn.com/195707
./configure –with-nagios-user=nagios –with-nagios-group=nagios –prefix=/usr/local/nagios –with-ping-command=”/bin/ping” –enable-perl-modules –with-mysql=/opt/mysql
make
–with-apt-get-command:
–with-ping6-command: /bin/ping6 -n -U -w %d -c %d %s
–with-ping-command: /bin/ping
–with-ipv6: yes
–with-mysql: /opt/mysql/bin/mysql_config
–with-openssl: yes
–with-gnutls: no
–enable-extra-opts: no
–with-perl: /usr/bin/perl
–enable-perl-modules: yes
–with-cgiurl: /nagios/cgi-bin
–with-trusted-path: /bin:/sbin:/usr/bin:/usr/sbin
如果没有mysql关联,libexec目录不会产生check_mysql,utils.pm等文件
make install
#查看播件文件是否已安装在这个目录
ls /usr/local/nagios/libexec
4.配置nginx的web口
如果使用apache可以在安装nagios时使用make install-webconf,不需要下面的配置
我的web server是nginx ,编辑nginx.conf
location ~ \.cgi$ {
root /usr/local/nagios/sbin;
allow 192.168.54.83; #充许访问的客户端ip
deny all;
auth_basic “Restricted”;
auth_basic_user_file nagios;
rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
fastcgi_index index.cgi;
fastcgi_pass unix:/dev/shm/perl_cgi-dispatch.sock;
fastcgi_param HTTP_ACCEPT_ENCODING gzip,deflate;
fastcgi_param SCRIPT_FILENAME /usr/local/nagios/sbin$fastcgi_script_name;
include fcgi.conf;
}
location /nagios/ {
alias /usr/local/nagios/share/;
allow 192.168.54.83;
deny all;
auth_basic “Restricted”;
auth_basic_user_file nagios;
}
5.使用apache的htpasswd生成用户和口令
/opt/apache/bin/htpasswd -c /opt/nginx/conf/nagios nagiosadmin
6.修改nagios配置文件
修改etc/cgi.cfg中的用户为nagiosadmin
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin//多个用户之间用逗号隔开
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
测试时可以将use_authentication=0
修改etc/objects/contacts.cfg联系人
define contact{
contact_name nagiosadmin ; Short name of user
use generic-contact ; Inherit default values from generic-contact template (defined above)
alias Nagios Admin ; Full name of user
email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
}
修改本机配置etc/objects/localhost.cfg
上传配置文件
检查配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
7.启动nagios
#启动
/etc/rc.d/init.d/nagios start
#手工启动
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
#重启
/etc/rc.d/init.d/nagios reload
8.reload nginx server
/opt/nginx/sbin/nginx -t
kill -HUP `cat /opt/nginx/logs/nginx.pid`
nagios安装完成
访问http://localhost/nagios/就可以看到了
安装内存监控插件
wget “http://www.nagiosexchange.org/cgi-bin/jump.cgi?ID=1789&view=File1;d=1”
mv jump.cgi\?ID\=1789\&view\=File1\;d\=1 check_mem.pl.gz
gunzip check_mem.pl.gz
mv check_mem.pl /usr/local/nagios/libexec/check_mem
chown nagios:nagios check_mem
chmod 0755 check_mem
./check_mem -w 95,60 -c 120,80
#测试结果
OK: Memory Usage (W> 95, C> 120): 83%
Swap Usage (W> 60, C> 80): 3%|MemUsed=83%;95;120 SwapUsed=3%;60;80
commands.cfg增加
define command{
command_name check_mem
command_line $USER1$/check_mem -w $ARG1$ -c $ARG2$
}
监控对像文件localhost.cfg添加
define service{
use local-service ; Name of service template to use
host_name localhost
service_description memory
check_command check_mem!110,50!150,80
notifications_enabled 0
}
重新加载文件
/etc/init.d/nagios reload
访问http://localhost/nagios/ 输入口令后就可以看到界面了
疑难杂征
在service detail中看到ping的命令行是黄色的。
Current Status:
UNKNOWN
(for 3d 17h 46m 12s)
Status Information: ping
CRITICAL – Could not interpret output from ping command
多数情况为nagios用户没有执行ping的权限
可以先测试下ping命令有无返回
ping 127.0.0.1
nagios用户无执行权权时:
root下
chmod u+s /path/ping
参考:http://blog.chinaunix.net/u/9861/showart_1001559.html
路径不正确时:
nagios插件编译时使用参数
–with-ping-command=”/bin/ping”
参考:http://marc.info/?l=netsaintplug-help&m=101980226726163&w=2
禁ping时:
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
#非0执行下面
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
还需检查下其它地方有无禁ping设置,如/etc/rc.local
nagios里点”3-D Status Map”时提示”打开statuswrl.cgi”的问题
这个问题是玩nagios最常见的问题
nagios的官方网站的faq里都有得说,看这里
意思差不多就是说:“如果要看3-D statusmap CGI (statuswrl.cgi)的输出的话,得为你的web浏览器安装vrml的client(客户端)或plugin(插件)”
然后还推荐了四个
Cortona (Parallel Graphics)
Cosmo Player (Computer Associates and NIST)
FreeWRL和OpenVRML
好像最后两个没有windows版本
所以如果是用windows机器看的话
需要装前两个软件之一,我安装的是Cortona3D Viewer ,支持ie7和firefox
访问本网址可以查看适合的plugin
http://cic.nist.gov/vrml/vbdetect.html
Firefox添加Nagios插件
https://addons.mozilla.org/en-US/firefox/addon/3607
解决Nagios安装好后statusmap.cgi找不到的问题
- libgd
- libgd-devel
- libpng
- libpng-devel
- libjpeg
- libjpeg-devel
- zlib
- zlib-devel
run ‘make devclean‘ in your Nagios source code distribution directory and rerun the configure script
我的gd安装在/usr/local/gd2/
./configure –prefix=/usr/local/nagios –with-gd-lib=/usr/local/gd2/lib –with-gd-inc=/usr/local/gd2/include
iconv找不时的出错
statusmap.cgi: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
ldd /usr/local/nagios/sbin/statusmap.cgi
libgd.so.2 => /usr/lib64/libgd.so.2 (0x0000003f16e00000)
libiconv.so.2 => not found
找一下libiconv.so.2是不是在/usr/local/lib/中,并且该目录不在/etc/ld.so.conf中
将目录放入动态库中
echo “/usr/local/lib” >> /etc/ld.so.conf
ldconfig -v
再刷新下页面,问题解决.
安装NRPE
tar zxvf nrpe2.12.tar.gz
cd nrpe2.12
./configure
./make all
./make install-plugin
#监控机只需安装到这步
你好。
在进行nginx配置是11行的配置是什么意思?
11.fastcgi_pass unix:/dev/shm/perl_cgi-dispatch.sock;
我的电脑上面没有:/dev/shm/perl_cgi-dispatch.sock文件。
我用的是redhat Enterprise 4.4
是不是需要安装什么东西了?
我的web server是nginx,apache不需要这步
这个是fastcgi的UNIX sockets 路径
如果是IP sockets那可能是”127.0.0.1:8999″
取决于你的fastcgi配置
您好
请教个问题 我也是nginx+nagios 用的是perl fastcgi
状况是 nagios 能够访问 但是web访问超级慢 打开一个页面大概需要1分钟
我的fastcgi 是wiki 里下的 地址为 http://wiki.nginx.org//NginxSimpleCGI
解答下
我的nginx配置可以参见这里
http://blog.c1gstudio.com/archives/152