Користувальницькькі налаштування

Налаштування сайту


watchdog

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
Наступна ревізія По сторонах наступні версії
watchdog [2023/01/22 09:45]
nightfly
watchdog [2023/01/22 10:13]
nightfly
Рядок 1: Рядок 1:
 ====== Собака-спостерігака aka Watchdog ====== ====== Собака-спостерігака aka Watchdog ======
  
-{{:nablyudaka.jpg?300 |}}+{{:nablyudaka.png?300 |}}
  
 Собака-спостерігака призначена для <del>собачення та спостерігання</del> оперативного моніторингу навколишньої реальності. Вона надає гнучкий функціонал для опису позаштатних ситуацій практично будь-якої дивності, а також для сповіщення у разі їх виникнення. У тому числі, за допомогою відсилання SMS через послуги, що підтримуються собакою-посилакою, електронною поштою, месенджера Telegram а також може викликати запуск будь-якого зовнішнього скрипта при настанні якоїсь події. Для включення собаки-спостерігакт потрібна зміна опції WATCHDOG_ENABLED в [[alteriniconf|alter.ini]]. Також для надсилання повідомлень, очевидно, на допомогу собаці-спостерігаці знадобиться [[senddog|Собака-посилака]]. Собака-спостерігака призначена для <del>собачення та спостерігання</del> оперативного моніторингу навколишньої реальності. Вона надає гнучкий функціонал для опису позаштатних ситуацій практично будь-якої дивності, а також для сповіщення у разі їх виникнення. У тому числі, за допомогою відсилання SMS через послуги, що підтримуються собакою-посилакою, електронною поштою, месенджера Telegram а також може викликати запуск будь-якого зовнішнього скрипта при настанні якоїсь події. Для включення собаки-спостерігакт потрібна зміна опції WATCHDOG_ENABLED в [[alteriniconf|alter.ini]]. Також для надсилання повідомлень, очевидно, на допомогу собаці-спостерігаці знадобиться [[senddog|Собака-посилака]].
Рядок 43: Рядок 43:
  
  
-===== Действия выполняемые в результате прохождения условий =====+===== Дії що будуть виконані у разі проходження умов =====
  
-^ Действия         Результат                  ^  +^ Дії         Результат                  ^  
-| log             | запись в системный лог      | +| log             | запис події в системний лог      | 
-| sms             отсылка СМС уведомлениядополнительные номера можно указывать в формате {номер,номер}. | +| sms             надсилання SMS сповіщення на номери стільниковихвказаних в налаштуваннях Собаки-спостергаки. Додаткові номери стільникових можна вказати у форматі {номер,номер}. | 
-| noprimary       | в случае указанных действий sms и указанных {доп. номерах} - основные номера игнорируются +| noprimary       у випадку наявності цієї дії, та дії sms та вказаних {додаткових номерах} - основні номери з налаштувань Собаки-спостерігаки будуть проігноровані. 
-| email           отсылка уведомления почтой  +| email           надсилання сповіщення електропоштою, на адреси вказані в налаштуваннях. 
-| telegram        | отсылка уведомления Telegram, дополнительные чаты можно указывать в формате (чат1,чат2). +| telegram        | надсилання повідомлення Telegram, додаткові chatid можна вказати в форматі (чат1,чат2). 
-| no_tg_primary   в случае указанных действий telegram и указанных (доп. чатах) - основные чаты Telegram игнорируются | +| no_tg_primary   | у випадку наявності цієї дії, та дії telegram та вказаних (додаткових чатах) - основні чати Telegram ігноруються
-| andresult       в случае указанных действий sms или email к тексту сообщения будет добавлен текущий результат задачи +| andresult       | у разі вказаних дій sms, telegram чи email до тексту повідомлення буде додано поточний результат завдання 
-| oldresult       в случае указанных действий sms или email к тексту сообщения будет добавлен предыдущий результат задачи +| oldresult       | у разі вказаних дій sms, telegram чи email до тексту повідомлення буде додано попередній результат завдання 
-| script          | запуск скрипта или любого приложения, по пути указанному в виде [/полный/путь/к_скрипту]   |+| script          | запуск скрипта чи будь-якого додатку, за шляхом, вказаному у вигляді [/повний/шлях/до_скрипта]   |
  
 +===== Логіка роботи =====
  
-===== Логика работы =====+Кожне завдання для Собаки-спостерігаки слід сприймати як "щось трапилося" або "ой яка подія" які трапляються у разі повернення "типом перевірки" за "параметром" результату передбаченого "оператором" з опціональною "умовою". Як приклад, можна навести ось таке просте завдання:
  
