天天看點

Nagios 系統監控

====================================================================================================

安裝nagios伺服器端

# groupadd nagios

# groupadd nagcmd

# useradd -g nagios -s /sbin/nologin -d /usr/local/nagios nagios

# usermod -G nagcmd nagios

# usermod -G nagcmd www

# chmod 755 /usr/local/nagios

# yum -y install gcc gcc-c++ flex bison autoconf automake bzip2 bzip2-devel zlib zlib-devel

# yum -y install ncurses ncurses-devel libjpeg libjpeg-devel libpng libpng-devel libtiff libtiff-devel

# yum -y install freetype freetype-devel pam pam-devel gd gd-devel libgdata libgdata-devel cairo cairo-devel

# yum -y install libxml2 libxml2-devel pango pango-devel libart_lgpl libart_lgpl-devel

注:httpd php 安裝略,httpd在configure時,加上參數--enable-cgi和--enable-cgid

# wget -c http://sourceforge.net/projects/nagios-cn/files/latest/download?source=files [中文版]

# tar -jxvf nagios-cn-3.2.3.tar.bz2

# cd nagios-cn-3.2.3

or

# wget -c http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.3.1.tar.gz  [英文版]

# tar -xvzf nagios-3.3.1.tar.gz

# cd nagios

# ./configure --prefix=/usr/local/nagios \

--with-nagios-user=nagios \

--with-nagiso-group=nagios \

--with-httpd-conf=/usr/local/apache/conf \

--with-command-group=nagcmd

# make all

# make install

# make install-init

# make install-commandmode

# make install-config

# make install-webconf

# /usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin  [密碼: blzvdwl369328]

# vi /usr/local/apache/conf/extra/httpd-vhosts.conf

ScriptAlias "/nagios/cgi-bin" "/usr/local/nagios/sbin"

<Directory "/usr/local/nagios/sbin">

 Options ExecCGI

 AllowOverride None

 Order allow,deny

 Allow from all

 AuthName "Nagios Access"

 AuthType Basic

 AuthUserFile /usr/local/nagios/etc/htpasswd.users

 Require valid-user

</Directory>

Alias "/nagios" "/usr/local/nagios/share"

<Directory "/usr/local/nagios/share">

 Options None

----------------------------------------------------------------------------------------------------

# wget -c http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

# tar -xvzf nagios-plugins-1.4.15.tar.gz

# cd nagios-plugins-1.4.15

--with-nagios-group=nagios \

--with-mysql=/usr/local/mysql \

--enable-perl-modules

# wget -c http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz

# tar -xvzf nrpe-2.13.tar.gz

# cd nrpe-2.13

# ./configure

# make install-plugin

# yum -y install rrdtool

# yum -y install rrdtool-perl

# wget -c http://nchc.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.16.tar.gz

# tar -xvzf pnp4nagios-0.6.16.tar.gz

# cd pnp4nagios-0.6.16

# ./configure --prefix=/usr/local/pnp4nagios \

--with-httpd-conf=/usr/local/apache/conf

Alias /pnp4nagios "/usr/local/pnp4nagios/share"

<Directory "/usr/local/pnp4nagios/share">

    AllowOverride None

    Order allow,deny

    Allow from all

    AuthName "Nagios Access"

    AuthType Basic

    AuthUserFile /usr/local/nagios/etc/htpasswd.users

    Require valid-user

    <IfModule mod_rewrite.c>

        RewriteEngine On

        Options FollowSymLinks

        RewriteBase /pnp4nagios/

        RewriteRule ^(application|modules|system) - [F,L]

        RewriteCond %{REQUEST_FILENAME} !-f

        RewriteCond %{REQUEST_FILENAME} !-d

        RewriteRule .* index.php/$0 [PT,L]

    </IfModule>

# 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

# vi /usr/local/nagios/etc/nagios.cfg

process_performance_data=1

host_perfdata_command=process-host-perfdata

service_perfdata_command=process-service-perfdata

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg [配置檢查]

