天天看點

實戰Nagios網絡監控(1)——監控本機運作狀态和Mysq主機

    Nagios是一個監視系統運作狀态和網絡資訊的監視系統。Nagios能監視所指定的本地或遠端主機以及服務,同時提供異常通知功能等。

    Nagios可運作在Linux/Unix平台之上,同時提供一個可選的基于浏覽器的WEB界面以友善系統管理人員檢視網絡狀态,各種系統問題,以及日志等等

實驗環境:

實體主機 redhat7.0 核心版本 3.10.0-123.el7.x86_64

虛拟機 redhat6.5 核心版本 2.6.32-431.el6.x86_64

伺服器端: server1.example.com 172.25.254.1

所需軟體包:

gd-devel-2.0.35-11.el6.x86_64.rpm

nagios-cn-3.2.3.tar.bz2

nagios-plugins-2.1.1.tar.gz

1.編譯nagios

   (1).準備安裝

        [root@server1 mnt]# tar jxf nagios-cn-3.2.3.tar.bz2 

        [root@server1 mnt]# mv nagios-cn-3.2.3  /root/

        [root@server1 mnt]# yum install gd-devel-2.0.35-11.el6.x86_64.rpm   gcc   -y                                            ##為./configure做準備       

    (2).編譯安裝

        [root@server1 mnt]# cd /root/nagios-cn-3.2.3/

        [root@server1 nagios-cn-3.2.3]# ./configure    

        [root@server1 nagios-cn-3.2.3]# useradd -u 900 -M -d /usr/local/nagios nagios

        [root@server1 nagios-cn-3.2.3]# make all

        [root@server1 nagios-cn-3.2.3]# make 

        [root@server1 nagios-cn-3.2.3]# make install-init

            *** Init script installed ***

        [root@server1 nagios-cn-3.2.3]# make install-commandmode            

            *** External command directory configured ***

        [root@server1 nagios-cn-3.2.3]# make install-config           

            *** Config files installed ***            

        [root@server1 nagios-cn-3.2.3]# make install-webconf

            *** Nagios/Apache conf file installed ***

    (3).修改登陸使用者密碼

        [root@server1 nagios-cn-3.2.3]#  cat /usr/local/nagios/etc/htpasswd.users  ##檢視密碼

        nagiosadmin:gCWSDnqEHR45c

        [root@server1 nagios-cn-3.2.3]# htpasswd /usr/local/nagios/etc/htpasswd.users nagiosadmin

        New password:                         ##更改密碼

        Re-type new password: 

        Updating password for user nagiosadmin

    (4)啟動服務

         [root@server1 nagios-cn-3.2.3]# /etc/init.d/httpd start

        Starting httpd:                                            [  OK  ]

        [root@server1 nagios-cn-3.2.3]# /etc/init.d/nagios start

        Starting nagios: done.

    (5)浏覽器通路:172.25.254.6/nagios,使用者為nagiosadmin,密碼為自己剛改的密碼。

<a href="http://s1.51cto.com/wyfs02/M02/89/5B/wKioL1gQos2SrMi_AADLWm2btcA535.png" target="_blank"></a>

<a href="http://s1.51cto.com/wyfs02/M00/89/5D/wKiom1gQos7z8Z6cAAKtC_IrFp4592.png" target="_blank"></a>

<a href="http://s2.51cto.com/wyfs02/M00/89/5B/wKioL1gQo07R8mdwAAPKyHTXoRc185.png" target="_blank"></a>

2.排除故障

    可以看到剛安裝的nagios不能監控到主機的狀态,需要安裝插件排除故障

    (1)[root@server1 0722-監控-nagios]# cd /mnt/

        [root@server1 mnt]# tar -zxf nagios-plugins-2.1.1.tar.gz 

        [root@server1 mnt]# mv nagios-plugins-2.1.1  /root/

        [root@server1 mnt]# cd /root/nagios-plugins-2.1.1/

    (2)編譯插件           

        [root@server1 nagios-plugins-2.1.1]# yum install mysql-devel openssl-devel -y     #編譯所需軟體包                                                                     

        [root@server1 nagios-plugins-2.1.1]# ./configure 

*****************************************************************************************

config.status: creating po/Makefile

            --with-apt-get-command: 

              --with-ping6-command: /bin/ping6 -n -U -w %d -c %d %s

               --with-ping-command: /bin/ping -n -U -w %d -c %d %s

                       --with-ipv6: yes

                      --with-mysql: /usr/bin/mysql_config ##不能為no,如果為no,則 yum install mysql-devel -y

                    --with-openssl: yes ##不能為no,如果為no,則 yum install openssh-devel -y

                     --with-gnutls: no

               --enable-extra-opts: yes

                       --with-perl: /usr/bin/perl

             --enable-perl-modules: no

                     --with-cgiurl: /nagios/cgi-bin

               --with-trusted-path: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

                   --enable-libtap: no

&lt;2&gt;make

&lt;3&gt;make install

(3)cd /usr/local/nagios/libexec/

&lt;1&gt;ll

&lt;2&gt;chown nagios.nagios * ##更改所有檔案的所屬使用者和所屬組為nagios

&lt;3&gt;id apache

   usermod -G nagios apache

       id apache

*********************************************

[root@server6 libexec]# id apache

