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

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


watchdog

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
watchdog [2022/09/28 18:19]
nightfly
watchdog [2024/04/23 18:10] (поточний)
nightfly [Собака-спостерігака aka Watchdog]
Рядок 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|Собака-посилака]].
  
-===== Возможные проверки =====+===== Можливі перевірки =====
  
-^ Типы задач   ^ Действие                                                                        Возвращает   ^   +^ Типи задач   ^ Дія                                                                        Повертає   ^   
-| icmpping     | выполняется ICMP ping хоста указанного в параметре                                   bool     | +| icmpping     | виконується ICMP ping хоста вказаного в параметрі                                   bool     | 
-| tcpping      | выполняется попытка TCP соединения к хосту указанному в параметре в виде host:port  |      bool     | +| tcpping      | виконується спроба TCP з'єднання з хостом вказаним в параметрі у вигляді host:port  |      bool     | 
-| udpping      | выполняется попытка UDP соединения к хосту указанному в параметре в виде host:port  |      bool     | +| udpping      | виконується спроба UDP з'єднання з хостом вказаним в параметрі у вигляді host:port  |      bool     | 
-| hopeping     | Пинг надежды. Трижды выполняется ICMP ping хоста указанного в параметре, в надежде на точто хоть один вернется         |      bool     | +| hopeping     | Пінг надії. Тричі виконується ICMP ping хоста вказаного в параметрі, в надіїщо хоч один з них повернеться  |      bool     | 
-| script       | запуск shell-скрипта по пути указанному в параметре                                   |      string      +| script       | запуск shell-скрипту за шляхом, вказаному в параметрі                          |      string      
-| httpget      | получение данных из URL указанного в параметре                                       string      +| httpget      | отримання сирих даних з URL вказаного в параметрі                                       string      
-| getusertraff | получение количества трафика пользователя с логином указанном в параметре       |      int      | +| getusertraff | отримання кількості трафіку в байтах логіну користувача вказаного в параметрі       |      int      | 
-| fileexists   | проверка на существование файла по пути указанному в параметре                  |      bool     | +| fileexists   | перевірка на існування файлу по шляху вказаному в параметрі                 |      bool     | 
-| opentickets  | количество открытых тикетов хелпдескаТребует указания рандомного параметра    |      int     | +| opentickets  | кількість відкритих тікетів хелпдескуПотребує вказання рандомного параметра    |      int     | 
-| onepunch Производит запуск [[onepunch|One-Punch]] скрипта по алиасу указанному в параметре. Результат ожидается в виде переменной  $watchdogCallbackResult  |      string    | +| onepunch Виконує запуск [[onepunch|One-Punch]] скрипта з аліасом вказаним в параметрі. Результат очікується у вигляді змінної  $watchdogCallbackResult  |      string    | 
-| snmpwalk   | Выполняется snmpwalk по OID хоста указанных в параметре, в формате host:community:OID                  |      string     | +| snmpwalk   | Виконується snmpwalk по OID хоста що вказано в параметрі у форматі host:community:OID                  |      string     | 
-| freediskspace | Проверяет количество свободного места на разделе указанном в параметреВозвращает цифру в Гб. |      float     |+| freediskspace | Повертає кількість вільного місця на розділі (точці монтування) вказаній в параметріПовертає цифру в Гб. |      float     |
  
  
-===== Возможные операторы для проверки =====+===== Можливі оператори для перевірок =====
  
