Сейчас просматривают тему: 0 -> --, и гостей: 1

Скрипт мониторинга доступности портов в сети с уведомлением на email – Mikrotik (Metarouter-OpenWrt)

Ссылка на пост #1 Добавлено: 11 декабря 2014 00:49
Автор темы  
Полное имя: Макс
Группа: Администраторы
Азъ: библиАтекарь
Возраст: 33 Водолей
Пол:
С нами: 9 лет 1 месяц
Сообщений: 6377
Поблагодарил: 5499
Благодарностей: 20269
Предупреждений: 0

Награды:

     

Скрипт предназначен для мониторинга состояния хостов по портам в локальной сети или интернет.
Для использования данного скрипта необходимо воспользоваться возможностью создания виртуальной системе на роутерах Mikrotik
Для начала импортируем образ openwrt-mr-mips-rootfs-31411-basic.tar.gz в качестве операционной системы (как это сделать опишем в другой статье, советуем поискать в интернете, есть описания с картинками)
После чего нам понадобиться редактор nano (по желанию), обязательно пакет msmtp – для отправки почты с Mikrotik и сам скрипт.
Код:[Выделить]
opkg install nano opkg install msmtp


Закидываем все в каталог /www/ping/ и даем права на выполнение всем файлам каталога.
Код:[Выделить]
chmod 755 -R /www/ping/


Сам скрипт /www/ping/monitor:

Код:[Выделить]
DATENOW=$(date +%d-%m-%Y--%T) echo "Subject: Monitoring hosts sms Mikrotik" > /www/ping/mail echo "From: mail@hd.zp.ua.ru" >> /www/ping/mail ### Создаем при каждом запуске скрипта шапку письма echo "To: mail@hdtv.zp.ua" >> /www/ping/mail echo "CC: mail2@hdtv.zp.ua" >> /www/ping/mail echo "" >> /www/ping/mail echo "server time is $DATENOW" >> /www/ping/mail ### Делаем выборку из nmap 5 раз с задержкой 5 секунд результат открытости порта for i in 1 2 3 4 5 do cat /www/ping/servers | while read a; do /usr/bin/nmap `echo $a | sed -e 's/:/ -p /'` | grep -q "/tcp *open " || echo $a done >> /www/ping/serverlist_n echo "Console number is $i" sleep 5; done ### Сортируем записи недоступных портов и копируем уникальную запись для отправки в тело письма /usr/bin/sort -u /www/ping/serverlist_n > /www/ping/serverlist ### Проверяем количество ошибок в запросе, если равен 5 - то сообщаем о проблеме, если меньше - считаем что неполадки в интернете if [[ $(cat /www/ping/serverlist_n | /usr/bin/wc -w) -ge 5 ]] then cat /www/ping/serverlist >> /www/ping/mail echo "" >> /www/ping/mail echo "serv" else echo "All OK" >> /www/ping/mail echo "" >> /www/ping/mail echo "ok" fi ### Проверяем не пропал ли интернет if [[ $(cat /www/ping/servers | /usr/bin/wc -w) -eq $(cat /www/ping/serverlist | /usr/bin/wc -w) ]] then cat /dev/null > /www/ping/serverlist_n echo "lost internet" exit 1 fi ### Если статус доступности порта изменился - сообщаем об этом на e-mail (при абсолютном значении) + заносим запись в лог a=`expr $(cat /www/ping/serverlist_n | /usr/bin/wc -w) % 5` b=`expr $(cat /www/ping/serverlist_old | /usr/bin/wc -w) % 5` if [[ $(cat /www/ping/serverlist_old | /usr/bin/wc -w) -ne $(cat /www/ping/serverlist_n | /usr/bin/wc -w) && $a -eq 0 && $b -eq 0 ]] then cat /www/ping/serverlist_n | /usr/bin/wc -w >> /www/ping/mail cat /www/ping/serverlist_old | /usr/bin/wc -w >> /www/ping/mail /www/ping/sendmail > /dev/null echo "------------" >> /www/ping/log echo $DATENOW >> /www/ping/log cat /www/ping/serverlist >> /www/ping/log cat /www/ping/serverlist_n | /usr/bin/wc -w >> /www/ping/log cat /www/ping/serverlist_old | /usr/bin/wc -w >> /www/ping/log echo "------------" >> /www/ping/log echo "send" fi ### заносим данные в архив для проверки измненения if [[ $a -eq 0 ]] then cat /www/ping/serverlist_n > /www/ping/serverlist_old echo "end" fi cat /dev/null > /www/ping/serverlist_n exit fi


Файл конфига тулзы msmtp, для отправки почты через внешний smtp почтовый сервер:
nano /www/ping/sendmail

Код:[Выделить]
MAIL_SERVER=smtp.mail.ru MAIL_PORT=465 MAIL_DATE=`date +"%d %b %Y %T"` MAIL_FROM=mail@mail.ru MAIL_TO=mail@hd.zp.ua MAIL_PASSWORD=pass cat /www/ping/mail | /usr/bin/msmtp --host=${MAIL_SERVER} --port=${MAIL_PORT} --tls=on --tls-certcheck=off --tls-starttls=off --auth=login --user=${MAIL_FROM} --passwordeval="echo ${MAIL_PASSWORD}" -f ${MAIL_FROM} ${MAIL_TO} -d


