nagiosモニタリング構成

8951 ワード

Linuxシステム管理者として、システムの状態を随時確認することはできません.流量が異常で、負荷が急に高くなり、事故を引き起こす可能性があります.モニタリングソフトでシステムの状態を自動的にモニタリングでき、異常を発見するとアラームしたり、スクリプトでモニタリングしたりすることができます.
1、Nagios
オープンソースソフトウェアで、無料で使用して、ホストの状態を監視することができて、windows、linux、プリンタはすべて使用することができます.
Webインタフェースに基づいて、サイトにログインして各指標を表示します.
メールまたはメール通知をサポートします.
カスタムスクリプトによるカスタム化モニタリングが可能です.
公式サイトwww.nagios.org
2、nagiosサービスをインストールする
サービス側(centos 6.4 192.168.0.105)とクライアント(centos 6.4 192.168.0.104)に分けられます.クライアントはホストの状態を監視し、データはサービス側に報告し、サービス側はデータを処理する.
拡張ソースのインストール
[root@client ~]# rpm -ivh http://www.lishiming.net/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm
//          
nagiosのインストール
[root@client ~]# yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
httpログインパスワードの設定
[root@client ~]# htpasswd -c /etc/nagios/passwd nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin
プロファイルの表示
[root@client ~]# vim /etc/nagios/nagios.cfg
プロファイルにエラーがないかどうかを検出
[root@client ~]# nagios -v /etc/nagios/nagios.cfg
サービスを開始
[root@client ~]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for client
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
[root@client ~]# service nagios start
Starting nagios: done.IEshang
ブラウザへのアクセス:http://192.168.0.105/nagios
3、nagiosクライアントのインストール
拡張ソースのインストール
[root@localhost ~]# rpm -ivh http://www.lishiming.net/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm
nagiosのインストール
[root@localhost ~]# yum install -y nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
プロファイルの変更
[root@localhost ~]# vim /etc/nagios/nrpe.cfg
allowed_hosts=127.0.0.1,192.168.0.105
ont_blame_nrpe=1
クライアントの起動
[root@localhost ~]# /etc/init.d/nrpe start
Starting nrpe:                                             [  OK  ]
4、監視センタは被監視ホストを追加する(サービス側)
[root@client ~]# cd /etc/nagios/conf.d/
[root@client conf.d]# vim 192.168.0.104.cfg   //   IP  
define host{
        use                     linux-server            ; Name of host template to use
                                                        ; This host definition will inherit all variables that are defined
                                                        ; in (or inherited by) the linux-server host template definition.
        host_name               192.168.0.104
        alias                   0.12
        address                 192.168.0.104
        }
define service{
        use                     generic-service
        host_name               192.168.0.104
        service_description     check_ping
        check_command           check_ping!100.0,20%!200.0,50%
        max_check_attempts 5
        normal_check_interval 1
}
//  ping  
define service{
        use                     generic-service
        host_name               192.168.0.104
        service_description     check_ssh
        check_command           check_ssh
        max_check_attempts      5
        normal_check_interval 1
}
//  ssh  
define service{
        use                     generic-service
        host_name               192.168.0.104
        service_description     check_http
        check_command           check_http
        max_check_attempts      5
        normal_check_interval 1
}
//  http  
[root@client ~]# cd /etc/nagios/conf.d/
[root@client conf.d]# vim 192.168.0.104.cfg
define host{
        use                     linux-server           
//Name of host template to use
 //This host definition will inherit all variables that are defined
 //in (or inherited by) the linux-server host template definition.
        host_name               192.168.0.12
        alias                   0.12
        address                 192.168.0.12
        }
define service{
        use                     generic-service
        host_name               192.168.0.12
        service_description     check_ping
        check_command           check_ping!100.0,20%!200.0,50%
        max_check_attempts 5     //    ,  5    
        normal_check_interval 1   //        ,1  
        notification_interval  60   //       ,       ,     60      
}
//  ping  
define service{
        use                     generic-service
        host_name               192.168.0.12
        service_description     check_ssh
        check_command           check_ssh
        max_check_attempts      5
        normal_check_interval 1
}
//  ssh  
define service{
        use                     generic-service
        host_name               192.168.0.12
        service_description     check_http
        check_command           check_http
        max_check_attempts      5
        normal_check_interval 1
}
//  http  
5、遠隔監視のサービスを実現する(サービス側)
[root@client conf.d]# vim /etc/nagios/objects/commands.cfg
//       
define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }
[root@client conf.d]# vim /etc/nagios/conf.d/192.168.0.104.cfg
define service{
        use     generic-service
        host_name       192.168.0.105
        service_description     check_load
        check_command           check_nrpe!check_load
//check_load           
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service
        host_name       192.168.0.105
        service_description     check_disk_hda1
        check_command           check_nrpe!check_hda1
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service
        host_name       192.168.0.105
        service_description     check_disk_hda2
        check_command           check_nrpe!check_hda2
        max_check_attempts 5
        normal_check_interval 1
}
check_の表示load(クライアント)
[root@localhost ~]# vim /etc/nagios/nrpe.cfg
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
//hda1   sda1
//  20%   ,  10%    
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
[root@localhost ~]# /usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
DISK OK - free space: /boot 429 MB (93% inode=99%);| /boot=29MB;387;435;0;484
//          ,             
check_を定義hda2
[root@localhost ~]# vim /etc/nagios/nrpe.cfg   //   
//      
command[check_hda2]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2
クライアント、サービス側がサービスを再起動し、ページテストをリフレッシュする
監視サービスの表示
[root@client conf.d]# ls /usr/lib/nagios/plugins/
check_breeze    check_icmp         check_nrpe      check_smtp
check_by_ssh    check_ide_smart    check_nt        check_snmp
check_clamd     check_imap         check_ntp       check_spop
check_cluster   check_ircd         check_ntp_peer  check_ssh
check_dhcp      check_jabber       check_ntp.pl    check_ssmtp
check_dig       check_ldap         check_ntp_time  check_swap
check_disk      check_ldaps        check_nwstat    check_tcp
check_disk_smb  check_load         check_oracle    check_time
check_dns       check_log          check_overcr    check_udp
check_dummy     check_mailq        check_pgsql     check_ups
check_file_age  check_mrtg         check_ping      check_users
check_flexlm    check_mrtgtraf     check_pop       check_wave
check_fping     check_mysql        check_procs     eventhandlers
check_ftp       check_mysql_query  check_real      negate
check_game      check_nagios       check_rpc       urlize
check_hpjd      check_nntp         check_sensors   utils.pm
check_http      check_nntps        check_simap     utils.sh
//    ,        
6、メールアラームの設定
[root@client conf.d]# vim /etc/nagios/objects/contacts.cfg
define contact{
        contact_name               123    //     
        use                             generic-contact  //  
        alias                           aming
        email              [email protected] //  
        }
アラートポリシーのカスタマイズ
notifications_enabled
//        。1   ,0   。  ,           (nagios.cfg)   ,    。
notification_interval
//      ,                 。       60  。        0,         。
notification_period
//        。       (  )    7×24,     (  )        。           ,        ,       。
notification_options
//                :d =    DOWN, u =    UNREACHABLE , r =      OK ,  f = flapping,n=     。