-Каждую задачу для Собаки-наблюдаки следует воспринимать как "случилось нечто" или "ой какое событие" которые случаются в случае возвращения "типом проверки" по "параметру" результата предусмотренного "оператором" с опциональным "условием". Как пример, можно привести вот такую простенькую задачу:+^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
 +| X        | Гугл не пінгається | icmpping     | google.com  | =false           | log,sms,email |
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр ^ Оператор ^ Условие ^ Действия      ^  +При настанні події, коли ping на адресу google.com поверне значення "хибно" собакапостерігака стурбовано надішле вам СМС-ку, почту та запише в лог сповіщення, про те, що "Гугл не пінгається"Власне і продовжить це робитидопоки перевірка icmpping не перестане повертати значення "хибно".
-| X        | Гугл не пингается | icmpping     | 8.8.8.8  | =false           | log,sms,email |+
  
-При обнаружении того, что ping на адрес 8.8.8.8 вернул значение "ложно" собака-наблюдака заботливо отошлет вам СМС-ку, почту и запишет в лог уведомление о том, что "Гугл не пингается" 
  
-А что делатьесли мы не хотим, чтобы собака постоянно нам спамила при отсутствующем пинге куда-то? А очень просто. +А що робитиякщо ми не хочемощоб собака постійно нам спамила за відсутнього пінгу кудись? А дуже просто.
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр ^ Оператор ^ Условие ^ Действия      ^  +
-| X        | Чего-то изменилось | icmpping     | 192.168.0.22  | changed  |         | log,sms,email,andresult |+
  
 +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^  
 +| X        | Щось змінилось | icmpping     | 192.168.0.22  | changed  |         | log,sms,email,andresult |
  
-В принципе никто не запрещает нам делать и задачи такого плана: 
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия                 ^  +В принципі, ніхто не забороняє нам робити і завдання такого плану:
-| X        | В серверной пожар | script     | /bin/gettemp  | >        |  22     | log,sms,email, andresult |+
  
 +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
 +| X        | В серверній пожежа | script     | /bin/gettemp  | >        |  22     | log,sms,email, andresult |
  
-Вызывая внешний скрипт, снимающий температуру с термодатчиков и при превышении 22 градусов орать всеми известными способами также дописывая в сообщении о температуре вызвавшей панику. 
  
-Если творчески подойти к парсингу вывода внешнего ПО - можно мониторить много интересных вещей без дописывания внешних скриптов+Викликаючи зовнішній скрипт, що знімає температуру з термодатчиків і при перевищенні 22 градусів кричати всіма відомими способами також дописуючи в повідомленні про температуру що викликає паніку.
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр  ^ Оператор           ^ Условие  ^  Действия      ^  +
-| X        | DNS сломался    | script      | nslookup ya.ru %%|%% tail -n 2  | like  |  find     | log,sms       |+
  
-Также мы можем очень просто и элегантно контролировать запущенность важных сервисов типа stargazer создав задачу такого плана: +Якщо творчо підійти до парсингу виведення зовнішнього ПЗ - можна моніторити багато цікавих речей без дописування зовнішніх скриптів:
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр  ^ Оператор           ^ Условие  ^  Действия      ^  +
-| X        | Stargazer упал    | script      | /bin/ps aux %%|%% /usr/bin/grep stg  | notlike  |  stargazer     | log,sms       |+
  
-Хотя ту же самую по сути задачу мы можем оформить как +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр  ^ Оператор           ^ Условие   Действия      +| X        | DNS зламався    | script      | nslookup google.com %%|%% tail -n 2  | like  |  find     | log,sms       | 
 + 
 +Також ми можемо дуже просто та елегантно контролювати запущеність важливих сервісів типу stargazer, створивши завдання такого плану
 + 
 +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
 +| X        | Stargazer впав    | script      | /bin/ps aux %%|%% /usr/bin/grep stg  | notlike  |  stargazer     | log,sms       | 
 + 
 +Хоча те саме завдання ми можемо оформити як 
 + 
 +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | Stargazer упал    | fileexists   | /var/run/stargazer.pid  | =false  |       | log,sms       | | X        | Stargazer упал    | fileexists   | /var/run/stargazer.pid  | =false  |       | log,sms       |
  
Рядок 94: Рядок 98:
 Чтобы не сосредотачиваться на тривиальных вещах, мы можем предусмотреть ситуацию, когда у нас есть очень важный клиент с логином vipclient на прекращение трафика от которого нам следует таки отреагировать. Описать такое мы можем в виде: Чтобы не сосредотачиваться на тривиальных вещах, мы можем предусмотреть ситуацию, когда у нас есть очень важный клиент с логином vipclient на прекращение трафика от которого нам следует таки отреагировать. Описать такое мы можем в виде:
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | Важный клиент подох | getusertraff  | vipclient  | notchanged            | log,sms,email | | X        | Важный клиент подох | getusertraff  | vipclient  | notchanged            | log,sms,email |
  
 Окей, а если мы хотим также эту же СМС-ку послать скажем администратору этого же важного клиента, чтобы он точно знал, что он подох? Окей, а если мы хотим также эту же СМС-ку послать скажем администратору этого же важного клиента, чтобы он точно знал, что он подох?
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | Важный клиент подох | getusertraff  | vipclient  | notchanged            | log,sms,email {+380509999999} | | X        | Важный клиент подох | getusertraff  | vipclient  | notchanged            | log,sms,email {+380509999999} |
  
