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

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


watchdog

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
Остання ревізія По сторонах наступні версії
watchdog [2023/01/22 10:13]
nightfly
watchdog [2023/08/16 11:15]
nightfly
Рядок 3: Рядок 3:
 {{:nablyudaka.png?300 |}} {{:nablyudaka.png?300 |}}
  
-Собака-спостерігака призначена для <del>собачення та спостерігання</del> оперативного моніторингу навколишньої реальності. Вона надає гнучкий функціонал для опису позаштатних ситуацій практично будь-якої дивності, а також для сповіщення у разі їх виникнення. У тому числі, за допомогою відсилання SMS через послуги, що підтримуються собакою-посилакою, електронною поштою, месенджера Telegram а також може викликати запуск будь-якого зовнішнього скрипта при настанні якоїсь події. Для включення собаки-спостерігакт потрібна зміна опції WATCHDOG_ENABLED в [[alteriniconf|alter.ini]]. Також для надсилання повідомлень, очевидно, на допомогу собаці-спостерігаці знадобиться [[senddog|Собака-посилака]].+Собака-спостерігака призначена для <del>собачення та спостерігання</del> оперативного моніторингу навколишньої реальності. Вона надає гнучкий функціонал для опису позаштатних ситуацій практично будь-якої дивності, а також для сповіщення у разі їх виникнення. У тому числі, за допомогою відсилання SMS через послуги, що підтримуються собакою-посилакою, електронною поштою, месенджера Telegram а також може викликати запуск будь-якого зовнішнього скрипта при настанні якоїсь події. Для ввімкнення собаки-спостерігаки, потрібна зміна опції WATCHDOG_ENABLED в [[alteriniconf|alter.ini]]. Також для надсилання повідомлень, очевидно, на допомогу собаці-спостерігаці знадобиться [[senddog|Собака-посилака]].
  
 ===== Можливі перевірки ===== ===== Можливі перевірки =====
Рядок 60: Рядок 60:
 Кожне завдання для Собаки-спостерігаки слід сприймати як "щось трапилося" або "ой яка подія" які трапляються у разі повернення "типом перевірки" за "параметром" результату передбаченого "оператором" з опціональною "умовою". Як приклад, можна навести ось таке просте завдання: Кожне завдання для Собаки-спостерігаки слід сприймати як "щось трапилося" або "ой яка подія" які трапляються у разі повернення "типом перевірки" за "параметром" результату передбаченого "оператором" з опціональною "умовою". Як приклад, можна навести ось таке просте завдання:
  
-^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
-| X        | Гугл не пінгається | icmpping     | google.com  | =false           | log,sms,email |+| Гугл не пінгається | icmpping     | google.com  | =false           | log,sms,email |
  
 При настанні події, коли ping на адресу google.com поверне значення "хибно" собака-спостерігака стурбовано надішле вам СМС-ку, почту та запише в лог сповіщення, про те, що "Гугл не пінгається". Власне і продовжить це робити, допоки перевірка icmpping не перестане повертати значення "хибно". При настанні події, коли ping на адресу google.com поверне значення "хибно" собака-спостерігака стурбовано надішле вам СМС-ку, почту та запише в лог сповіщення, про те, що "Гугл не пінгається". Власне і продовжить це робити, допоки перевірка icmpping не перестане повертати значення "хибно".
Рядок 68: Рядок 68:
 А що робити, якщо ми не хочемо, щоб собака постійно нам спамила за відсутнього пінгу кудись? А дуже просто. А що робити, якщо ми не хочемо, щоб собака постійно нам спамила за відсутнього пінгу кудись? А дуже просто.
  
-^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
-| 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 |
  
  
Рядок 82: Рядок 82:
 Якщо творчо підійти до парсингу виведення зовнішнього ПЗ - можна моніторити багато цікавих речей без дописування зовнішніх скриптів: Якщо творчо підійти до парсингу виведення зовнішнього ПЗ - можна моніторити багато цікавих речей без дописування зовнішніх скриптів:
  
-^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
-| X        | DNS зламався    | script      | nslookup google.com %%|%% tail -n 2  | like  |  find     | log,sms       |+| DNS зламався    | script      | nslookup google.com %%|%% tail -n 2  | like  |  find     | log,sms       |
  
 Також ми можемо дуже просто та елегантно контролювати запущеність важливих сервісів типу stargazer, створивши завдання такого плану: Також ми можемо дуже просто та елегантно контролювати запущеність важливих сервісів типу stargazer, створивши завдання такого плану:
  
-^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
-| X        | Stargazer впав    | script      | /bin/ps aux %%|%% /usr/bin/grep stg  | notlike  |  stargazer     | log,sms       |+| Stargazer впав    | script      | /bin/ps aux %%|%% /usr/bin/grep stg  | notlike  |  stargazer     | log,sms       |
  
 Хоча те саме завдання ми можемо оформити як Хоча те саме завдання ми можемо оформити як
  
