Nagios dengan Notification via SMS (Nagios Part 3 of 4)

Di sini untuk pengiriman SMS menggunakan Modem Wavecom Fastrack dengan Type GSM/GPRS yang bekerja pada signal GSM 900/1800, berikut gambar modem nya…

 

modem

Check Device di System

Pengecekan apakah modem terbaca oleh server atau tidak dengan cara sebagai berikut; karena jenis modem dengan interfaces menggunakan Serial Port sebagai Console maka kita akan melakukan checking di TTY-nya…

# dmesg | grep tty
console [tty0] enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:07: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

Bila muncul console enabled maka COM port sudah aktif dan bila belum aktif silahkan config pada BIOS komputer server-nya. Kebetulan COM port di address 0x3F8 maka kita check serial di address port tersebut…

# cat /proc/tty/driver/serial | grep 3F8
0: uart:16550A port:000003F8 irq:4 tx:10 rx:0 CTS

Modem telah terdeteksi di serial port karena sudah muncul CTS, namun ada jenis modem lain munculnya CTS|DSR.

 

Install Gammu untuk Kirim SMS

Langkah selanjut install Gammu untuk aplikasi pengiriman maupun menerima SMS dari perangkat modem tersebut. Sebelum meng-compile source code Gammu maka dibutuhkan paket-paket untuk compiler yaitu paket developer…

# yum groupinstall 'Development Tools' -y && yum install cmake -y

Selanjut download Gammu dan extract kemudian lakukan compiler untuk penginstallan.

# wget http://sourceforge.net/projects/gammu/files/gammu/1.31.0/gammu-1.31.0.tar.gz
# tar -xzvf gammu-1.31.0.tar.gz
# cd gammu-1.31.0
# ./configure && make install

Kebetulan menggunakan CentOS 64bit, buat link file lib Gammu yang dibutuhkan…

# ln -s /usr/local/lib64/libGammu.so /usr/lib64/libGammu.so.7
# ln -s /usr/local/lib64/libgsmsd.so /usr/lib64/libgsmsd.so.7

Sebelum melakukan config modem, perhatikan spekfikasi modem, kebetulan modem yang digunakan ini menggunakan Serial Port untuk console maka model komunikasinya “at” dan modem ini berkomunikasi di speed 115200, tadi kita check device tersebut terhubung di port /dev/ttyS0 maka config modem di gammu sebagai berikut…

# gammu-config

dan config-nya…

gammu-config

Buat folder dan file log…

# mkdir /var/log/gammu
# touch /var/log/gammu/gammurc

Check hasil config…

# gammu --identify
Device : /dev/ttyS0
Manufacturer : Wavecom
Model : MULTIBAND 900E 1800 (MULTIBAND 900E 1800)
Firmware : 652a09gg.Q2406B 244 112706 00:44
IMEI : 012345678901234
SIM IMSI : 510011033515668

Setelah config hardware pada gammu, selanjutnya config untuk send SMS-nya; disini hanya dibutuhkan send SMS saja tidak diperlukan terima SMS. Copy file config-nya sudah dilakukan sebelumnya…

# cp /root/.gammurc /etc/gammurc

kemudian lakukan tester pengiriman email…

# echo "tester" | /usr/local/bin/gammu sendsms TEXT 0812300xxxx -len 400

 

Config pada Nagios

Tentukan contact-nya, nomer handphone maupun group contact-nya, edit file /etc/nagios/objects/contacts.cfg

define contact {
       contact_name nagiosadmin
       use generic-contact
       alias Nagios Admin
       pager 0812300xxxx
}

define contactgroup{
       contactgroup_name admins
       alias Nagios Administrators
       members nagiosadmin
}

dimana pager tersebut adalah nomer handphone yang akan menerima notification SMS dari Nagios.

Selanjutnya config pada file /etc/nagios/objects/commands.cfg, buat command SMS-nya dengan menambahkan baris…

define command {
        command_name notify-host-by-sms
        command_line /usr/bin/sudo /usr/bin/printf "%b" "Alert $HOSTNAME$ on IP $HOSTADDRESS$ is $HOSTSTATE$with IP $HOSTADDRESS$ info: $HOSTOUTPU$Date:$SHORTDATETIME$" | /usr/local/bin/gammu sendsms TEXT $CONTACTPAGER$ 
}

define command {
         command_name notify-service-by-sms
         command_line /usr/bin/sudo /usr/bin/printf "%b" "Alert service $SERVICEDESC$ on $HOSTNAME$ with IP $HOSTADDRESS$ State:$SERVICESTATES$ Date:$SHORTDATETIME$" | /usr/local/bin/gammu sendsms TEXT $CONTACTPAGER$
}

Masalah sudoer, karena previlage nagios bukan root sedangkan si gammurc berjalan di root dan agar perintah di file command untuk sms bisa menjalankan gammu di root maka edit file /etc/sudoers kemudian tambahkan user nagios tanpa password bisa menjalakan beberapa command, letakkan setelah user root…

[...]
root ALL=(ALL) ALL
nagios ALL=(root) NOPASSWD: /usr/bin/printf, /usr/local/bin/gammu
[...]

Edit template untuk mengatur notification pada contact-nya dan config-nya di file /etc/nagios/objects/templates.cfg

define contact{
        name generic-contact
        service_notifications_enabled 1
        service_notification_period 24x7
        service_notification_options w,u,c,r
        service_notification_commands notify-service-by-sms
        host_notifications_enabled 1
        host_notification_period 24x7
        host_notification_options d,u,r
        host_notification_commands notify-host-by-sms
        register 0
}

tambahkan contact dan group contact pada service default (ping) di file /etc/nagios/objects/services.cfg

define service {
        use local-service
        host_name *
        contact_groups admins
        is_volatile 0
        check_period 24x7
        normal_check_interval 1
        retry_check_interval 1
        notifications_enabled 1
        notification_interval 1
        notification_period 24x7
        notification_options w,u,c,r
        service_description PING
        check_command check_ping!100.0,20%!500.0,60%
}

terakhir tambahkan juga group contact di setiap host yang di monitoring service-nya selain ping.