Nagios備忘之基本配置

kumu_linux發表於2012-11-22

########################################Server########################################

# ls /usr/loca/nagios

cgi.cfg                       -->cgi配置檔案
htpasswd.users     -->Apache驗證密碼檔案
nagios.cfg                -->nagios主配置檔案
objects                     -->監控物件,定義檔案目錄
resource.cfg            -->nagios資源配置檔案

# grep '^cfg_file' /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
//監控指令碼配置檔案
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
//聯絡人/組配置檔案
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
//監控時段配置檔案
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
//監視服務,報警配置
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
//本機配置檔案

# pwd
/usr/local/nagios/etc/objects
# touch hosts.cfg services.cfg
# chown nagios:nagios hosts.cfg services.cfg

# vim  /usr/local/nagios/etc/nagios.cfg  //新增如下,加入監控主機和服務配置檔案
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg

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

# cat /usr/local/nagios/etc/objects/hosts.cfg   //加入監控主機
define host {
    host_name     client1
    address        192.168.1.18    
    alias        client1
    use        linux-server
}

commands.cfg             //加入nrpe

define command{
  command_name check_nrpe
  command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}


commands.cfg            //如果需要加入加快MySQL服務的狀態需要自定義命令
---------------------------------------------------------------------------------------
define command{
  command_name check_mysql
  command_line $USER1$/check_mysql -H $HOSTADDRESS$ -P 3306 -u nagios -d nagios -p 123
}
---------------------------------------------------------------------------------------

########################################Server########################################


Client:

需要在MySQL被監控主機賦權:如下

check_mysql    -->加入Nagios的MySQL檢測

mysql> create database nagios;
Query OK, 1 row affected (0.02 sec)

mysql> grant select on nagios.* to nagios@'%' identified by '123';
Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>


########################################Server########################################
services.cfg    //一些監控服務的示例
---------------------------------------------------------------------------------------
define service{
        use                     local-service
        host_name               client1
        service_description     check_user
        check_command           check_nrpe!check_users
        notifications_enabled   1
}

define service{
        use                     local-service
        host_name               client1
        service_description     check_load
        check_command           check_nrpe!check_load
        notifications_enabled   1
}

define service{
        use                     local-service
        host_name               client1
        service_description     check_total_procs
        check_command           check_nrpe!check_total_procs
        notifications_enabled   1
}

define service{
        use                     local-service
        host_name               client1
        service_description     check_/
        check_command           check_nrpe!check_/
        notifications_enabled   1
}

define service{
        use                     local-service
        host_name               client1
        service_description     check_swap
        check_command           check_nrpe!check_swap
        notifications_enabled   1
}

define service{
        use                     local-service
        host_name               client1
        service_description     check_zombie_procs
        check_command           check_nrpe!check_zombie_procs
        notifications_enabled   1
}

define service{
        use                     local-service
        host_name               client1
        service_description     check_http
        check_command           check_http
        notifications_enabled   1
}

define service{
        use                     local-service
        host_name               client1
        service_description     check_ssh
        check_command           check_ssh
        notifications_enabled   1
}

define service{
        use                     local-service
        host_name               client1
        service_description     check_mysql
        check_command           check_mysql
        notifications_enabled   1
}
---------------------------------------------------------------------------------------

########################################Server########################################


Client

以上服務示例不是所有的命令都有的,有些需要在客戶機的nrpe上配置

# grep '^command\[' /usr/local/nagios/etc/nrpe.cfg
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_/]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
command[check_swap]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda3
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
//不同機器的分割槽可能不同,所以這裡我修改了/和swap的分割槽的一個監控,系統資源的監控都是通過nrpe去實現的,類似ssh、mysql等服務則無需依靠nrpe


以上是nagios監控基礎服務和系統資源的一個配置備忘,之後還會有nagios的timeperiods.cfg、contacts.cfg以及監控主機組和服務組的一個配置

附上一個監控圖


相關文章