Bu konu, Nagios'un Uyarı Yönetimi ile nasıl entegre edileceğini açıklar.
1. Adım: Nagios entegrasyonu oluşturma
ARMS konsolu oturum açın. Sol gezinme bölmesinde seçeneklerini seçin.
Alert Integration sekmesinde Nagios öğesine tıklayın.
-
New Nagios Integration sihirbazında entegrasyon için bir ad ve açıklama girin, uyarı olayları için otomatik kurtarma süresini ayarlayın ve ardından Save seçeneğine tıklayın.
NotZaman aşımı sonrası otomatik kurtarma süresi: Belirtilen süre içinde bir uyarı olayı tekrar tetiklenmezse uyarı olayı otomatik olarak temizlenir.
Alert Integration sekmesinde Nagios entegrasyonunuzu aratın ve entegrasyon adresini kopyalayın.
2. Adım: Nagios uyarı şablonunu yapılandırma
-
Bir uyarı bildirim betiği oluşturun.
-
Nagios'un bulunduğu sunucuda oturum açın ve aşağıdaki yola gidin:
cd /usr/local/nagios/libexec/ -
nagios-alert.pyadlı bir betik dosyası oluşturun. Aşağıdaki içeriği dosyaya ekleyin:NotBetikteki
integration_urlifadesini 1. Adım bölümündeki entegrasyon adresiyle değiştirin.#!/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" # Replace integration_url with the integration address from Step 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) -
Requests kitaplığını yüklemek için aşağıdaki komutu çalıştırın:
pip install requests
-
-
Commandsdosyasını yapılandırın.-
commands.cfdosyasını değiştirmek için aşağıdaki komutu çalıştırın:vim /usr/local/nagios/etc/objects/commands.cf -
Aşağıdaki içeriği
commands.cfdosyasına ekleyin: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$" } Değişiklikleri
commands.cfdosyasına kaydetmek için:wqkomutunu girin.
-
-
İletişim bilgilerini belirtin.
-
contacts.cfgdosyasını değiştirmek için aşağıdaki komutu çalıştırın:vim /usr/local/nagios/etc/objects/contacts.cfg -
Aşağıdaki içeriği
contacts.cfgdosyasına ekleyin: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 } ################################################################ Değişiklikleri
contacts.cfgdosyasına kaydetmek için:wqkomutunu girin.
-
-
Nagios'u yeniden başlatmak için aşağıdaki komutu çalıştırın:
systemctl restart nagios
(İsteğe Bağlı) 3. Adım: Entegrasyonu değiştirme
Uyarı Yönetimi, Nagios uyarı kaynağı ve ARMS uyarıları arasında varsayılan alan eşlemeleri sağlar. Edit Integration sayfasında alan eşlemelerini ekleyebilir veya değiştirebilirsiniz.
Örnek uyarı kaynağı:
{
"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"
}
Alert Integration sekmesinde yönetmek istediğiniz entegrasyonu bulun ve Actions sütununda Edit seçeneğine tıklayın.
Event Mapping bölümünde Send Test Data seçeneğine tıklayın.
-
Send Test Data iletişim kutusunda üçüncü taraf bir uyarı kaynağının uyarı içeriğini JSON biçiminde girin ve Send seçeneğine tıklayın.
NotUploaded. No events are generated. Configure mappings based on the original data. mesajı görünürse uyarı kaynağının alanları ARMS uyarı olaylarının alanlarıyla eşlenmemiştir. Gönderilen veriler sol taraftaki kutuda görüntülenir. Bu sayede eşlemeleri yapılandırırken kaynak alanlarını seçebilirsiniz.
Uploaded. mesajı görünürse uyarı içeriği Alert Event History sayfasına bildirilir. Daha fazla bilgi için bkz. Uyarı olayı geçmişini görüntüleme.
Send Test Data iletişim kutusunda Disable seçeneğine tıklayın.
Event Mapping bölümünün sol kısmında eşleme yapılandırmak istediğiniz veri kayıtlarına tıklayarak ayrıntıları görüntüleyin.
-
Event Mapping bölümünün sağ bölmesinde uyarı kaynağı alanları ile ARMS uyarı alanları arasındaki eşlemeyi yapılandırın.
-
İsteğe bağlı:Select Root Node bölümünde toplu işlemenin etkinleştirilip etkinleştirilmeyeceğini belirtin.
Uyarı verilerinde bir dizi düğümü varsa dizi düğümünü kök düğüm olarak belirtebilirsiniz. Kök düğüme ait veriler toplu olarak işlenir.
Use Batch Processing seçeneğini belirledikten sonra toplu işlenecek dizi düğümünü kök düğüm olarak seçin.
NotUyarı verilerinde birden çok dizi düğümü varsa toplu işlem için yalnızca bu dizi düğümlerinden birini seçebilirsiniz.
-
Map Source Fields to Target Fields bölümünde uyarı kaynağının alanlarını ARMS uyarı alanlarıyla eşleyin.
Alan eşleme yöntemini değiştirmek için eşleme simgesine tıklayın.
Doğrudan: Uyarı kaynağının belirtilen alanı doğrudan ARMS'in belirtilen uyarı alanıyla eşlenir.
Seri: Birden çok uyarı kaynağı alanını ayırıcılar kullanarak tek bir alanda birleştirebilir ve bu alanı ARMS'in belirtilen uyarı alanıyla eşleyebilirsiniz. Ayırıcı olarak yalnızca özel karakterler kullanılabilir.
Koşullu: Alan değerleri belirtilen koşulları karşıladığında belirtilen uyarı kaynağı alanları ARMS uyarı alanlarıyla eşlenir.
Eşleme tablosu: Uyarı kaynağı önem derecesi ARMS uyarı önem derecesiyle eşlenir. Eşleme tablosu yalnızca önem derecesi alanını içerir.
Aşağıdaki tabloda ARMS uyarı alanları açıklanmaktadır.
Uyarı alanı
Açıklamaalertname
Özel uyarının adı.severity
Uyarının önem derecesi. Bu alan için eşlemeler yapılandırmanız gerekir. Eşleme yöntemi Doğrudan olarak ayarlanmalıdır.message
Uyarının açıklaması. Açıklama uyarı mesajının içeriği olarak kullanılır. Açıklama 15.000 karakteri aşamaz.value
Bir ölçümün örnek değeri.imageUrl
Grafana ölçümlerini içeren çizgi grafiğin URL'si. URL çizgi grafiğini eşlemek için kullanılır.check
Uyarının kontrol öğesi. Örnekler: CPU, JVM, Application Crash ve Deployment.source
Uyarının kaynağı.class
Uyarı olayını tetikleyen nesnenin türü, örneğin ana bilgisayar.service
Uyarının kaynak hizmeti. Örnek: Login Service.startat
Olayın başlangıç zamanını temsil eden zaman damgası.endat
Olayın bitiş zamanını temsil eden zaman damgası.generatorUrl
Olay ayrıntılarının URL'si.
-
-
Uyarı olayları için alan yinelenmesini yapılandırın.
Sistem yinelenen verileri azaltmak için ilgili alanları yinelenme temeli olarak kullanır. ARMS Uyarı Yönetimi, Event Mapping bölümünde görüntülenen geçmiş olay verilerinin yinelenme gruplama sonuçlarını önizlemenize olanak tanır. Yinelenmesi gereken alanları değiştirebilirsiniz.
NotYinelenmeyi yalnızca temizlenmemiş olaylar için yapılandırabilirsiniz.
-
Integration Details sayfasındaki Event Deduplication bölümünde yinelenme için kullanılan alanları seçin.
Birden çok olay belirtilen bir alan için aynı değere sahipse olaylar tek bir uyarı bildiriminde birleştirilir.
-
Deduplication Test seçeneğine tıklayın.
NotYinelenme testi yalnızca Event Mapping bölümünün sol kısmına yüklenen son 10 veri kaydı üzerinde etkili olur.
-
Ayarları yapılandırdıktan sonra Save seçeneğine tıklayın.
Bir uyarı olayının ayrıntılarını görüntüleme
ARMS konsolunun sol gezinme bölmesinde seçeneklerini seçin.
Alert Event History sayfasında olay ayrıntılarını görüntülemek için uyarı olayının adına tıklayın. Daha fazla bilgi için bkz. Uyarı olayı geçmişini görüntüleme.
Entegrasyonu yönetme
Sol gezinme bölmesinde seçeneklerini seçin. Alert Integration sekmesinde oluşturduğunuz entegrasyonlarda aşağıdaki işlemleri gerçekleştirebilirsiniz:
Bir entegrasyonun ayrıntılarını görüntüleme: Entegrasyonu bulun ve ardından satıra tıklayın. Integration Details sayfasında entegrasyon ayrıntılarını görüntüleyin.
-
Bir anahtarı güncelleme: Bir entegrasyon için anahtarı değiştirmek üzere hedef entegrasyonun Actions sütununda seçeneklerini seçin ve Confirm seçeneğine tıklayın.
ÖnemliAnahtarı güncelledikten sonra betik dosyasındaki entegrasyon adresini değiştirmeniz gerekir. Daha fazla bilgi için bkz. 2. Adım: Nagios uyarılarını yapılandırma.
Bir entegrasyonu değiştirme: Entegrasyonu bulun ve ardından Actions sütununda Edit seçeneğine tıklayın. Integration Details sayfasında entegrasyon bilgilerini değiştirin ve ardından Save seçeneğine tıklayın.
Bir entegrasyonu etkinleştirme veya devre dışı bırakma: Entegrasyonu bulun ve ardından Actions sütununda Disable veya Enable seçeneğine tıklayın.
Bir entegrasyonu silme: Entegrasyonu bulun ve ardından Actions sütununda Delete seçeneğine tıklayın. Görüntülenen mesajda OK seçeneğine tıklayın.
Bir entegrasyona olay işleme akışı ekleme: Entegrasyonu bulun ve Actions sütununda Add Event Processing Flow seçeneğine tıklayın. Daha fazla bilgi için bkz. Olay işleme akışı.
Bir bildirim ilkesi oluşturma: Bildirim ilkesi oluşturmak istediğiniz entegrasyonu bulun ve Actions sütununda More seçeneğine tıklayın. Görüntülenen listede Create Notification Policy seçeneğine tıklayın. Daha fazla bilgi için bkz. Bildirim ilkeleri.
Sonraki adımlar
Bir bildirim ilkesi oluşturduktan sonra sistem bildirilen uyarı olayları için uyarılar oluşturur ve oluşturduğunuz bildirim ilkesine göre uyarı bildirimleri gönderir. Daha fazla bilgi için bkz. Bildirim ilkeleri. Alert Sending History sayfasında yapılandırılan bildirim ilkesine göre oluşturulan uyarıları görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Uyarı gönderme geçmişini görüntüleme.