nano /www/ping/servers – список хостов для мониторинга
192.168.0.31:80
192.168.0.30:80
hd.zp.ua:80

собственно после проделанного, добавляем наш скрипт в crontab для выполнения, например раз в час.
Чаще не советую, из-за слабого процессора на Mikrotik

Мой телевизор: Samsung LE-32C550J1WXUA, Samsung UE55D6100, Samsung UE65°ES8007

Мой ресивер: Sat-Integral S-1210 HD Aron, Sat-Integral TH-7200 PVR I, iNeXT HD1, GI Vu+ Duo 2

Мои спутники: 4°W+4.8°E+9°E+13°E+36°E+75°E+85°E+90°E

Cказали Спасибо: 1 : leha87
Информация

Посетители, находящиеся в группе Гости, не могут оставлять сообщения в данной теме.

    «Триколор ТВ» и Mezzo: эффективная реализация международных принципов пакетирования

    «Триколор ТВ» и телеканал Mezzo организуют прямую трансляцию исполнения мирового шедевра

    Новый виток развития телевидения — дроны

    Крупнейший российский оператор цифрового телевидения «Триколор ТВ» совместно с НП «ГЛОНАСС» и телеканалом Life запускает федеральный проект «Россия глазами дронов»

    Индустрия дронов — будущее России

    1 декабря 2016 года на пресс-конференции по Кубку чемпионов по дрон-рейсингу в рамках «Транспортной недели-2016» помощник Президента России Игорь Левитин, заместитель министра транспорта Алексей Цыденов, президент НП «ГЛОНАСС» Александр Гурко и генеральный директор «Триколор ТВ» Алексей Холодов обсудят перспективы развития отрасли беспилотных авиационных систем (БАС) в России и их применение в телекоммуникационной отрасли

    «Триколор ТВ» признан самым инновационным оператором Европы

    25 ноября 2016 года российский оператор цифрового телевидения «Триколор ТВ» единственный из европейских операторов стал обладателем премии за внедрение инновационных сервисов и технологий в рамках международной премии Eutelsat TV Awards

    «Триколор ТВ» принял участие на RIW–2016

    Крупнейший российский оператор цифрового телевидения «Триколор ТВ» впервые принял участие на Russian Interactive Week

    Конкурс детской новогодней открытки

    В преддверии Нового года Телекарта и Канал Disney представляют конкурс детской новогодней открытки!

    Абоненты Телекарты получают «Приоритет»

    «Приоритет» – это комплексная услуга для абонентов «Телекарты», предоставляющая своим пользователям право на эксклюзивное обслуживания, уникальные услуги и предложения.

    «Премия Рунета» досталась «Телекарте Онлайн»

    SMART TV ОТ «ТЕЛЕКАРТЫ» ТЕПЕРЬ В LG!

    Как мы и обещали, линейка «умных» телевизоров, на которых доступна «Телекарта Онлайн» пополнилась модельным рядом телевизоров LG!

    TOPSONG TV и DANGE TV меняют название

    TOPSONG TV и DANGE TV меняют название

Телепрограмма

СТБ
18:30 - "За живе!".
20:00 - "МастерШеф", 6 сезон, 29 эп., 1 ч.
22:00 - "Викна-Новости".
22:50 - "МастерШеф", 6 сезон, 29 эп., 2 ч.
Футбол 1
18:10 - Динамо (Киев) - Бешикташ. Лига Европы. Сезон 2010/2011.
20:00 - Журнал Лиги чемпионов.
20:30 - "Ночь Лиги чемпионов". Прямой эфир.
20:50 - Футбол News. Live.
ICTV
19:25 - Чрезвычайные новости.
20:25 - Премьера. Гражданская оборона.
21:10 - Факты. Вечер.
21:30 - Премьера. Т/с "Пацики", 6 с.
Кинопремьера HD
19:30 - Х/ф "Любовь и дружба".
21:25 - Х/ф "Сент-Амур: Удовольствия любви".
23:10 - Х/ф "Развод по-французски".
00:30 - Х/ф "Китайская головоломка".
Вся телепрограмма

Мы в Вконтакте

Мы в Facebook

Голосование

Вернетесь ли вы на этот сайт снова?

Да
Нет
Затрудняюсь ответить

Случайное фото

Sat-integral club

Продление G-share

Цитата: sergo.lug от Сегодня в 19:46:26Добрый вечер, Павел. Сегодня в 16-10 кошелёк z312334001373 ...

Продление G-share

Добрый вечер, Павел. Сегодня в 16-10 кошелёк z312334001373 от s/n 121229005600 пополнился на $ 24. ...

Ключи Sat-Integral S-1210 HD Aron

кто ищет тот найдёт, извините, что не в ту тему написал 

ПО для ресивера Sat-Integral S-1226 HD K3 от 2016.12.02

Цитата: sir.floyd от Сегодня в 17:37:49saliy Filth Я писал выше,не засирайте тему своими вопросами ...

Ключи Sat-Integral S-1210 HD Aron

Цитата: vostok55 от Сегодня в 03:22:30есть и базовый НТВ за 6 грн. а трико в подарок с экстрой и ...

Установка MySQL 5.6 на Centos 6

Будем использовать ...