Админская фамилия

Make Sysadmins Great Again

[Мониторинг] Prometheus + Grafana. Часть 1. Общая информация

Система мониторинга - неотъемлемая часть ИТ инфраструктуры. Сеть не исключение. Для мониторинга сети уже написано много различных систем на разные вкусы:

  • The Dude. Простая и быстрая в настройке и освоении система мониторинга от Mikrotik. Идеально подходит для небольших сетей или в случае, когда мониторинг нужен “вчера”

  • Zabbix. Монструозный гигант. Долгое время стандарт де факто в мониторинге (да и сейчас, пожалуй). Умеет, не побоюсь этого слова, всё. 

  • Cacti. Легковесная мониторилка на основе RRDTool


SMS оповещения из The Dude

Какой смысл в мониторинге ключевых устройств, если об их некорректной работе будет знать только сама система мониторинга? Именно поэтому система мониторинга должна оповещать админа о некорректной работе. Я работаю Mikrotik’ами, поэтому использую фирменную систему мониторинга The Dude. И сейчас мы научим её слать почту и смс.По умолчанию The Dude умеет отправлять email, но для этого ей нужен SMTP сервер без авторизации. Что нам поднимать конечно же не имеет смысла. В общем, разработчики поленились сделать кошерно.Пытливые умы же научились отправлять почту сторонним приложением.Качаем SMTP-клиент mailsendКладем его, допустим, сюда C:\Program Files (x86)\Dude\mailsend\mailsend.exe (не забудьте переименовать экзешник)Создаём файлик mailsend.cmd следующего содержания:  :: Send email notifications from Dude via Gmail:: set mailsenderdir=C:\Program Files (x86)\Dude\mailsendset mailsender=mailsend.exeset smtpsender=username@gmail.comset smtpsenderfullname=usernameset smtpserver=smtp.gmail.comset smtpport=465set smtpuser=username@gmail.comset smtppwd=passwordset mailto=username@gmail.com::::"%mailsenderdir%%mailsender%" -smtp %smtpserver% -port %smtpport% -ssl -auth -user %smtpuser% -pass %smtppwd% -t %mailto% -f %smtpsender% -name “%smtpsenderfullname%” +cc +bc -q -sub %1 -M %2::::pause::Эти параметры меняем на свои: smtpsender - ящик, с которого будут отправляться письма, smtpsenderfullname - имя пользователя этого ящика, smtpuser - опять ящик, smtppwd - пароль к нему, mailto - ящик админа (на который будем слать алерты)4. Создаем новое уведомление в The Dude:Имя: mailТип: execute on serverКоманда: “C:\Program Files (x86)\Dude\mailsend\mailsend.cmd” “Service [Probe.Name] on [Device.Name] is now [Service.Status]” “Service [Probe.Name] on [Device.Name] is now [Service.Status] ([Service.ProblemDescription])"После нажатия кнопки Test письмо должно упасть на почту.С почтой разобрались. Теперь нужно научить Дудку отправлять СМС. Саму мониторилку мы больше мучать не будем - СМС умеет отправлять гуглопочта.Итак, что нужно для начала: у вас должен быть привязан телефонный номер к Google Calendar, как это сделать написано вот тут — Регистрация мобильного телефона:support.google.com/calendar/bin/answer.py?hl=ru&hlrm=en&answer=45351Создайте новый ярлык в Gmail с именем, например, SMSnotify (или любым другим, по вашему усмотрению). Как это сделать написано вот тут – Использование ярлыков:support.google.com/mail/bin/answer.py?hl=ru&hlrm=ru&answer=118708#0Создайте фильтр, который будет применять ярлык SMSnotify к письмам от системы мониторинга ( From: username@gmail.com). Как это сделать, написано вот тут – Использование фильтров:support.google.com/mail/bin/answer.py?hl=ru&hlrm=ru&answer=6579#0Войдите в Google Drive и создайте новую электронную таблицу (Spreadsheet). Откройте созданную таблицу и в верхнем меню выберите Tools > Script Editor.Нужно создать доп. календарь и настроить SMS уведомления: установить по-умолчанию для всех новых встреч вот так:Настройки->Календари->Уведомления->По умолчанию->SMS->%% минВ этом примере имя календаря будет “email"Вставляем следующий код:function my_notification() { var calendar = CalendarApp.getOwnedCalendarsByName(‘email’)[0]; //открываем календарь с именем “email” var threads = GmailApp.getUserLabelByName(‘SMSnotify’).getThreads(); //переменная, в которой хранится коллекция цепочек с ярлыком SMSnotify var now = new Date(); if(threads == 0) return; // прекращение выполнения, если новых цепочек нет for(i in threads) // создаем события { calendar.createEvent(threads[i].getFirstMessageSubject(), new Date(now.getTime()+60000), new Date(now.getTime()+60000)); } GmailApp.getUserLabelByName(‘SMSnotify’).removeFromThreads(threads); //снимаем метки “SMSnotify” с цепочек}6.  После того, как вы ввели код, нужно создать триггер по которому и будет запускаться скрипт. Для этого кликаем на меню “Ресурсы”, а в нем на “Триггеры текущего скрипта”. 7.  Нам нужен time-driven триггер с частотой повторения одна минута.Этот скрипт будет проверять входящие от с ярлыком SMSnotify (от юзера username@gmail.com). И, в случае наличия новых писем создавать событие в календаре и снимать ярлык с уже обработанного письма. СМС будет слать сам календарь.Статья написана методом копипаста! Навеяно этим: отправка email уведомлений, отправка СМС из гуглопочты


Cacti + Mikrotik = Full Monitoring

Захотелось мне собирать все логи с сетевого оборудования в одном месте. Решил поднять syslog-сервер. Так как с такими сервисами никогда не сталкивался, пришлось спросить у великого гугля. Он подсказал мне, что с этим неплохо справляется система мониторинга Cacti. А о ней то я уже наслышан, и в планах стояло внедрение сего чуда в сеть. Итак, теперь основная цель не сислог, а мониторинг - то, для чего и создан cacti. Настроим мониторинг, а потом примемся за сислог.


Система мониторинга Zabbix. Кратко об установке и первичной настройке.

Zabbix - система для мониторинга состояния сетей, включая рабочие станции, сервера, маршрутизаторы, коммутаторы и т.д. Серверная часть работает на UNIX-подобных ОС. Данные о работе устройств собираются посредством протокола SNMP, системы IPMI и Zabbix-агента. Клинтская часть работает на всех распространенных ОС. Установка серверной частиЧасть взята отсюда: http://wiki.enchtex.info/howto/zabbix/zabbix-ubuntu-8.04sudo apt-get install zabbix-server-mysql zabbix-agent zabbix-frontend-phpЕсли MySQL уже установлена, то необходимо ввести пароль администратора БД. Иначе - задать новый пароль для администратора БД. Все настройки хранятся в /etc/zabbix.После установки открываем в браузере http://serverIP/zabbix. По умолчанию логин Admin, без пароля. Для Ubuntu 10.xx и выше логин/пароль admin/zabbix. Если веб-интерфейс выдает предупреждение: “Timezone for PHP is not set. Please set “date.timezone” option in php.ini.”, то в /etc/php5/apache2/php.ini следует указать часовой пояс “date.timezone = Asia/Yekaterinburg” (nano /etc/php5/apache/php.ini) и перезапустить apache: /etc/init.d/apache2 restart. Если всплывает ещё одно предупреждение “PHP max execution time: 30 sec Fail”, то в том же файле указываем время выполнения скриптов 300 сек. “max_execution_time = 300” и снова перезапускаем веб-сервер. Далее заходим в меню - Administration -> Installation жмем Next, соглашаемся с условиями лицензии и проверяем рекомендуемые настройки. Если строчка выделена красным, значит следует изменить соответствующее значение в указанном выше php.ini на рекомендуемое (указано в столбце Recommended). Дальше проверяем соединение с БД (необходимо ввести пароль администратора БД, который вводили при установке).Если что-то не получается необходимо выполнить следующие действия:Проверить файл /etc/zabbix/dbconfig.php. В нем должны быть указаны правильные учетные данные и IP сервера (локальный 192.168.0.1).В файле /etc/zabbix/zabbix-server.conf все настройки оставляем по умолчанию, за исключением адреса сервера. Его ставим таким же как и dbconfig.php. Строка FpingLocation по умолчанию указывает в неверную для Ubuntu директорию. Указываем /usr/bin/fping.В файле zabbix_agent.conf указываем IP нашего сервера (server = 192.168.0.1) и отображаемое в Zabbix имя хоста (Hostname = zabbix_client1). Остальные параметры не меняем. Установка клиентской части на WindowsОтсюда http://www.zabbix.com/ru/download.php скачиваем zabbix-агент для нашей ОС.Копируем /etc/zabbix/zabbix_agentd.conf с сервера на клиент (в C:\program files\zabbix). Меняем в нем имя хоста. Можно также поменять уровень логирования (DebugLevel = 4), на случай если агент не сможет подключиться к серверу в C:\program files\zabbix\zabbix_agentd.log можно будет увидеть подробный отчет о работе агента.Агент устанавливается в качестве службы. Для установки следует запустить командную строку с правами администратора, перейти в папку с zabbix-агентом и выполнить zabbix_agentd.exe -i -c “C:\program files\zabbix\zabbix_agentd.conf”. Служба автоматически не запускается, поэтому следует запустить её из оснастки “Управление компьютером”.Фаервол должен пропускать трафик на порту 10050. Добавление хостовВ веб-интерфейсе Zabbix открываем в меню Configuration -> Hosts. Жмём Create Host. Вводим имя хоста, его группу, IP-адрес и устанавливаем статус monitored. В правой части в панели Linked Templates жмём Add и выбираем тип хоста (в нашем случае Template Windows, вверху в группах необходимо выбрать Templates) Для проверки корректности подключения клиентов можно в консоли сервера выполнить команду zabbix_get -s %client-IP% -k system.uname В ответ должны получить название ОС. UPD 02.08.11Новый пост на хабре про Zabbix: http://habrahabr.ru/blogs/sysadm/125340/