Topik ini menjelaskan cara mengintegrasikan Nagios dengan Alert Management.
Langkah 1: Buat integrasi Nagios
-
Masuk ke ARMS console. Di panel navigasi sebelah kiri, pilih .
-
Di tab Alert Integration, klik Nagios.
-
Di wizard New Nagios Integration, masukkan nama dan deskripsi untuk integrasi, atur waktu pemulihan otomatis untuk event alert, lalu klik Save.
CatatanWaktu pemulihan otomatis setelah timeout: Jika event alert tidak dipicu lagi dalam periode waktu yang ditentukan, event alert tersebut akan dihapus secara otomatis.
-
Di tab Alert Integration, cari integrasi Nagios Anda dan salin alamat integrasinya.
Langkah 2: Konfigurasikan templat alert Nagios
-
Buat skrip notifikasi alert.
-
Masuk ke server tempat Nagios berada dan masukkan path berikut:
cd /usr/local/nagios/libexec/ -
Buat file skrip bernama nagios-alert.py. Tambahkan konten berikut ke file tersebut:
CatatanGanti
integration_urldalam skrip dengan alamat integrasi dari Langkah 1.#!/usr/bin/python # -*- coding: utf-8 -*- import requests import json import sys import os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "integration_url" # Ganti integration_url dengan alamat integrasi dari Langkah 1. def parse(sys): object_type = str(sys.argv[1]) notification_type = str(sys.argv[2]) host_name = str(sys.argv[3]) host_ip = str(sys.argv[4]) state = str(sys.argv[5]) time = str(sys.argv[6]) info = str(sys.argv[7]) if object_type == 'host': description = "[{}] {} alert: {} is {}".format(notification_type, object_type, host_name, state) service = "" else: service = str(sys.argv[8]) description = "[{}] {} alert: {}/{} is {}".format(notification_type, object_type, host_name, service, state) content_dict = {'service':""} content_dict['object_type'] = object_type content_dict['notification_type'] = notification_type content_dict['host_name'] = host_name content_dict['host_ip'] = host_ip content_dict['state'] = state content_dict['time'] = time content_dict['info'] = info content_dict['service'] = service content_dict['description'] = description print(content_dict) return content_dict def msg(text): result = requests.post(url=api_url, data=json.dumps(text), headers=headers) print(result) if __name__ == '__main__': text = parse(sys) msg(text) -
Jalankan perintah berikut untuk menginstal library Requests:
pip install requests
-
-
Konfigurasikan file Commands.
-
Jalankan perintah berikut untuk mengubah file commands.cf:
vim /usr/local/nagios/etc/objects/commands.cf -
Tambahkan konten berikut ke file commands.cf:
define command{ command_name notify-host-by-alert command_line python /usr/local/nagios/libexec/nagios-alert.py "host" "$NOTIFICATIONTYPE$" "$HOSTALIAS$" "$HOSTADDRESS$" "$HOSTSTATE$" "$LONGDATETIME$" "$HOSTOUTPUT$" } define command{ command_name notify-service-by-alert command_line python /usr/local/nagios/libexec/nagios-alert.py "service" "$NOTIFICATIONTYPE$" "$HOSTALIAS$" "$HOSTADDRESS$" "$SERVICESTATE$" "$LONGDATETIME$" "$SERVICEOUTPUT$" "$SERVICEDESC$" } -
Masukkan perintah
:wquntuk menyimpan perubahan pada file commands.cf.
-
-
Tentukan informasi kontak.
-
Jalankan perintah berikut untuk mengubah file contacts.cfg:
vim /usr/local/nagios/etc/objects/contacts.cfg -
Tambahkan konten berikut ke file contacts.cfg:
service_notification_commands notify-service-by-alert host_notification_commands notify-host-by-alertdefine contact{ contact_name nagiosadmin ; Short name use generic-contact ; Inherit de alias Nagios Admin ; Full name email nagios@localhost ; <<***** Ch service_notification_commands notify-service-by-alert host_notification_commands notify-host-by-alert } ################################################################ -
Masukkan perintah
:wquntuk menyimpan perubahan pada file contacts.cfg.
-
-
Jalankan perintah berikut untuk restart Nagios:
systemctl restart nagios
(Opsional) Langkah 3: Modifikasi integrasi
Alert Management menyediakan pemetaan field default antara sumber alert Nagios dan alert ARMS. Anda juga dapat menambahkan atau memodifikasi pemetaan field di halaman Edit Integration.
Contoh sumber alert:
{
"info":"SWAP CRITICAL - 0% free (0 MB out of 0 MB) - Swap is either disabled, not present, or of zero size.",
"description":"[PROBLEM] service alert: localhost/Swap Usage is CRITICAL",
"service":"Swap Usage",
"host_ip":"127.0.0.1",
"state":"CRITICAL",
"object_type":"service",
"time":"Tue Sep 14 10:46:49 CST 2021",
"notification_type":"PROBLEM",
"host_name":"localhost"
}
-
Di tab Alert Integration, temukan integrasi yang ingin Anda kelola dan klik Edit di kolom Actions.
-
Di bagian Event Mapping, klik Send Test Data.
-
Di kotak dialog Send Test Data, masukkan konten alert dari sumber alert pihak ketiga dalam format JSON dan klik Send.
Catatan-
Jika muncul pesan Uploaded. No events are generated. Configure mappings based on the original data., artinya field dari sumber alert belum dipetakan ke field event alert ARMS. Data yang dikirim akan ditampilkan di kotak sebelah kiri sehingga Anda dapat memilih field sumber saat mengonfigurasi pemetaan.
-
Jika muncul pesan Uploaded., konten alert telah dilaporkan ke halaman Alert Event History. Untuk informasi selengkapnya, lihat View alert event history.
-
-
Di kotak dialog Send Test Data, klik Disable.
-
Di bagian kiri bagian Event Mapping, klik catatan data yang ingin Anda konfigurasi pemetaannya untuk melihat detailnya.
-
Di panel kanan bagian Event Mapping, konfigurasikan pemetaan antara field sumber alert dan field alert ARMS.
-
Opsi:Di bagian Select Root Node, tentukan apakah akan mengaktifkan pemrosesan batch.
Jika terdapat node array dalam data alert, Anda dapat menetapkan node array tersebut sebagai root node. Data yang termasuk dalam root node akan diproses secara batch.
Setelah memilih Use Batch Processing, pilih node array yang akan diproses secara batch sebagai root node.
CatatanJika terdapat beberapa node array dalam data alert, Anda hanya dapat memilih salah satu node array untuk pemrosesan batch.
-
Di bagian Map Source Fields to Target Fields, petakan field sumber alert ke field alert ARMS.
Klik ikon pemetaan untuk mengubah metode pemetaan field.
-
Direct: Field tertentu dari sumber alert dipetakan langsung ke field alert ARMS yang ditentukan.
-
Series: Anda dapat menggunakan pembatas untuk menggabungkan beberapa field sumber alert menjadi satu field, lalu memetakan field tersebut ke field alert ARMS yang ditentukan. Hanya karakter khusus yang dapat digunakan sebagai pembatas.
-
Conditional: Field sumber alert tertentu dipetakan ke field alert ARMS hanya jika nilai field tersebut memenuhi kondisi yang ditentukan.
-
Mapping table: Tingkat severity sumber alert dipetakan ke tingkat severity alert ARMS. Tabel pemetaan hanya berisi field severity.
Tabel berikut menjelaskan field alert ARMS.
Field alert
Deskripsi
alertname
Nama alert kustom.
severity
Tingkat severity alert. Anda harus mengonfigurasi pemetaan untuk field ini. Metode pemetaan harus diatur ke Direct.
message
Deskripsi alert. Deskripsi ini digunakan sebagai isi pesan alert. Panjang deskripsi tidak boleh melebihi 15.000 karakter.
value
Nilai contoh metrik.
imageUrl
URL grafik garis yang berisi metrik Grafana. URL ini digunakan untuk memetakan grafik garis.
check
Item pemeriksaan alert. Contoh: CPU, JVM, Application Crash, dan Deployment.
source
Sumber alert.
class
Jenis objek yang memicu event alert, misalnya host.
service
Layanan sumber alert. Contoh: Login Service.
startat
Timestamp yang menunjukkan waktu mulai event.
endat
Timestamp yang menunjukkan waktu akhir event.
generatorUrl
URL detail event.
-
-
-
Konfigurasikan deduplikasi field untuk event alert.
Untuk mengurangi data duplikat, sistem menggunakan field terkait sebagai dasar deduplikasi. ARMS Alert Management memungkinkan Anda melihat pratinjau hasil pengelompokan deduplikasi data event historis yang ditampilkan di bagian Event Mapping. Anda dapat mengubah field yang akan dideduplikasi.
CatatanAnda hanya dapat mengonfigurasi deduplikasi untuk event yang belum dihapus.
-
Di bagian Event Deduplication pada halaman Integration Details, pilih field yang digunakan untuk deduplikasi.
Jika beberapa event memiliki nilai yang sama untuk field tertentu, event tersebut akan digabung menjadi satu notifikasi alert.
-
Klik Deduplication Test untuk melihat pratinjau grup alert setelah deduplikasi.
CatatanPengujian deduplikasi hanya berlaku untuk 10 catatan data terbaru yang diunggah di bagian kiri bagian Event Mapping.
-
-
Setelah mengonfigurasi pengaturan, klik Save.
Lihat detail event alert
-
Di panel navigasi sebelah kiri ARMS console, pilih .
-
Di halaman Alert Event History, klik nama event alert untuk melihat detail event tersebut. Untuk informasi selengkapnya, lihat View alert event history.
Kelola integrasi
Di panel navigasi sebelah kiri, pilih . Di tab Alert Integration, Anda dapat melakukan operasi berikut pada integrasi yang telah Anda buat:
-
Lihat detail integrasi: Temukan integrasi lalu klik baris tersebut. Di halaman Integration Details, lihat detail integrasi.
-
Perbarui kunci: Untuk memodifikasi kunci integrasi, pilih di kolom Actions untuk integrasi target dan klik Confirm.
PentingSetelah memperbarui kunci, Anda harus memodifikasi alamat integrasi dalam file skrip. Untuk informasi selengkapnya, lihat Langkah 2: Konfigurasikan alert Nagios.
-
Modifikasi integrasi: Temukan integrasi lalu klik Edit di kolom Actions. Di halaman Integration Details, modifikasi informasi integrasi lalu klik Save.
-
Aktifkan atau nonaktifkan integrasi: Temukan integrasi lalu klik Disable atau Enable di kolom Actions.
-
Hapus integrasi: Temukan integrasi lalu klik Delete di kolom Actions. Di pesan yang muncul, klik OK.
-
Tambahkan alur pemrosesan event ke integrasi: Temukan integrasi dan klik Add Event Processing Flow di kolom Actions. Untuk informasi selengkapnya, lihat Event processing flow.
-
Buat kebijakan notifikasi: Temukan integrasi yang ingin Anda buat kebijakan notifikasinya, lalu klik More di kolom Actions. Di daftar yang muncul, klik Create Notification Policy. Untuk informasi selengkapnya, lihat Notification policies.
Langkah selanjutnya
Setelah membuat kebijakan notifikasi, sistem akan menghasilkan alert dan mengirimkan notifikasi alert untuk event alert yang dilaporkan berdasarkan kebijakan notifikasi yang Anda buat. Untuk informasi selengkapnya, lihat Notification policies. Di halaman Alert Sending History, Anda dapat melihat alert yang dihasilkan berdasarkan kebijakan notifikasi yang dikonfigurasi. Untuk informasi selengkapnya, lihat View alert sending history.