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

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


watchdog

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
watchdog [2024/04/23 18:10]
nightfly [Собака-спостерігака aka Watchdog]
watchdog [2025/10/28 18:56] (поточний)
nightfly [Відсилка Telegram]
Рядок 183: Рядок 183:
 ===== Відсилка Telegram ===== ===== Відсилка Telegram =====
  
-Здійснюється також під час проходу "Собаки-посилаки". Як налаштувати свого бота для розсилки, можна почитати [[ubillingtelegram|тут]].+Здійснюється також під час проходу "Собаки-посилаки". Як налаштувати свого бота для розсилки, можна почитати [[tgbotfather|тут]].
  
  
Рядок 602: Рядок 602:
     }     }
        
 +</code>
 +
 +==== Моніторинг живості OLT-ів ===
 +
 +<code php>
 +$watchdogCallbackResult = ' ';
 +$deadOltCount=0;
 +$deadSwitches = zb_SwitchesGetAllDead();
 +
 +if (!empty($deadSwitches)) {
 +    $switchesDb=new NyanOrm('switches');
 +    $switchesDb->where('desc','LIKE','%OLT%');
 +    $allOlts=$switchesDb->getAll('ip');
 +    if (!empty($allOlts)) {
 +        foreach ($allOlts as $oltIp=>$eachOltData) {
 +            if (isset($deadSwitches[$oltIp])) {
 +                $deadOltCount++;
 +            }
 +        }   
 +    }
 +}
 +    
 +if ($deadOltCount>0) {
 +    $watchdogCallbackResult .= $deadOltCount.' завернулись шубою. Можна починати панікувати!';
 +} else {
 +    $watchdogCallbackResult .= 'зі всіма наразі все гаразд.';
 +}
 +</code>
 +
 +==== Моніторинг BGP сесій ===
 +
 +<code php>
 +  $watchdogCallbackResult = '';
 +    $deadPeersList = '';
 +    $bgpMon = new BGPMon();
 +    $allPeersStats = $bgpMon->getAllPeersStats();
 +    $deadCount = 0;
 +    if (!empty($allPeersStats)) {
 +        foreach ($allPeersStats as $eachRouterId => $eachRouterStats) {
 +            if (!empty($eachRouterStats)) {
 +                foreach ($eachRouterStats as $io => $each) {
 +                    if ($each['state'] != 6) {
 +                        $deadCount++;
 +                        $deadPeersList .= $each['ip'] . ' - ' . $each['short'] . ' ' . PHP_EOL;
 +                    }
 +                }
 +            }
 +        }
 +    }
 +
 +    if ($deadCount > 0) {
 +        $watchdogCallbackResult .= 'Відригнули наступні BGP піри:' . PHP_EOL;
 +        $watchdogCallbackResult .= $deadPeersList;
 +    } else {
 +        $watchdogCallbackResult .= 'Зі всіма BGP пірами все гаразд';
 +    }
 +
 +    deb($watchdogCallbackResult);
 </code> </code>
watchdog.1713885040.txt.gz · Востаннє змінено: 2024/04/23 18:10 повз nightfly