-Условия     ^  Значение        Требует словие"? ^ +Оператор     ^  Значення         Потребує мову"? ^ 
-| =true       Истинно          |                    | +| =true       Істинно          |                    | 
-| =false      | Ложно            |                    | +| =false      | Хибно            |                    | 
-| ==          | Равно                     +         | +| ==          | Рівне                     +         | 
-| !=          | Не равно         |          +         | +| !=          | Не рівне         |          +         | 
-| >           | Больше                    +         | +| >           | Більше                    +         | 
-| <           | Меньше           |          +         | +| <           | Менше            |          +         | 
-| > =         | Больше или равно |          +         | +| > =         | Більше або рівне |          +         | 
-| < =         | Меньше или равно |          +         | +| < =         | Менше або рівне  |          +         | 
-| empty       | Пустой результат |                    | +| empty       | Пустий результат |                    | 
-| notempty    | Непустой результат |                    | +| notempty    | Непустий результат |                    | 
-| changed     Изменилось       |                    | +| changed     Змінилось        |                    | 
-| notchanged  | Не изменилось    |                    | +| notchanged  | Не змінилось     |                    | 
-| like        | Содержит         |          +         | +| like        | Містить          |          +         | 
-| notlike     | Не содержит      |          +         | +| notlike     | Не містить       |          +         | 
-| rised       Увеличилось      |          +-        | +| rised       Збільшилось      |          +-        | 
-| decreased   Уменьшилось      |          +-        |+| decreased   Зменшилось       |          +-        |
  
  
-===== Действия выполняемые в результате прохождения условий =====+===== Дії що будуть виконані у разі проходження умов =====
  
-^ Действия         Результат                  ^  +^ Дії         Результат                  ^  
-| 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          | запуск скрипта чи будь-якого додатку, за шляхом, вказаному у вигляді [/повний/шлях/до_скрипта]   |
  
 +===== Логіка роботи =====
  
-===== Логика работы =====+Кожне завдання для Собаки-спостерігаки слід сприймати як "щось трапилося" або "ой яка подія" які трапляються у разі повернення "типом перевірки" за "параметром" результату передбаченого "оператором" з опціональною "умовою". Як приклад, можна навести ось таке просте завдання:
  
-Каждую задачу для Собаки-наблюдаки следует воспринимать как "случилось нечто" или "ой какое событие" которые случаются в случае возвращения "типом проверки" по "параметру" результата предусмотренного "оператором" с опциональным "условием". Как пример, можно привести вот такую простенькую задачу:+^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
 +| Гугл не пінгається | 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 |+
  
 +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^  
 +| Щось змінилось | icmpping     | 192.168.0.22  | changed  |         | log,sms,email,andresult |
  
-В принципе никто не запрещает нам делать и задачи такого плана: 
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия                 ^  +В принципі, ніхто не забороняє нам робити і завдання такого плану:
-| X        | В серверной пожар | script     | /bin/gettemp  | >        |  22     | log,sms,email, andresult |+
  
 +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
 +| В серверній пожежа | 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       |+
  
-Хотя ту же самую по сути задачу мы можем оформить как +Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії         
-^ Активный Имя               ^ Тип проверки ^ Параметр  ^ Оператор           ^ Условие   Действия      ^  +DNS зламався    script      nslookup google.com %%|%% tail -n 2  like   find     | log,sms       |
-X        | Stargazer упал    fileexists   /var/run/stargazer.pid  =false        | log,sms       |+
  
 +Також ми можемо дуже просто та елегантно контролювати запущеність важливих сервісів типу stargazer, створивши завдання такого плану:
  
-Чтобы не сосредотачиваться на тривиальных вещах, мы можем предусмотреть ситуацию, когда у нас есть очень важный клиент с логином vipclient на прекращение трафика от которого нам следует таки отреагировать. Описать такое мы можем в виде:+^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
 +| Stargazer впав    | script      | /bin/ps aux %%|%% /usr/bin/grep stg  | notlike  |  stargazer     | log,sms       |
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  +Хоча те саме завдання ми можемо оформити як
-| X        | Важный клиент подох | getusertraff  | vipclient  | notchanged            | log,sms,email |+
  