uid=48(apache) gid=48(apache) groups=48(apache),900(nagios)

    (3).編輯配置檔案

    (3.1)

        [root@server1 nagios-plugins-2.1.1]# vim /usr/local/nagios/etc/nagios.cfg 

          30 cfg_file=/usr/local/nagios/etc/objects/commands.cfg

          31 cfg_file=/usr/local/nagios/etc/objects/contacts.cfg

          32 cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg

          33 cfg_file=/usr/local/nagios/etc/objects/templates.cfg

          34 cfg_file=/usr/local/nagios/etc/objects/hosts.cfg

          35 cfg_file=/usr/local/nagios/etc/objects/services.cfg

          36 

          37 # Definitions for monitoring the local (Linux) host

          38 #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

    (3.2)

        [root@server1 nagios-plugins-2.1.1]# cd /usr/local/nagios/etc/objects/

        [root@server1 objects]# cp -p localhost.cfg hosts.conf

        [root@server1 objects]# cp -p localhost.cfg services.cfg

        [root@server1 objects]# cp -p localhost.cfg hosts.cfg

    (3.3)

        [root@server1 objects]# vim hosts.cfg 

###############################################################################

# Define a host for the local machine

define host{

        use                     linux-server            ; 給網絡裝置用的

        host_name               監控主機

        alias                   MainSwitch

        address                 127.0.0.1

        icon_image              switch.gif

        statusmap_image         switch.gd2

        2d_coords               100,200

        3d_coords               100,200,100

        }

#

# HOST GROUP DEFINITION

# Define an optional hostgroup for Linux machines

define hostgroup{

        hostgroup_name  linux-servers ; The name of the hostgroup

        alias           Linux Servers ; Long name of the group

        members         *     ; Comma separated list of hosts that belong to this group

    (3.4)[root@server1 objects]# vim services.cfg 

define servicegroup{

        servicegroup_name 系統狀态檢查

        alias 系統概況

define service{

        use                             local-service         ; Name of service template to use

        host_name                       *

        service_description             PING

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

        host_name                       監控主機

        service_description             根分區

        check_command                   check_local_disk!20%!10%!/

        service_description             登入使用者數

        check_command                   check_local_users!20!50

# Define a service to check the number of currently running procs

# on the local machine.  Warning if &gt; 250 processes, critical if

# &gt; 400 users.

        service_description             程序總數

        check_command                   check_local_procs!250!400!RSZDT

        service_description             系統負荷

        check_command                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

        service_description             交換空間使用率

        check_command                   check_local_swap!20!10

        service_description             SSH

        check_command                   check_tcp!22!1.0!10.0

        notifications_enabled           0

        service_description             HTTP

        check_command                   check_http

    (3.5)[root@server1 objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

            ##檢測有無錯誤          

            Total Warnings: 0

            Total Errors:   0

            Things look okay - No serious problems were detected during the pre-flight check

    (3.6)

            [root@server1 objects]# /etc/init.d/nagios reload

            Running configuration check...done.

            Reloading nagios configuration...done

   浏覽器重新整理浏覽:172.25.254.1/nagios

<a href="http://s3.51cto.com/wyfs02/M01/89/5E/wKiom1gQqXCDv-GvAAJLyINKN2g551.png" target="_blank"></a>

3.加個mysql服務

    [root@server1 ~]# yum install mysql-server -y

    [root@server1 ~]# /etc/init.d/mysqld restart

    [root@server1 ~]# mysql

&gt; show databases;

&gt; grant select on test.* to nagios@localhost identified by 'redaht';

    [root@server1 ~]# cd /usr/local/nagios/libexec

    [root@server1 libexec]# ./check_mysql -H localhost  -u nagios -p westos

Uptime: 12566  Threads: 10  Questions: 207453  Slow queries: 0  Opens: 130  Flush tables: 1  Open tables: 42  Queries per second avg: 16.509|Connections=421c;;; Open_files=80;;; Open_tables=42;;; Qcache_free_memory=0;;; Qcache_hits=0c;;; Qcache_inserts=0c;;; Qcache_lowmem_prunes=0c;;; Qcache_not_cached=0c;;; Qcache_queries_in_cache=0;;; Queries=207453c;;; Questions=207453c;;; Table_locks_waited=5c;;; Threads_connected=10;;; Threads_running=1;;; Uptime=12566c;;;

*********************************************************************************

    [root@server1 libexec]cd /usr/local/nagios/etc/objects

    [root@server1 objects] vim command.cfg

212 # 'check_mysql' command definition

213 define command{

214         command_name    check_mysql

215         command_line    $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$

216        }

    [root@server1 objects] vim hosts.cfg

14 # Define a host for the mysql on server4.example.com

  15 define host{

  16         use                     linux-server

  17         host_name               server4.example.com

  18         alias                   mysql

  19 #       parents                 MainSwitch

  20         address               127.0.0.1

  21         icon_image              server.gif

  22         statusmap_image         server.gd2

  23         2d_coords               400,100 ##2D坐标位置

  24         3d_coords               400,200,100 ##3D坐标位置

  25         }

    [root@server1 objects] vim services.cfg

109 ################check_mysql##########################

110 define service{

111         use                             local-service         ; Name of service template to use

112         host_name                       server4.example.com

113         service_description             mysql

114         check_command                   check_mysql!nagios!westos

115         notifications_enabled           0

116         }

    [root@server1 objects] /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg ##檢查

(4)浏覽器重新整理浏覽:172.25.254.1/nagios

<a href="http://s2.51cto.com/wyfs02/M02/89/5E/wKiom1gQq5CRGoDqAAFE7aGyfDA940.png" target="_blank"></a>

    可以看到多了一個Mysql監控

本文轉自willis_sun 51CTO部落格,原文連結:http://blog.51cto.com/willis/1866079,如需轉載請自行聯系原作者