Рядок 126: Рядок 130:
 А еще мы, можем реагировать не только на изменения текущих значений относительно каких-то порогов, а также и относительно предыдущих значений полученных собакой. Резкость этих изменений мы можем опционально указывать в условии. А можем и не указывать. Тогда мы будем реагировать вообще на все изменения этих циферок в сторону увеличения или уменьшения. Например мы можем реагировать на увеличение роста ошибок на каком-то интерфейсе А еще мы, можем реагировать не только на изменения текущих значений относительно каких-то порогов, а также и относительно предыдущих значений полученных собакой. Резкость этих изменений мы можем опционально указывать в условии. А можем и не указывать. Тогда мы будем реагировать вообще на все изменения этих циферок в сторону увеличения или уменьшения. Например мы можем реагировать на увеличение роста ошибок на каком-то интерфейсе
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | Ошибки полезли | onepunch  | uplinkerrors  | rised      |      | log,sms,telegram | | X        | Ошибки полезли | onepunch  | uplinkerrors  | rised      |      | log,sms,telegram |
  
 Ну либо какой-то уровень роста ошибок мы считаем допустимым, и например, устанавливаем порог в 100 ошибок за 10 минут Ну либо какой-то уровень роста ошибок мы считаем допустимым, и например, устанавливаем порог в 100 ошибок за 10 минут
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | Ошибки полезли резво | onepunch  | uplinkerrors  | rised      |  100    | log,sms,telegram | | X        | Ошибки полезли резво | onepunch  | uplinkerrors  | rised      |  100    | log,sms,telegram |
  
 Также мы можем таким способом отлавливать либо резкие всплески либо падения утилизации, например все того же канала. Типа, мы считаем, что если утилизация канала за последние 10 минут выросла на восемь гиг.. типа что-то пошло не так Также мы можем таким способом отлавливать либо резкие всплески либо падения утилизации, например все того же канала. Типа, мы считаем, что если утилизация канала за последние 10 минут выросла на восемь гиг.. типа что-то пошло не так
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | Канал разогнался как-то | onepunch  | uplinktraffic  | rised      |  8000    | log,sms,telegram | | X        | Канал разогнался как-то | onepunch  | uplinktraffic  | rised      |  8000    | log,sms,telegram |
  
 Ну или наоборот резкие падения относительно предыдущих значений (типа утилизация аплинка провалилась на 20 гиг от последнего запуска собаки) Ну или наоборот резкие падения относительно предыдущих значений (типа утилизация аплинка провалилась на 20 гиг от последнего запуска собаки)
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | Трафик рухнул куда-то | onepunch  | uplinktraffic  | decreased      20000    | log,sms,telegram | | X        | Трафик рухнул куда-то | onepunch  | uplinktraffic  | decreased      20000    | log,sms,telegram |
  
 А еще мы можем очень просто проверять рабочесть сервисов которые должны слушать соединения на какие-то TCP или UDP порты, типа так А еще мы можем очень просто проверять рабочесть сервисов которые должны слушать соединения на какие-то TCP или UDP порты, типа так
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | http на хосте | tcpping  | 192.168.42.18:80  | changed          | log,sms,telegram andresult | | X        | http на хосте | tcpping  | 192.168.42.18:80  | changed          | log,sms,telegram andresult |
  
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | https на хосте | tcpping  | 192.168.42.18:443  | changed          | log,sms,telegram andresult | | X        | https на хосте | tcpping  | 192.168.42.18:443  | changed          | log,sms,telegram andresult |
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | syslogd на хосте | udpping  | 192.168.42.18:514  | changed          | log,sms,telegram andresult | | X        | syslogd на хосте | udpping  | 192.168.42.18:514  | changed          | log,sms,telegram andresult |
  
  
 А еще мы можем получать и проверять любые данные, из любого OID при помощи snmpwalk: А еще мы можем получать и проверять любые данные, из любого OID при помощи snmpwalk:
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | Версия OS | snmpwalk  | 192.168.42.18:changeme:.1.3.6.1.2.1.1.1.0  | changed          | log,sms,telegram andresult | | X        | Версия OS | snmpwalk  | 192.168.42.18:changeme:.1.3.6.1.2.1.1.1.0  | changed          | log,sms,telegram andresult |
  
 Или банально нотифицировать себя о том, что в корневом разделе заканчивается место Или банально нотифицировать себя о том, что в корневом разделе заканчивается место
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      +^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії        
 | X        | Место в корне заканчивается | freediskspace  | /  |  <      100     | log,sms,telegram andresult | | X        | Место в корне заканчивается | freediskspace  | /  |  <      100     | log,sms,telegram andresult |
  
watchdog.txt · Востаннє змінено: 2024/04/23 18:10 повз nightfly