-Окей, а если мы хотим также эту же СМС-ку послать скажем администратору этого же важного клиента, чтобы он точно знал, что он подох?+^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
 +| Stargazer впав    | fileexists   | /var/run/stargazer.pid  | =false  |       | log,sms       |
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  
-| X        | Важный клиент подох | getusertraff  | vipclient  | notchanged            | log,sms,email {+380509999999} | 
  
 +Щоб не зосереджуватись на теоретичних речах, ми можемо передбачити ситуацію, коли у нас є дуже важливий клієнт на падіння якого, нам слід таки відреагувати. Описати таке ми можемо у вигляді:
  
-а если мы хотим послать СМС только на дополнительный номер? Да, без проблем: +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
-   +| Важливий клієнт подох | hopeping  | 172.16.78.42  | changed            | log,sms andresult | 
-  log,sms,email {+380509999999} noprimary+ 
 + 
 +Окей, а якщо ми хочемо також цю ж СМС послати скажемо адміністратору цього ж важливого клієнта, щоб він точно знав, що він здох? 
 + 
 +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
 +| Важливий клієнт подох | hopeping  | 172.16.78.42  | changed            | log,sms andresult {+380509999999} | 
 + 
 + 
 +а якщо ми хочемо надіслати СМС лише на додатковий номер? Такжодних проблем:
      
 +  log,sms {+380509999999} noprimary
  
  
  
-а если мы хотим послать алерт только в дополнительный/е чат/ы Telegram? Да, так же без проблем:+а якщо ми хочемо надіслати алерт тільки в додатковий чат Telegram? Так, так само без проблем:
      
   log,telegram,email (ChatID1,ChatID2,ChatID3) no_tg_primary   log,telegram,email (ChatID1,ChatID2,ChatID3) no_tg_primary
Рядок 116: Рядок 120:
  
  
-а можно миксовать СМС и Telegram? Да вообще без проблем:+а можна міксувати СМС та Telegram? Так, просто вказуємо в діях все що нам потрібно разом:
      
   log,telegram,sms,email (ChatID1,ChatID2,ChatID3) no_tg_primary {+380509999999} noprimary   log,telegram,sms,email (ChatID1,ChatID2,ChatID3) no_tg_primary {+380509999999} noprimary
      
 +Хоча знову ж таки ніхто не забороняє нам, скажімо моніторити цього клієнта наприклад зовнішнім скриптом, що запитує по SNMP стан порту або лічильники трафіку на світі, куди його встромлено, або банально його смикати по якомусь TCP порту. Думаю вищенаведених прикладів достатньо для отримання уявлення про гнучкість собаки-спостерігаки та можливості побудови сповіщень при практично, будь-яких позаштатних ситуаціях. Обробка завдань собаки відбувається при виклику **watchdog** з [[remoteapi|RemoteAPI]]. Інтервалом, що рекомендується, є 10 хвилин. В crontab це виглядає наступним чином:
 +
 +<code>
 +*/10 * * * *   /bin/ubapi "watchdog"
 +</code>
 +
 +А ще ми можемо реагувати не лише на зміни поточних значень щодо якихось порогів, а також і відносно попередніх значень, отриманих собакою. Різкість цих змін ми можемо опціонально вказувати в "умові". А можемо й не вказувати. Тоді ми реагуватимемо взагалі на всі зміни цих циферок у бік збільшення або зменшення. Наприклад, ми можемо реагувати на збільшення зростання помилок на якомусь інтерфейсі.
 +
 +
 +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
 +| Помилки полізли | onepunch  | uplinkerrors  | rised      |      | log,sms,telegram |
 +
 +
 +Ну або якийсь рівень зростання помилок ми вважаємо припустимим, і наприклад, встановлюємо поріг у 100 помилок за 10 хвилин
 +
 +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
 +| Помилки полізли активно | onepunch  | uplinkerrors  | rised      |  100    | log,sms,telegram |
 +
 +
 +Також ми можемо у такий спосіб відловлювати або різкі сплески або падіння утилізації, наприклад, того ж каналу. Типу, ми вважаємо, що якщо утилізація каналу за останні 10 хвилин зросла на вісім гіг.. типу щось пішло не так
 +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
 +| Канал якось розігнався | onepunch  | uplinktraffic  | rised      |  8000    | log,sms,telegram |
  
  
