全部产品
Search
文档中心

Application Real-Time Monitoring Service:Integrasi Nagios dengan ARMS

更新时间:Jul 06, 2025

Topik ini menjelaskan cara mengintegrasikan Nagios dengan Manajemen Peringatan.

Langkah 1: Buat integrasi Nagios

  1. Masuk ke ARMS Console. Di panel navigasi sebelah kiri, pilih Alert Management > Integrations.

  2. Di tab Alert Integration, klik Nagios.
  3. 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.

  4. Di tab Alert Integration, temukan integrasi Nagios yang telah dibuat dan salin URL di kolom Alamat Integrasi.
    Integrate Nagios with ARMS

Langkah 2: Konfigurasi template peringatan Nagios

  1. Buat skrip notifikasi peringatan.
    1. Masuk ke server tempat Nagios berada dan masukkan jalur berikut:
      cd /usr/local/nagios/libexec/
    2. Buat file skrip bernama nagios-alert.py. Tambahkan konten berikut ke dalam file:
      Catatan integration_url dalam 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)
    3. Jalankan perintah berikut untuk menginstal pustaka Requests:
      pip install requests
  2. Konfigurasikan file Commands.
    1. Jalankan perintah berikut untuk memodifikasi file commands.cf:
      vim /usr/local/nagios/etc/objects/commands.cf
    2. 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$"
          }
    3. Masukkan :wq untuk menyimpan perubahan ke file commands.cf.
  3. Tentukan informasi kontak.
    1. Jalankan perintah berikut untuk memodifikasi file contacts.cfg:
      vim /usr/local/nagios/etc/objects/contacts.cfg
    2. Tambahkan konten berikut ke file contacts.cfg:
      service_notification_commands   notify-service-by-alert
      host_notification_commands      notify-host-by-alert
      Modify the contacts.cfg file
    3. Masukkan :wq untuk menyimpan perubahan ke file contacts.cfg.
  4. 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"
}
  1. Di tab Alert Integration, temukan integrasi yang ingin Anda kelola dan klik Edit di kolom Actions.

  2. Di bagian Event Mapping, klik Send Test Data.

  3. Di kotak dialog Send Test Data, masukkan konten peringatan dari sumber peringatan pihak ketiga dalam format JSON dan klik Send.

    Catatan
    • Jika 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.

  4. Di kotak dialog Send Test Data, klik Disable.

  5. Di bagian kiri dari bagian Event Mapping, klik catatan data yang ingin Anda konfigurasikan pemetaannya untuk melihat detailnya.

  6. Di bagian kanan dari bagian Event Mapping, konfigurasikan pemetaan bidang antara sumber peringatan dan ARMS.
    1. 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.

      Catatan

      Jika ada beberapa node array dalam data peringatan, Anda hanya dapat memilih salah satu dari node array tersebut untuk pemrosesan batch.

    2. 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.

  7. 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.

    Catatan

    Anda hanya dapat mengonfigurasi deduplikasi untuk peristiwa yang tidak dihapus.

    1. 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.

    2. Klik Deduplication Test untuk melihat pratinjau grup peringatan setelah deduplikasi.

      Catatan

      Pengujian deduplikasi hanya berlaku untuk 10 catatan data terbaru yang diunggah di bagian kiri dari bagian Event Mapping.

  8. Setelah Anda mengonfigurasi pengaturan, klik Save.

Lihat detail tentang peristiwa peringatan

  1. Di panel navigasi sebelah kiri Konsol ARMS, pilih Alert Management > Alert Event History.

  2. 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 Alert Management > Integrations. 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 More > Update Key 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.