# vi /usr/local/nagios/etc/objects/commands.cfg

define command{

 command_name process-host-perfdata

 command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA

 }

 command_name process-service-perfdata

 command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl

# vi /usr/local/nagios/etc/objects/templates.cfg

define host{

 name host-pnp

 action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_

 register 0

define service{

 name srv-pnp

 action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$

# vi /usr/local/nagios/etc/objects/localhost.cfg

    use                 linux-server,host-pnp

    host_name           HomeSwitch

    alias               HomeSwitch

    address             127.0.0.1

    icon_p_w_picpath          switch.gif

    statusmap_p_w_picpath     switch.gd2

    2d_coords          100,200

    3d_coords           100,200,100

    }

 use     local-service,srv-pnp

 host_name    localhost

 service_description PING

 check_command   check_ping!100.0,20%!500.0,60%

# cd /usr/local/pnp4nagios/share

# mv install.php install.php.bak

# wget -c http://sourceforge.net/projects/nagiosql/files/nagiosql/NagiosQL%203.1.1/nagiosql_311.tar.gz

被監控端安裝

# useradd -g nagios -s /sbin/nologin nagios

# wget -c http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.9/nagios-plugins-1.4.9.tar.gz

# tar -xvzf nagios-plugins-1.4.9.tar.gz

# cd nagios-plugins-1.4.9

# ./configure --prefix=/usr/local/nagios

# make

# chown nagios.nagios /usr/local/nagios

# chown -R nagios.nagios /usr/local/nagios/libexec

# make install-daemon

# make install-daemon-config

# /usr/local/nagios/libexec/check_nrpe -H localhost

# vi /usr/local/nagios/etc/nrpe.cfg

allowed_hosts=127.0.0.1  [注:為Nagios監控平台的位址或域名]

# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

# echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.local

# iptables -A INPUT -m state --state NEW -p tcp --dport 5666 -j ACCEPT

此指令生成的日志會在系統的日志(/var/log/message)中

# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1   [注:在本機]

# /usr/local/nagios/libexec/check_nrpe -H 目标主機位址  [注:在nagios監控平台伺服器]

通過NRPE,可以監控到被監控伺服器上有的插件(/usr/local/nagios/libexec中的所有插件)。也就是說,

你想監控什麼,隻要有對應的插件,就可以實作。例如,我希望監控一台遠端伺服器上的cpu負載。

在遠端主機的插件中有“check_load”,那麼,在nrpe.conf中定義一個cpu負載的監控:

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

被監控機:[以監控記憶體使用為例]

http://exchange.nagios.org/components/com_mtree/p_w_upload.php?link_id=1154&cf_id=24

command[check_mem]=/usr/local/nagios/libexec/check_mem -w 110,50 -c 150,80

# chmod 755 /usr/local/nagios/libexec/check_mem

# chown nagios.nagios /usr/local/nagios/libexec/check_mem

監控機:

    command_name    check_mem

    command_line    $USER1$/check_mem -w $ARG1$ -c $ARG2$

cfg_file=/usr/local/nagios/etc/objects/linuxserver.cfg

# vi /usr/local/nagios/etc/objects/linuxserver.cfg

    use                     linux-server,host-pnp

    host_name               weiliao_server78

    alias                   weiliao_server78

    contact_groups          admins

    max_check_attempts      5

    address                 192.168.1.238

 icon_p_w_picpath              server.gif

    statusmap_p_w_picpath         server.gd2

    2d_coords               100,200

    3d_coords               100,200,100

define hostgroup{     

    hostgroup_name    linux-server

    alias             Linux Servers

    members            weiliao_server78

    host_name           weiliao_server78

    service_description     memory_monitor

    is_volatile             0

    check_period            24x7

    normal_check_interval   1

    retry_check_interval    1

    notification_options    w,u,c,r

    notification_interval   1

    notification_period     24x7

    check_command           check_nrpe!check_mem!110,50!150,80

    notifications_enabled   0

下一篇: nginx 配置