-Хотя опять же никто не запрещает нам, скажем мониторить этого клиента скажем внешним скриптом запрашивающим по SNMP состояние порта или счетчик трафика на свиче, куда он воткнутлибо банально его дергать по какому-то TCP порту. Думаю вышеприведенных примеров достаточно для получения представления о гибкости собаки-наблюдаки и возможностях построения оповещений по практически любым внештатным ситуациям. Обработка задач собаки происходит при соответствующем вызове [[remoteapi|RemoteAPI]]. Рекомендуемым интервалом является 10 минут.+Ну чи навпаки різкі падіння щодо попередніх значень (типу утилізація аплінку провалилася на 20 гіг від останнього запуску собаки)
  
-А еще мы, можем реагировать не только на изменения текущих значений относительно каких-то порогов, а также и относительно предыдущих значений полученных собакой. Резкость этих изменений мы можем опционально указывать в условии. А можем и не указывать. Тогда мы будем реагировать вообще на все изменения этих циферок в сторону увеличения или уменьшения. Например мы можем реагировать на увеличение роста ошибок на каком-то интерфейсе+^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
 +Трафік рухнов якось сильно | onepunch  | uplinktraffic  | decreased      20000    | log,sms,telegram |
  
-Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  +А ще ми можемо дуже просто перевіряти робочість сервісів, які повинні слухати з'єднання на якісь TCP або UDP порти, типу так
-| X        | Ошибки полезли | onepunch  | uplinkerrors  | rised      |      | log,sms,telegram |+
  
-Ну либо какой-то уровень роста ошибок мы считаем допустимым, и например, устанавливаем порог в 100 ошибок за 10 минут+^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
 +| http на хості | tcpping  | 192.168.42.18:80  | changed          | log,sms,telegram andresult |
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  
-| X        | Ошибки полезли резво | onepunch  | uplinkerrors  | rised      |  100    | log,sms,telegram | 
  
