Jaringan Permrograman • 9 bulan yang lalu

Membuat Notifikasi Telegram untuk Nagios

avatar of Azhari Sikumbang

Azhari Sikumbang

@azhari

Share on

Assalamualaikum Warahmatullahi Wabarokatuh

Postingan ini akan membahas tentang bagaimana membuat notikasi ke telegram. Membuat notifikasi telegram untuk nagios sebenarnya sudah banyak ditulis oleh para pegiat teknologi ( silahkan cek google ). Tapi, kebanyakan mengharuskan kita untuk mengkonfigurasi di sisi nagiosnya, seperti membuat config di direktori /etc/nagios dan sebagianya.

Sebenarnya hal itu sah sah saja dan sangat dianjurkan, tapi ( bagi saya ) yang baru kenalan dengan nagios dan kurang faham dengan konfignya atau bahkan tidak mempunyai hak akses untuk melakukan konfigurasi secara langsung ke sisi server akan dipaksa putar otak agar mempermudah pekerjaan hehe.

Nah, hasil mutar mutar di google ternyata nagios mempunyai CGI Service hhhhmm sebuah angin segar.

Service ini memungkinkan kita untuk mendapatkan data dari nagios secara real time. Untuk lebih mendetail bisa dicek di https://labs.nagios.com/2014/06/19/exploring-the-new-json-cgis-in-nagios-core-4-0-7-part-1/ .

Medapatkan Data Nagios

Berdasarkan artikel tersebut disebutkan bahwa terdapat tiga buah cgi yang bisa kita eksplor, yaitu

  • objectjson.cgi  (object configuration)
  • statusjson.cgi  (status information)
  • archivejson.cgi (historical logs)

Selanjutnya untuk menggunakan service tersebut silahkan buka, http://<ip server>/nagios/jsonquery.html, maka akan muncul halaman Json Query Generator yang akan mempermudah kita untuk mendapatkan informasi.

Silahkan pilih pilihan pada CGI, dan untuk mendapatkan status up dan down dari hosts kita cukup berfokus pada Status Json CGI, silahkan dipilih.

Selanjutnya halaman akan memberikan pilihan Query, silahkan pilih hostslist untuk mendapatkan data hosts nagios kita.

Selanjutnya akan muncul banyak filter, silahkan disesuaikan dengan kebutuhan. Untuk filter yang saya gunakan sebagai berikut, silahkan disesuaikan atau sesuai kemauan.

Sebagai contoh ingin mengecek status dari host grup yang dihandle, masukkan host grup dan centang True pada show details, kemudian pilih Send Query.

Kemudian, server akan memberikan response kepada kita berupa data data dari hosts, jangan terlalu dipusingkan untuk hasil yang ditampilkan cukup berfokus pada dua hal, yaitu status dan URL yang dihasilkan.

Untuk status dari host diwakilkan dengan angka yakni, 2 untuk Ok sisanya dianggap bermasalah.

Sedangkan untuk URL yang dihasilkan silahkan dicopy dan disimpan karena akan kita gunakan lagi, http://<ip server>/nagios/cgi-bin/statusjson.cgi?query=hostlist&details=true&hostgroup=sesuainamagrup

Membuat Daftar Host / Site

Jika kita perhatikan data json hasil query kita pada Json Query Generator pada bagian hostslist, result json kita mempunyai key sesuai nama host yang terdaftar di nagios. Hal ini membuat kita sedikit kesulitan dalam memastikan key yang akan kita gunakan untuk mendapatkan data, yaa karena tiap host beda beda.

Selain untuk mengatasi hal diatas, pendaftaran host ini juga berguna jikalau kita hanya memerlukan status dari beberapa site saja, seperti contoh dari total 100 hosts, kita hanya perlu 10 saja, karena akan tidak efektif lagi jika kita mendapatkan data dari host yang tidak kita handle.

Berdasarkan script yang dibuat, host ini di daftarkan di file locations.csv dengan pola

NAMA LOKASI, IP DEVICE

Contohnya, *pastikan tidak ada line kosong pada bari paling bawah

https://gist.github.com/azharisikumbang/2ee74e5ce37ddc04ff039d4320166234

Membuat Bot Telegram

Silahkan login ke akun telegram masing masing dan untuk membuat bot bisa dengan menggunakan botFather telegram di https://t.me/botfather.

  • Pada botFather, ketikkan /start dan kemudian /newbot
  • Selanjutnya, masukkan nama bot ( misal, saya pake telnagiosbot )
  • Setelah nama, masukkan username dengan embel-embel bot diujung username ( misal, telnagiosbot )
  • Jika muncul pesan balasan seperti berikut, berarti kita berhasil membuat bot kita sendiri

  • chatid adalah message_id kita ( kotak biru ) , silahkan di copy dan disimpan
  • Jika tidak menghasilkan seperti gambar diatas, silahkan dikirim ulang pesan ke bot dan diakses lagi

Mari Koding

Untuk script telah diupload di gist github, script ditulis memakai PHP 7.2 ( update : dan tersedia juga dalam python3 di https://gist.github.com/azharisikumbang/ec1fc6db9ba9d51be16d52d75d57eb91)

Beberapa parameter berikut silahkan disesuaikan masing masing

https://gist.github.com/azharisikumbang/b7c3f78e0fc5b967a993c96779a6a062

Yok dicoba!

Untuk melakukan pengujian awal, kita menggunakan komputer masing masing, dan pastikan telah terinstall PHP (update: atau python3).

Berikut hasil uji coba.

$ php telenagios.php

Yeayy, notifikasi telegram sederhana berhasil dibuat, tapi.. masih banyak kekurangan,, untuk selanjutnya akan diupdate berupa pemberian notifikasi secara otomatis dan berkala ( misal per satu jam ) ke hp, atau penambahan atribute lain seperti kontak client di lokasi perangkat kita berada..

Sekian,