Розуміння часових періодів і повідомлень Nagios
Сьогодні ми розглянемо труднощі керування налаштуваннями сповіщень у Nagios 4.5.1, інструменті моніторингу з відкритим кодом. Налаштування чутливих до часу сповіщень часто може бути складним завданням, особливо в середовищах із кількома серверами. Ця стаття спрямована на вирішення конкретних проблем, які виникають під час налаштування ефективних вікон сповіщень, щоб уникнути непотрібних сповіщень у неробочий час.
Ми зосередимося на трьох конкретних серверах, які не слід контролювати між 19:30 і 9:00 ранку. Незважаючи на правильні спроби конфігурації, ці сервери продовжують ініціювати сповіщення поза межами визначених тихих годин. У наступних розділах розглядатимуться можливі причини та рішення, щоб забезпечити дотримання Nagios визначених періодів часу.
Команда | опис |
---|---|
define timeperiod | Визначає новий період часу в Nagios для цілей моніторингу або сповіщень із зазначенням годин роботи. |
notification_period | Визначає період часу, протягом якого мають надсилатися сповіщення для певного хосту чи служби. |
sed -i | Використовує редактор потоків (sed) для редагування файлів на місці. Тут він використовується для динамічного ввімкнення або вимкнення сповіщень шляхом редагування файлів конфігурації. |
date +%H:%M | Команда для отримання поточного часу в годинах і хвилинах, яка використовується для визначення того, чи входить поточний час у вказаний діапазон. |
[[ "$TIME_NOW" > "$START_TIME" || "$TIME_NOW" < "$END_TIME" ]] | Умовний оператор сценарію bash, який перевіряє, чи поточний час є після часу початку чи перед часом завершення, щоб контролювати налаштування сповіщень. |
echo | Виводить повідомлення на термінал або в журнал сценаріїв, яке використовується тут для підтвердження ввімкнення або вимкнення сповіщень. |
Детальне пояснення сценаріїв конфігурації Nagios
Перший сценарій має вирішальне значення для визначення нового timeperiod у Nagios, який визначає години, протягом яких сповіщення про моніторинг не повинні надсилатися, адаптовані до потреб певних серверів, які потребують тихих годин між 19:30 і 9:00 ранку. Встановивши це timeperiod у конфігурації Nagios ми гарантуємо, що жодні сповіщення не порушують цей період. Крім того, сценарій змінює notification_period щоб сервер «Printemps-Caen» використовував цей нещодавно визначений період часу, ефективно застосовуючи ці налаштування, щоб сповіщення контролювалися відповідно до спеціального розкладу.
Другий сценарій — це сценарій оболонки Bash, який динамічно налаштовує параметри сповіщень електронною поштою на основі поточного часу. Він використовує date команда для отримання поточного часу та порівняння його з попередньо визначеним часом початку та закінчення за допомогою умовних операторів. Якщо поточний час потрапляє в обмежені години, сценарій використовує sed команда, щоб змінити файл конфігурації Nagios, зокрема перемикаючи service_notification_options щоб вимкнути сповіщення. Цей підхід дозволяє здійснювати автоматичний контроль у режимі реального часу над поведінкою сповіщень на основі часу, надаючи гнучкий і оперативний інструмент адміністрування системи.
Налаштування часових періодів сповіщень у Nagios
Сценарій налаштування Nagios
# Define a new time period for the specified hosts
define timeperiod {
name night-hours
alias Night Hours 7:30 PM - 9 AM
sunday 21:30-24:00,00:00-09:00
monday 21:30-24:00,00:00-09:00
tuesday 21:30-24:00,00:00-09:00
wednesday 21:30-24:00,00:00-09:00
thursday 21:30-24:00,00:00-09:00
friday 21:30-24:00,00:00-09:00
saturday 21:30-24:00,00:00-09:00
}
# Modify the host to use the new time period for notifications
define host {
use generic-router
host_name Printemps-Caen
alias Printemps Caen
address 192.168.67.1
hostgroups pt-caen-routers
notification_period night-hours
}
Створення сценаріїв фільтрів сповіщень електронною поштою в Nagios
Налаштування сповіщень електронною поштою за допомогою Bash
#!/bin/bash
# Script to disable email notifications during specific hours
TIME_NOW=$(date +%H:%M)
START_TIME="21:30"
END_TIME="09:00"
if [[ "$TIME_NOW" > "$START_TIME" || "$TIME_NOW" < "$END_TIME" ]]; then
# Commands to disable email notifications
sed -i 's/service_notification_options w,u,c,r,f,s/service_notification_options n/' /etc/nagios/contacts.cfg
echo "Notifications disabled during off-hours."
else
# Commands to enable email notifications
sed -i 's/service_notification_options n/service_notification_options w,u,c,r,f,s/' /etc/nagios/contacts.cfg
echo "Notifications enabled."
fi
Розширені методи конфігурації для Nagios
Розширюючи конфігурацію Nagios для контролю періодів сповіщень, важливо враховувати роль керування залежностями між хостами та службами. Це дозволяє адміністраторам запобігати сповіщенням від залежних хостів, якщо основний хост не працює, таким чином зменшуючи шум сповіщень і зосереджуючись на аналізі першопричини. Правильне використання залежностей може значно підвищити ефективність Nagios у великих середовищах, гарантуючи, що сповіщення є значущими та дієвими.
Це передбачає налаштування host_dependency і service_dependency визначення у файлах конфігурації Nagios. Визначаючи логічні зв’язки між різними мережевими компонентами, Nagios може інтелектуально пригнічувати або передавати сповіщення на основі статусу пов’язаних служб або хостів, що є критичним для підтримки чіткості процедур реагування на інциденти.
Найпоширеніші запитання про часові періоди та сповіщення Nagios
- Що таке a timeperiod в Нагіосі?
- А timeperiod визначає конкретні проміжки часу, протягом яких можна або не можна надсилати сповіщення, допомагаючи керувати втомою сповіщень.
- Як ви створюєте кастом timeperiod?
- Використовувати define timeperiod у вашому файлі Timeperiods.cfg, вказуючи час початку та закінчення для кожного дня тижня.
- Чому я все ще отримую сповіщення поза межами визначеного timeperiods?
- Забезпечити notification_period для кожного хоста або служби правильно пов'язано з призначеним timeperiod. Неправильна конфігурація або успадкування від шаблонів може замінити певні налаштування.
- Чи можна виключити певні типи сповіщень під час певних timeperiods?
- Так, ви можете налаштувати різні параметри сповіщень (наприклад, попередження, критичні, відновлення) як активні або пригнічені протягом певного timeperiods.
- Який вплив неправильно timeperiod налаштування керування сповіщеннями?
- Невірно timeperiod налаштування можуть призвести до небажаних сповіщень у неробочий час, збільшення шуму та, можливо, призвести до пропуску критичних сповіщень у години роботи.
Останні думки щодо керування сповіщеннями
Ефективне керування періодами сповіщень у Nagios має вирішальне значення для системних адміністраторів, які прагнуть підтримувати спокійний період без непотрібних перерв. Забезпечення правильного визначення періодів часу та відповідного зв’язку з визначеннями хоста та служби може значно зменшити кількість помилкових сповіщень. Таке налаштування не тільки допомагає мінімізувати шум, але й зосереджує увагу на фактичних проблемах протягом робочого часу, тим самим підвищуючи загальну ефективність і швидкість реагування ІТ-інфраструктури.