-^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
-| X        | Stargazer упал    | fileexists   | /var/run/stargazer.pid  | =false  |       | log,sms       |+| Stargazer впав    | fileexists   | /var/run/stargazer.pid  | =false  |       | log,sms       |
  
  
-Чтобы не сосредотачиваться на тривиальных вещах, мы можем предусмотреть ситуацию, когда у нас есть очень важный клиент с логином vipclient на прекращение трафика от которого нам следует таки отреагировать. Описать такое мы можем в виде:+Щоб не зосереджуватись на теоретичних речах, ми можемо передбачити ситуацію, коли у нас є дуже важливий клієнт на падіння якогонам слід таки відреагувати. Описати таке ми можемо у вигляді:
  
-^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    
-| X        | Важный клиент подох | getusertraff  vipclient  notchanged       |      | log,sms,email |+| Важливий клієнт подох | hopeping  172.16.78.42  changed       |      | log,sms andresult |
  
-Окей, а если мы хотим также эту же СМС-ку послать скажем администратору этого же важного клиента, чтобы он точно знал, что он подох? 
  
-^ Активний ^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^    +Окей, а якщо ми хочемо також цю ж СМС послати скажемо адміністратору цього ж важливого клієнта, щоб він точно знав, що він здох?
-| X        | Важный клиент подох | getusertraff  | vipclient  | notchanged            | log,sms,email {+380509999999} |+
  
 +^ Ім`я               ^ Тип перевірки ^ Параметр ^ Оператор ^ Умова ^ Дії      ^   
 +| Важливий клієнт подох | hopeping  | 172.16.78.42  | changed            | log,sms andresult {+380509999999} |
  
-а если мы хотим послать СМС только на дополнительный номер? Да, без проблем: + 
-   +а якщо ми хочемо надіслати СМС лише на додатковий номер? Такжодних проблем:
-  log,sms,email {+380509999999} noprimary+
      
 +  log,sms {+380509999999} noprimary
  
  
  
-а если мы хотим послать алерт только в дополнительный/е чат/ы Telegram? Да, так же без проблем:+а якщо ми хочемо надіслати алерт тільки в додатковий чат Telegram? Так, так само без проблем:
      
   log,telegram,email (ChatID1,ChatID2,ChatID3) no_tg_primary   log,telegram,email (ChatID1,ChatID2,ChatID3) no_tg_primary
Рядок 120: Рядок 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
Рядок 219: Рядок 231:
 </file> </file>
  
-==== Снятие температуры с eping3 ====+==== Зняття температури з ping3 ====
  
 <file php eping_temp> <file php eping_temp>
Рядок 242: Рядок 254:
 </file> </file>
  
-==== Наличие электропитания с eping3 ====+==== Наявність електомережі з ping3 ====
  
 <file php eping_power> <file php eping_power>
Рядок 266: Рядок 278:
 </file> </file>
  
-==== Количество свободного места в /var/ ====+==== Кількість вільного місця в /var/ ====
  
 <file php var_stat> <file php var_stat>
Рядок 292: Рядок 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);
Рядок 310: Рядок 322:
  
  
-==== PPS на интерфейсе ====+==== PPS на інтерфейсі ====
  
 <file bash stat_pps> <file bash stat_pps>
Рядок 318: Рядок 330:
  
  
-==== Утилизация CPU Linux хоста ====+==== Утилізація CPU Linux хоста ====
  
 <file php lin_cpustats> <file php lin_cpustats>
Рядок 354: Рядок 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');
 } }
  
Рядок 363: Рядок 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>
Рядок 378: Рядок 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>
Рядок 412: Рядок 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'; 
- }+    }
 } }
  
Рядок 436: Рядок 446:
  
  
-==== Свободное место на диске ====+==== Вільне місце на диску ====
  
 <code php> <code php>
Рядок 444: Рядок 454:
 </code> </code>
  
-==== Load Average удаленного Linux хоста ====+==== Load Average віддаленого Linux хосту ====
  
 <code php> <code php>
Рядок 464: Рядок 474:
 </code> </code>
  
-==== Мониторинг isc-dhcpd ====+==== Моніторинг isc-dhcpd ====
  
 <code php> <code php>
Рядок 478: Рядок 488:
  
  
-==== Мониторинг TrassirServer ====+==== Моніторинг TrassirServer ====
 <code php> <code php>
         $watchdogCallbackResult = '';         $watchdogCallbackResult = '';
Рядок 497: Рядок 507:
 </code> </code>
  
-==== Мониторинг температуры на Equicom PING3 ====+==== Моніторинг температури з Equicom PING3 ==== 
 <code php> <code php>
     $ip = '192.168.0.89';     $ip = '192.168.0.89';
Рядок 515: Рядок 526:
  
  
-==== Мониторинг наличия питания на Equicom PING3 ===+==== Моніторинг наявності живлення на Equicom PING3 ===
 <code php> <code php>
     $ip = '192.168.0.89';     $ip = '192.168.0.89';
Рядок 532: Рядок 543:
 </code> </code>
  
-==== Мониторинг температур на OLT-ах ===+==== Моніторинг температур на OLT-ах ===
  
 <code php> <code php>
watchdog.txt · Востаннє змінено: 2024/04/23 18:10 повз nightfly