-Также мы можем таким способом отлавливать либо резкие всплески либо падения утилизации, например все того же канала. Типа, мы считаем, что если утилизация канала за последние 10 минут выросла на восемь гиг.. типа что-то пошло не так+^ Ім`я               Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
 +| https на хості | tcpping  | 192.168.42.18:443  | changed          | log,sms,telegram andresult |
  
-Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  +Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії         
-X        | Канал разогнался как-то onepunch  uplinktraffic  rised      |  8000    | log,sms,telegram |+syslogd на хості udpping  192.168.42.18:514  changed          | log,sms,telegram andresult |
  
-Ну или наоборот резкие падения относительно предыдущих значений (типа утилизация аплинка провалилась на 20 гиг от последнего запуска собаки) 
  
-Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  +А ще ми можемо отримувати та перевіряти будь-які дані з будь-якого OID за допомогою snmpwalk:
-| X        | Трафик рухнул куда-то | onepunch  | uplinktraffic  | decreased      20000    | log,sms,telegram |+
  
-А еще мы можем очень просто проверять рабочесть сервисов которые должны слушать соединения на какие-то TCP или UDP портытипа так+^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
 +| Версія OS змінилась | snmpwalk  | 192.168.42.18:changeme:.1.3.6.1.2.1.1.1.0  | changed          | log,sms,telegram andresult |
  
-Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  +Або банально нотифікувати себе про те, що у кореневому розділі закінчується місце
-| X        | http на хосте | tcpping  | 192.168.42.18:80  | changed          | log,sms,telegram andresult |+
  
 +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
 +| В корені закінчується місце | freediskspace  | /  |  <      100     | log,sms,telegram andresult |
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  +===== Відправка SMS =====
-| X        | https на хосте | tcpping  | 192.168.42.18:443  | changed          | log,sms,telegram andresult |+
  
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  +Весь функціонал відправлення реалізований за допомогою підсистеми [[senddog|"Собака-посилака"]]. Номери для відсилання розділяються комами та вказуються у міжнародному форматі (наприклад +380509999999) в налаштуваннях "Собаки-спостерігаки". Їх як основних так і додаткових може бути скільки завгодно.
-| X        | syslogd на хосте | udpping  | 192.168.42.18:514  | changed          | log,sms,telegram andresult |+
  
  
-А еще мы можем получать и проверять любые данные, из любого OID при помощи snmpwalk: +===== Відсилка Telegram =====
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  +
-| X        | Версия OS | snmpwalk  | 192.168.42.18:changeme:.1.3.6.1.2.1.1.1.0  | changed          | log,sms,telegram andresult |+
  
-Или банально нотифицировать себя о том, что в корневом разделе заканчивается место +Здійснюється також під час проходу "Собаки-посилаки". Як налаштувати свого бота для розсилки, можна почитати [[ubillingtelegram|тут]].
-^ Активный ^ Имя               ^ Тип проверки ^ Параметр    ^ Оператор ^ Условие ^ Действия      ^  +
-| X        | Место в корне заканчивается | freediskspace  | /  |  <      100     | log,sms,telegram andresult |+
  
-===== Отсылка SMS ===== 
-Не требует включенного модуля рассылки [[turbosms|TurboSMS]]. Весь функционал отправки реализован посредством подсистемы [[senddog|"собака-посылака"]]. Номера для отсылки разделяются запятыми и указываются в международном формате (например +380509999999). Их, как основных так и дополнительных может быть сколько угодно.  
  
-===== Отсылка Telegram ===== +===== Приклади скриптів =====
-Осуществляется тоже при проходе "собаки-посылаки". Как настроить своего бота для рассылки, можно почитать [[ubillingtelegram|тут]].+
  
-===== Примеры скриптов ===== +Як вже сказано вище, за допомогою собаки-спостерігаки, можливо заскриптувати і контролювати взагалі все, що завгодно - це обмежено тільки вашою фантазією та радіусом кривизни рук. Ми рекомендуємо зберігати кастомні скрипти такого плану в **content/documents/myscripts/** - таким чином вони нормально переживатимуть оновлення. Ось кілька простих прикладів:
-Как уже говорилось выше, при помощи собаки-наблюдаки, возможно заскриптовать и контролировать вообще все что угодно - это ограничено только вашей фантазией и радиусом кривизны рук. Мы рекомендуем хранить кастомные скрипты такого плана в **content/documents/myscripts/** - таким образом они будут нормально переживать обновления. Вот несколько, простых примеров:+
  
-==== Получение трафика с порта свитча ====+==== Отримання трафіку з порта комутатора ====
 <file php switch_traffic> <file php switch_traffic>
 #!/usr/local/bin/php #!/usr/local/bin/php
Рядок 215: Рядок 231:
 </file> </file>
  
-==== Снятие температуры с eping3 ====+==== Зняття температури з ping3 ====
  
 <file php eping_temp> <file php eping_temp>
Рядок 238: Рядок 254:
 </file> </file>
  
-==== Наличие электропитания с eping3 ====+==== Наявність електомережі з ping3 ====
  
 <file php eping_power> <file php eping_power>
Рядок 262: Рядок 278:
 </file> </file>
  
-==== Количество свободного места в /var/ ====+==== Кількість вільного місця в /var/ ====
  
 <file php var_stat> <file php var_stat>
Рядок 288: Рядок 304:
 <?php <?php
  
-$wallet='72F7B047C192178B1cef591Bc7e960aAD333B822';+$wallet='72F7B047C19217871cef591Bc6e960aAD333B822';
 $workersStatsUrl = 'https://api.ethermine.org/miner/:'.$wallet.'/workers'; $workersStatsUrl = 'https://api.ethermine.org/miner/:'.$wallet.'/workers';
 $jsonRaw = file_get_contents($workersStatsUrl); $jsonRaw = file_get_contents($workersStatsUrl);
Рядок 306: Рядок 322:
  
  
-==== PPS на интерфейсе ====+==== PPS на інтерфейсі ====
  
 <file bash stat_pps> <file bash stat_pps>
Рядок 314: Рядок 330:
  
  
-==== Утилизация CPU Linux хоста ====+==== Утилізація CPU Linux хоста ====
  
 <file php lin_cpustats> <file php lin_cpustats>
Рядок 350: Рядок 366:
 $raw=trim($raw[1]); $raw=trim($raw[1]);
 if (!empty($raw)) { if (!empty($raw)) {
- print($raw);+    print($raw);
 } else { } else {
- print('FAIL');+    print('FAIL');
 } }
  
Рядок 359: Рядок 375:
 </file> </file>
  
-===== Использование One-Punch скриптов =====+===== Використання One-Punch скриптів =====
  
-Еще более предпочтительным, является использование [[onepunch|One-Punch скриптов]] вместо просто скриптов лежащих где-то на вашей ФС. Используя их, вы получаете сразу два главных преимущества:+Ще більш доцільним є використання [[onepunch|One-Punch скриптів]] замість просто скриптів, котрі лежать десь на вашій ФС. Використовуючи їх, ви отримуєте одразу дві головні переваги:
  
-  - Они храняться в вашей БД и переезжают всегда вместе с ней +  - Вони зберігаються у вашій БД і переїжджають завжди разом із нею 
-  - Они выполняются внутри Ubilling и имеют прямой доступ ко всему его функционалу+  - Вони виконуються всередині Ubilling і мають прямий доступ до всього його функціоналу.
  
-===== Как это работает? =====+===== Як це працює? =====
  
-Допустим берем и создаем [[onepunch|One-Punch]] скрипт следующего вида:+Допустимо беремо і створюємо [[onepunch|One-Punch]] скрипт наступного виду:
  
 <code php> <code php>
Рядок 374: Рядок 390:
 </code> </code>
  
-Вот како так+Ось якось так
  
 {{:wdonepunch0.png?|}} {{:wdonepunch0.png?|}}
  
-И допустим мы хотим контролировать не изменятся ли данные возвращаемые этим скриптом (с чего-бы это? ;)+І припустимо ми хочемо контролювати чи не зміняться дані, що повертаються цим скриптом (з чого б це? ;)
  
 {{:wdonepunch1.png?|}} {{:wdonepunch1.png?|}}
  
 +Сподіваюсь очевидно, що собака-спостерігака сприйматиме як результат виконання скрипта лише дані, що знаходяться в змінній **$watchdogCallbackResult**?
  
- 
-Надеюсь очевидно, что собака-наблюдака будет воспринимать как результат выполнения только данные находящиеся в переменной **$watchdogCallbackResult**? 
 \\ \\
-Также есть еще одно небольшое ограничение относящееся не только к данным возвращаемым One-Punch скриптами, а также и к таким типам проверок как script и httpget. Ограничение заключается в том, что операторы changed и notchanged не работают адекватно если объем возвращаемых этими проверками данных составляет более 255 байт. Поэтому если вы собираетесь использовать эти операторы для контроля измений в данных возвращаемых вышеуказанными типами проверок, вам следует это учитывать при разработке ваших скриптов. Для проверок типа like или скажем notempty это не важно. +Також є ще одне невелике обмеження, що стосується не тільки даних, що повертаються One-Punch скриптами, а також і до таких типів перевірок як script і httpget. Обмеження полягає в томущо оператори changed і notchanged не працюють адекватно якщо обсяг даних, що повертаються цими перевірками, становить більше 255 байт. Тому якщо ви збираєтеся використовувати ці оператори для контролю змін у даних, що повертаються вищевказаними типами, вам слід це враховувати при розробці ваших скриптів. Для перевірок типу like або скажемо notempty це не важливо.
- +
-==== Трафик с порта ====+
  
 +==== Трафік з порта ====
  
-Вот например то же самое снятие данных о трафике с порта, но в виде One-Punch скрипта:+Ось наприклад те саме зняття даних про трафік з порту світча, але вже у вигляді One-Punch скрипта:
  
 <code php> <code php>
Рядок 408: Рядок 422:
 $raw=trim($raw[1]); $raw=trim($raw[1]);
 if (!empty($raw)) { if (!empty($raw)) {
- $cacheName='content/documents/myscripts/octets_'.$ip.'_'.$port; +    $cacheName='content/documents/myscripts/octets_'.$ip.'_'.$port; 
- if (file_exists($cacheName)) { +    if (file_exists($cacheName)) { 
- $oldTime=filemtime($cacheName); +        $oldTime=filemtime($cacheName); 
- $oldOctets=file_get_contents($cacheName); +        $oldOctets=file_get_contents($cacheName); 
- $traffDiff=$raw-$oldOctets; +        $traffDiff=$raw-$oldOctets; 
- $timeDiff=$newTime-$oldTime; +        $timeDiff=$newTime-$oldTime; 
- if ($timeDiff!=0) { +        if ($timeDiff!=0) { 
- $speed=($traffDiff*8*100)/($timeDiff*10000); +        $speed=($traffDiff*8*100)/($timeDiff*10000); 
- $watchdogCallbackResult=round($speed/10000); +        $watchdogCallbackResult=round($speed/10000); 
- } else { +        } else { 
- $watchdogCallbackResult='-1'; +        $watchdogCallbackResult='-1'; 
- +        
-     file_put_contents($cacheName,$raw); +        file_put_contents($cacheName,$raw); 
- } else { +    } else { 
- file_put_contents($cacheName,$raw); +        file_put_contents($cacheName,$raw); 
- $watchdogCallbackResult='0'; +        $watchdogCallbackResult='0'; 
- }+    }
 } }
  
Рядок 432: Рядок 446:
  
  
-==== Свободное место на диске ====+==== Вільне місце на диску ====
  
 <code php> <code php>
Рядок 440: Рядок 454:
 </code> </code>
  
-==== Load Average удаленного Linux хоста ====+==== Load Average віддаленого Linux хосту ====
  
 <code php> <code php>
Рядок 460: Рядок 474:
 </code> </code>
  
-==== Мониторинг isc-dhcpd ====+==== Моніторинг isc-dhcpd ====
  
 <code php> <code php>
Рядок 474: Рядок 488:
  
  
-==== Мониторинг TrassirServer ====+==== Моніторинг TrassirServer ====
 <code php> <code php>
         $watchdogCallbackResult = '';         $watchdogCallbackResult = '';
Рядок 493: Рядок 507:
 </code> </code>
  
-==== Мониторинг температуры на Equicom PING3 ====+==== Моніторинг температури з Equicom PING3 ==== 
 <code php> <code php>
     $ip = '192.168.0.89';     $ip = '192.168.0.89';
Рядок 511: Рядок 526:
  
  
-==== Мониторинг наличия питания на Equicom PING3 ===+==== Моніторинг наявності живлення на Equicom PING3 ===
 <code php> <code php>
     $ip = '192.168.0.89';     $ip = '192.168.0.89';
Рядок 528: Рядок 543:
 </code> </code>
  
-==== Мониторинг температур на OLT-ах ===+==== Моніторинг температур на OLT-ах ===
  
 <code php> <code php>
Рядок 560: Рядок 575:
  
 <code php> <code php>
-    // ключ API+    // ключ HTTP API
     $apiKey = 'xxxxxxxxxxxxxxxxxx';     $apiKey = 'xxxxxxxxxxxxxxxxxx';
     // поріг коштів після якого нотифікувати     // поріг коштів після якого нотифікувати
watchdog.1664378346.txt.gz · Востаннє змінено: 2022/09/28 18:19 повз nightfly