chunjihong 发表于 2019-1-15 12:18:24

Nagios+pnp两键轻松搞定

  近期在做一个Nagios,果然如其名--“难过死”,不过做出来之后,还是蛮爽的,然后感觉不尽兴,就写了两个脚本实现起功能。
  系统环境:centos5.7 x86_64
  
  硬件环境:XenServer
  内存3G,一颗双核CPU

      Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
  Nagios具有的功能:


[*]监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
[*]监控主机资源(处理器负荷、磁盘利用率等);
[*]简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
[*]并行服务检查机制;
[*]具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
[*]当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
[*]可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;
[*]自动的日志滚动功能;
[*]可以支持并实现对主机的冗余监控;
[*]可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
  首先要了解nagios的工作原理,他是通过插件管理的,这些插件均可以自己编写:
http://blog.运维网.com/attachment/201207/205241443.png
  接下来就是简单的脚本实现Nagios+pnp绘图过程,首先是服务端脚本:


[*]#!/bin/bash
[*]#:Title:Nagios server install
[*]#:Synopsis:
[*]#:Data:2012-07-18 13:36:32
[*]#:Version:1.1
[*]#:Author:LuoWei
[*]#:Options:
[*]#This is an install Nagios's script
[*]
[*]Nagios_user=nagios
[*]Nagios_password=baison
[*]Pack_path=`pwd`
[*]Mail=282127408@qq.com
[*]
[*]yum -y install httpd gettext mysql mysql-server mysql-devel php53 php53-mysql php-pear
[*]yum install   perlperl-DBI perl-DBD-MySQL gcc glibc glibc-common gd gd-devel openssl-devel -y
[*]
[*]useradd $Nagios_user && echo $Nagios_password |passwd --stdin $Nagios_user
[*]usermod -s /sbin/nologin $Nagios_password
[*]groupadd nagcmd
[*]usermod -G nagcmd $Nagios_password
[*]usermod -G nagcmd apache
[*]
[*]#install nagios
[*]cd $Pack_path
[*]tar xf nagios-cn-3.2.3.tar.bz2
[*]cdnagios-cn-3.2.3
[*]./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd
[*]make all
[*]make install
[*]make install-init
[*]make install-commandmode
[*]make install-config
[*]make install-webconf
[*]make install-commandmode
[*]   
[*]#install nagios-plugins   
[*]cd $Pack_path
[*]tar xf nagios-plugins-1.4.15.tar.gz
[*]cd nagios-plugins-1.4.15
[*]sed -i 's/email.*/email'$Mail'/'/usr/local/nagios/etc/objects/contacts.cfg
[*]./configure --with-nagios-user=nagios --with-nagios-group=nagios
[*]make && make install
[*]
[*]#install nagios-snmp-plugins
[*]#cd $Pack_path
[*]#tar xf nagios-snmp-plugins.1.1.1.tgz
[*]#cd nagios_plugins/
[*]ln -sv /usr/local/nagios/bin/nagios /usr/local/bin/
[*]sed -i "/^#ServerName/i\ServerName 127.0.0.1:80" /etc/httpd/conf/httpd.conf
[*]
[*]chkconfig --add nagios
[*]chkconfig nagios on
[*]chkconfig httpd on
[*]chkconfig mysqld on
[*]service nagios start
[*]service httpd start
[*]service mysqld start
[*]

[*]cp /usr/local/nagios/etc/nagios.cfg{,.bak}
[*]#nrpe install
[*]cd $Pack_path
[*]tar xf nrpe-2.12.tar.gz
[*]cd nrpe-2.12
[*]./configure
[*]make && make install
[*]chown -R nagios:nagios /usr/local/nagios
[*]
[*]#install pnp
[*]cd $Pack_path
[*]tar xf rrdtool-1.4.5.tar.gz
[*]cd rrdtool-1.4.5
[*]yum install -y pango pango-devel freetype freetype-devel libpng libpng-devel gettext gettext-devel libjpeg libjpeg-devel gd gd-devel libxml2 libxml2-devel libiconv libiconv-develqpixman qpixman-devel glib glib-devel cairo cairo-devel libart*php53-gd
[*]./configure --prefix=/usr/local/rrdtool
[*]make && make install
[*]
[*]cd $Pack_path
[*]tar xf pnp4nagios-0.6.6.tar.gz   
[*]cd pnp4nagios-0.6.6
[*]./configure --prefix=/usr/local/pnp4nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-nagios-user=nagios --with-nagios-group=nagcmd
[*]make all
[*]make install
[*]make install-webconf
[*]make install-config
[*]make install-init
[*]make fullinstall
[*]cd /usr/local/pnp4nagios/etc/
[*]mv misccommands.cfg-sample misccommands.cfg
[*]mv nagios.cfg-sample nagios.cfg
[*]mv rra.cfg-sample rra.cfg
[*]cd pages/
[*]mv web_traffic.cfg-sample web_traffic.cfg
[*]cd ../check_commands/
[*]mv check_all_local_disks.cfg-sample check_all_local_disks.cfg
[*]mv check_nrpe.cfg-sample check_nrpe.cfg
[*]mv check_nwstat.cfg-sample check_nwstat.cfg
[*]cp /usr/local/nagios/etc/nagios.cfg{,.bak}
[*]sed -i 's@#host_perfdata_command=process-host-perfdata@host_perfdata_command=process-host-perfdata@' /usr/local/nagios/etc/nagios.cfg
[*]sed -i '/cfg_file=.*localhost.cfg/d' /usr/local/nagios/etc/nagios.cfg
[*]cp /usr/local/pnp4nagios/libexec/process_perfdata.pl /usr/local/nagios/libexec/
[*]cp /usr/local/src/pnp4nagios-0.6.6/contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/
[*]cp /usr/local/nagios/etc/objects/commands.cfg{,.bak}
[*]sed -i '227,247d' /usr/local/nagios/etc/objects/commands.cfg
[*]cat >>/usr/local/nagios/etc/objects/commands.cfg /usr/local/nagios/etc/objects/templates.cfg /usr/local/nagios/etc/objects/commands.cfg
页: [1]
查看完整版本: Nagios+pnp两键轻松搞定