LINUX.ORG.RU
ФорумAdmin

Триггер на количество интерфейсов

 


0

1

Коллеги, мониториться микрот с множеством pppoe соединений ( сотни, каждый клиент pppoe это интерфейс ) , подскажите как:

  1. Сделать триггер если за последнию минуту количество интерфейсов упало на 20 единиц?
  2. Выводить название их ( упавших интерфейсов) ?
★★★★★

1) Получить список интерфейсов с микротика можно по snmp. 2 запроса: список типов интерфейсов и список состояний интерфейсов.

2) сделать diff с предыдущим списком.

vel ★★★★★ ()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

Поподробнее второй пункт

Я сейчас пока черех ssh сделал так Два скрипта собирают интерфейсы ( один в четные и нечетные минуты) и потом diff

1-59/2 8-23 * * * root /usr/local/sbin/ev.sh
0-58/2 8-23 * * * root /usr/local/sbin/every2.sh
*      *    * * * root /usr/local/bin/pppoe_down_monitor.sh

Как пример скрипта

/usr/bin/ssh -q -p 43322  -o UserKnownHostsFile=/usr/abills//Certs/known_hosts -o CheckHostIP=no -o StrictHostKeyChecking=no -i /usr/abills//Certs/id_rsa.XXXbot XXXbot@yy.yy.yy.az '/ppp active print  without-paging  terse' |  awk '{print $3}' > /tmp/minute.ago

И этот скрипт ( прошу его покритиковать )

#!/bin/bash

TOKEN=XXX
CHAT_ID=XX
#my account is XX
MESSAGE=""
URL="https://api.telegram.org/bot$TOKEN/sendMessage"

DIFF=`diff /tmp/minute.ago /tmp/2minute.ago | grep 'name'`
HOW_MUCH=`diff /tmp/minute.ago /tmp/2minute.ago | grep 'name' | tr -d '> ' |  tr -d '< ' | wc -l`
TEXT="$HOW_MUCH diff $DIFF"
echo $HOW_MUCH;
if  [[ "$HOW_MUCH" -gt 3 ]] && [[ -z "$DIFF" ]]  && [[ "$DIFF" ne 0 ]] 
then
    
    curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$TEXT"
fi

pinachet ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.