Topik ini menjelaskan cara mengintegrasikan Nagios dengan Manajemen Peringatan.
Langkah 1: Buat integrasi Nagios
Masuk ke ARMS Console. Di panel navigasi sebelah kiri, pilih .
- Di tab Alert Integration, klik Nagios.
- Di kotak dialog Create Nagios Integration, masukkan nama dan deskripsi untuk integrasi Nagios, tentukan waktu pemulihan otomatis dari peristiwa peringatan, lalu klik Save.Catatan
Waktu pemulihan otomatis setelah timeout: Jika peristiwa peringatan tidak dipicu lagi dalam periode waktu yang ditentukan, peristiwa tersebut akan dihapus secara otomatis.
- Di tab Alert Integration, temukan integrasi Nagios yang telah dibuat dan salin URL di kolom Alamat Integrasi.

Langkah 2: Konfigurasi template peringatan Nagios
- Buat skrip notifikasi peringatan.
- Masuk ke server tempat Nagios berada dan masukkan jalur berikut:
cd /usr/local/nagios/libexec/ - Buat file skrip bernama nagios-alert.py. Tambahkan konten berikut ke dalam file:Catatan
integration_urldalam file skrip harus diganti dengan alamat integrasi yang diperoleh di 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 yang diperoleh di 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 pustaka Requests:
pip install requests
- Masuk ke server tempat Nagios berada dan masukkan jalur berikut:
- Konfigurasikan file Commands.
- Jalankan perintah berikut untuk memodifikasi 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
:wquntuk menyimpan perubahan ke file commands.cf.
- Jalankan perintah berikut untuk memodifikasi file commands.cf:
- Tentukan informasi kontak.
- Jalankan perintah berikut untuk memodifikasi 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-alert
- Masukkan
:wquntuk menyimpan perubahan ke file contacts.cfg.
- Jalankan perintah berikut untuk memodifikasi file contacts.cfg:
- Jalankan perintah berikut untuk memulai ulang Nagios:
systemctl restart nagios
(Opsional) Langkah 3: Modifikasi integrasi
Manajemen Peringatan menyediakan pemetaan bidang antara sumber peringatan Nagios dan peristiwa peringatan ARMS. Anda juga dapat menambah atau memodifikasi pemetaan antar bidang di halaman Edit Integration.
Contoh sumber peringatan:
{
"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 peringatan dari sumber peringatan pihak ketiga dalam format JSON dan klik Send.
CatatanJika pesan Uploaded. No events are generated. Configure mappings based on the original data. muncul, bidang-bidang dari sumber peringatan belum dipetakan ke bidang-bidang peristiwa peringatan ARMS. Data yang dikirim ditampilkan di kotak di sebelah kiri. Ini memungkinkan Anda memilih bidang sumber saat mengonfigurasi pemetaan.
Jika pesan Uploaded. muncul, konten peringatan dilaporkan ke halaman Riwayat Peristiwa Peringatan. Untuk informasi lebih lanjut, lihat Lihat peristiwa peringatan historis.
Di kotak dialog Send Test Data, klik Disable.
Di bagian kiri dari bagian Event Mapping, klik catatan data yang ingin Anda konfigurasikan pemetaannya untuk melihat detailnya.
- Di bagian kanan dari bagian Event Mapping, konfigurasikan pemetaan bidang antara sumber peringatan dan ARMS.
Opsional:Di bagian Select Root Node, tentukan apakah akan mengaktifkan pemrosesan batch.
Jika ada node array dalam data peringatan, Anda dapat menentukan node array tersebut sebagai root node. Data yang termasuk dalam root node diproses secara batch.
Setelah Anda memilih Use Batch Processing, pilih node array yang akan diproses batch sebagai root node.
CatatanJika ada beberapa node array dalam data peringatan, Anda hanya dapat memilih salah satu dari node array tersebut untuk pemrosesan batch.
Di bagian Map Source Fields to Target Fields, petakan bidang-bidang dari sumber peringatan ke bidang-bidang peringatan ARMS.
Klik ikon pemetaan untuk mengubah metode pemetaan bidang.
Direct: Bidang tertentu dari sumber peringatan langsung dipetakan ke bidang peringatan ARMS yang ditentukan.
Series: Anda dapat menggunakan pemisah untuk menggabungkan beberapa bidang dari sumber peringatan menjadi satu bidang, lalu memetakan bidang ini ke bidang peringatan ARMS yang ditentukan. Hanya karakter khusus yang dapat digunakan sebagai pemisah.
Conditional: Bidang sumber peringatan yang ditentukan dipetakan ke bidang peringatan ARMS hanya jika nilai bidang memenuhi kondisi yang ditentukan.
Mapping table: Tingkat keparahan sumber peringatan dipetakan ke tingkat keparahan peringatan ARMS. Tabel pemetaan hanya berisi bidang tingkat keparahan.
Tabel berikut menjelaskan bidang peringatan ARMS.
Bidang peringatan
Deskripsi
alertname
Nama peringatan kustom.
severity
Tingkat keparahan peringatan. Anda harus mengonfigurasi pemetaan untuk bidang ini. Metode pemetaan harus diatur ke Direct.
message
Deskripsi peringatan. Deskripsi digunakan sebagai isi pesan peringatan. Deskripsi tidak boleh melebihi 15.000 karakter.
value
Nilai sampel dari sebuah data deret waktu.
imageUrl
URL grafik garis yang berisi data deret waktu Grafana. URL digunakan untuk memetakan grafik garis.
check
Item pemeriksaan peringatan. Contoh: CPU, JVM, Application Crash, dan Deployment.
source
Sumber peringatan.
class
Tipe objek yang memicu peristiwa peringatan, misalnya host.
service
Layanan sumber peringatan. Contoh: Login Service.
startat
Cap waktu yang mewakili waktu mulai peristiwa.
endat
Cap waktu yang mewakili waktu akhir peristiwa.
generatorUrl
URL detail peristiwa.
Konfigurasikan deduplikasi bidang untuk peristiwa peringatan.
Untuk mengurangi data duplikat, sistem menggunakan bidang terkait sebagai dasar deduplikasi. Manajemen Peringatan ARMS memungkinkan Anda melihat hasil pengelompokan deduplikasi data peristiwa historis yang ditampilkan di bagian Event Mapping. Anda dapat mengubah bidang yang akan dideduplikasi.
CatatanAnda hanya dapat mengonfigurasi deduplikasi untuk peristiwa yang tidak dihapus.
Di bagian Event Deduplication pada halaman Integration Details, pilih bidang yang digunakan untuk deduplikasi.
Jika beberapa peristiwa memiliki nilai yang sama untuk bidang tertentu, peristiwa-peristiwa tersebut digabungkan menjadi satu notifikasi peringatan.
Klik Deduplication Test untuk melihat pratinjau grup peringatan setelah deduplikasi.
CatatanPengujian deduplikasi hanya berlaku untuk 10 catatan data terbaru yang diunggah di bagian kiri dari bagian Event Mapping.
Setelah Anda mengonfigurasi pengaturan, klik Save.
Lihat detail tentang peristiwa peringatan
Di panel navigasi sebelah kiri Konsol ARMS, pilih .
Di halaman Alert Event History, klik nama peristiwa peringatan untuk melihat detail peristiwa. Untuk informasi lebih lanjut, lihat Lihat peristiwa peringatan historis.
Kelola integrasi
Di panel navigasi sebelah kiri, pilih . Di tab Alert Integration, Anda dapat melakukan operasi berikut pada integrasi yang telah dibuat:
Lihat detail integrasi: Temukan integrasi lalu klik baris tersebut. Di halaman Integration Details, lihat detail integrasi.
- Perbarui kunci: Temukan integrasi Grafana lalu pilih di kolom Actions. Dalam pesan yang muncul, klik OK.Penting Setelah Anda memperbarui kunci, modifikasi alamat integrasi dalam file skrip. Untuk informasi lebih lanjut, lihat Langkah 2: Konfigurasikan template peringatan 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. Dalam pesan yang muncul, klik OK.
Tambahkan alur pemrosesan peristiwa ke integrasi: Temukan integrasi dan klik Add Event Processing Flow di kolom Actions. Untuk informasi lebih lanjut, lihat Bekerja dengan alur pemrosesan peristiwa.
Buat kebijakan notifikasi: Temukan integrasi untuk mana Anda ingin membuat kebijakan notifikasi, dan klik More di kolom Actions. Dalam daftar yang muncul, klik Create Notification Policy. Untuk informasi lebih lanjut, lihat Buat dan kelola kebijakan notifikasi.
Apa yang harus dilakukan selanjutnya
Setelah Anda membuat kebijakan notifikasi, sistem menghasilkan peringatan dan mengirimkan notifikasi peringatan untuk peristiwa peringatan yang dilaporkan berdasarkan kebijakan notifikasi yang Anda buat. Untuk informasi lebih lanjut, lihat Buat dan kelola kebijakan notifikasi. Di halaman Alert Sending History, Anda dapat melihat peringatan yang dihasilkan berdasarkan kebijakan notifikasi yang dikonfigurasi. Untuk informasi lebih lanjut, lihat Lihat peringatan historis.