Manual:snmp

FreeBSD

zabbix-agent-1.6.5

> cd /usr/ports/net-mgmt/zabbix-agent
> make install clean
> echo 'zabbix_agentd_enable="YES"' >> /etc/rc.conf
> cd /usr/local/etc/zabbix
> cp zabbix_agentd.conf.sample zabbix_agentd.conf

> touch /var/log/zabbix_agentd.log
> chown zabbix:zabbix /var/log/zabbix_agentd.log

> ee zabbix_agentd.conf
#Изменяем параметры
...
Server=127.0.0.1
Hostname=localhost
DisableActive=1
StartAgents=5
LogFile=/var/log/zabbix_agentd.log
...

> /usr/local/etc/rc.d/zabbix_agentd start
Starting zabbix_agentd.

> tail -F /var/log/zabbix_agentd.log
 11361:20090821:145209 zabbix_agentd started. ZABBIX 1.6.5 (revision 7442).

Community Properties

Sub-menu:

This sub-menu allows to set up access rights for the SNMP data.

There is little security in v1 and v2c, just Clear text community string („username“) and ability for Limiting access by IP adress.

In production environment SNMP v3 should be used as that provides security — Authorisation (User + Pass) with MD5/SHA1, Encryption with DES (and since v6.16, AES).


 /snmp community> print value-list 
                     name: public
                  address: 0.0.0.0/0
                 security: none
              read-access: yes
             write-access: no
  authentication-protocol: MD5
      encryption-protocol: DES
  authentication-password: *****
      encryption-password: *****

Warning: Default settings only have one community named public without any additional security settings. These settings should be considered insecure and should be adjusted according required security profile.

Properties

Property Description
address (IP/IPv6 address; Default: 0.0.0.0/0) Addresses from which connections to SNMP server is allowed
authentication-password (string; Default: «») Password used to authenticate connection to the server (SNMPv3)
authentication-protocol (MD5 | SHA1; Default: MD5) Protocol used for authentication (SNMPv3)
encryption-password (string; Default: «») password used for encryption (SNMPv3)
encryption-protocol (DES | AES; Default: DES) encryption protocol to be used to encrypt the communication (SNMPv3). AES (see rfc3826) available since v6.16.
name (string; Default: )
read-access (yes | no; Default: yes) Whether read access is enabled for this community
security (authorized | none | private; Default: none)
write-access (yes | no; Default: no) Whether write access is enabled for this community.

item became not supported

Во время отладки работ я столкнулся с проблемами. Периодически Item отваливались и получали статус: Not Supported. При этом в логах сервера были следующие записи:

27614:20150702:065936.698 item "videoserver:Temperature.CPU" became not supported: Timeout while executing a shell script.
27625:20150702:070938.720 item "videoserver:Temperature.CPU" became supported

То есть данные то собирались, то переставали собираться. Иногда, чтобы данные снова пошли, приходилось удалять итем и создавать его заново. Некоторое время я повозился, пока не понял, в чем дело.

Я обратил внимание, что при запуске батника из командной строки, вывод данных происходит с приличной задержкой в 3-5 секунд. В Zabbix по-умолчанию стоит параметр, по которому агент ожидает ответа от скрипта 3 секунды и на сервере есть подобный параметр, по которому сервер ждет ответа от агента 3 секунды

Если за это время данные не поступают, то итем переходит в статус Not Supported и данные с него не собираются.

Чтобы избавиться от этой ошибки, необходимо увеличить таймаут до 15-ти секунд. Меняем параметр в конфиге на клиентах и на сервере. Он и там и там один и тот же:

Timeout=15

Потом перезапускаем сервер и агентов и ждем результатов. Больше ошибок быть не должно.

На этом, собственно настройка мониторинга температуры окончена. Можно дальше все оформить как полагается: настроить тригеры, оповещения, графики красивые нарисовать. Кому что нужно. Я себе вывел вот такую картинку для наглядности:

Мониторинг Mikrotik в Zabbix по snmp

Стандартный шаблон собирает все метрики по snmp. Так что нам надо включить его на микротике. Для этого подключаемся к нему по Winbox и идем в раздел IP -> SNMP. Настраиваем работу snmp.

Мониторинг Mikrotik в Zabbix по snmp

Мы включили snmp, выставили версию 2, разрешили подключаться только с ip адреса zabbix server — 10.1.3.29. Не забудьте указать адрес своего сервера.

Сходим теперь на zabbix-server и убедимся, что мы через него можем забирать информацию с mikrotik по snmp. Для этого подключимся к нему по ssh и воспользуемся утилитой snmpwalk. Если у вас ее нет, то поставить можно командой:

# yum install net-snmp-utils

1 # yum install net-snmp-utils

Подключаемся к микротику по snmp.

# snmpwalk -v 2c -c public 10.1.3.111

1 # snmpwalk -v 2c -c public 10.1.3.111

Подключаемся к микротику по snmp.

Получите кучу значений в консоли. Если хотите удобно их просмотреть, направьте вывод команды в файл и почитайте его. Если подключение прошло успешно, то переходим в Web интерфейс Zabbix сервера.

Здесь нам нужно будет добавить несколько шаблонов. Для начала загрузите вот этот пак шаблонов — https://share.zabbix.com/official-templates/template-modules-pack и установите несколько штук из него:

  • template_module_generic_snmp_SNMPv2_EN.xml
  • template_module_interfaces_SNMPv2_EN.xml
  • 00template_module_icmp_ping__EN.xml

Вроде все. Но если вдруг чего-то будет не хватать, то при установке основного шаблона, он вам скажет об этом. Загружаем основной шаблон отсюда — https://share.zabbix.com/network_devices/mikrotik/template-net-mikrotik-snmpv2 и устанавливаем на сервер мониторинга

Обратите внимание на вкладку Макросы в шаблоне. Там указаны дефолтные значения, которые используются в триггерах

Лично я немного поднял пороговые значения по температуре.

Теперь нам нужно добавить в систему само устройство Mikrotik. Делаем это как обычно, не забывая указать snmp интерфейс.

И не забудьте ему подключить шаблон Template Net Mikrotik SNMPv2. После этого можно идти в Lates Data и проверять поступление информации с устройства в систему мониторинга.

Часть данных увидите сразу, а та, что поступает через правила автообнаружения, появится позже. Надо подождать. После того, как отработают все правила автообнаружения, рекомендую сходить на хост и поотключать то, что вам не нужно. К примеру, если у вас настроен capsman, то в мониторинг с мастера попадут интерфейсы cap, которые отключаются, если к точке нет подключенных клиентов по wifi. В итоге будет ненужный спам от мониторинга с точек.

На этом по мониторингу базовых метрик в микротике все. Теперь займемся уведомлениями о подключениях к устройствам через Winbox.

Мониторинг подключений (авторизаций) в Mikrotik

Логи с устройств мы собрали в одном месте. Теперь будем их анализировать и отправлять уведомления при каждом подключении к Mikrotik через Winbox. Я для этого сделал отдельный шаблон, где созданы элементы данных типа Журнал (лог) для анализа лог файла от каждого устройства.

Для каждого элемента данных есть триггер, который с помощью регулярного выражения анализирует лог файл и срабатывает тогда, когда видит строки с подключением к микротику через winbox. Имя триггера формируется таким образом, чтобы в нем была информация об имени пользователя и ip адрес, с которого он подключился.

Я не стал делать в шаблоне автообнаружение. Настраивал это в системах до 10-ти точек и мне банально было лень это делать, хотя и не сложно. Я просто копировал и исправлял итемы и триггеры, меняя ip адреса устройств. Для автообнаружения надо скрипт на сервер класть, который будет передавать список логов в мониторинг. А если руками делать, то можно все на сервере в шаблоне добавлять.

Итак, создаем простой итем.

К итему делаем триггер.

Вот и все. Прикрепляйте шаблон к хосту, на котором находится сам лог файл и проверяйте. В первую очередь смотрите, чтобы в Latest Data появилось содержимое лога.

Если триггеры настроены правильно, то при каждом подключении по Winbox вы будете получать уведомление на почту.

И еще одно после отключения.

Такой несложный механизм мониторинга за подключениями. Я отслеживаю именно подключения по winbox. Вы можете это изменить, добавив и другие типы подключения. Для этого надо изменить регулярное выражение в триггере.

Пример моего шаблона с двумя микротиками — zabbix-mikrotik-logs.xml. Если у вас много устройств, настройте автообнаружение лог файлов, чтобы автоматически создавать итемы и триггеры. Пример настройки автообнаружения в Zabbix можете посмотреть на примере мониторинга openvpn подключений. Там как раз показан очень похожий пример, когда анализируется список файлов в директории и передается в zabbix server.

На этом по мониторингу микротиков в Zabbix у меня все. По идее, рассмотрел все актуальные задачи по этой теме.

Отправка логов Mikrotik в syslog

Первым делом настроим сбор логов с микротиков на любой syslog сервер. В моем случае это будет сам сервер мониторинга на базе rsyslog и centos 7, но это не принципиально. Главное, чтобы на нем был zabbix-agent, который будет отправлять логи микротиков на заббикс сервер.

Для этого в rsyslog включим возможность слушать udp port 514. Открываем конфиг /etc/rsyslog.conf и раскомментируем там строки:

$ModLoad imudp
$UDPServerRun
514

1
2

$ModLoad imudp

$UDPServerRun514

Дальше в этом же файле в самом начале перечисления правил, добавляем свое.

$template FILENAME,»/var/log/mikrotik/%fromhost-ip%.log»
if $fromhost-ip != ‘127.0.0.1’ then ?FILENAME
& stop

1
2
3

$template FILENAME,»/var/log/mikrotik/%fromhost-ip%.log»

if$fromhost-ip!=’127.0.0.1’then?FILENAME

&stop

Данное правило будет автоматически раскладывать все логи с удаленных устройств по файлам в директории /var/log/mikrotik с именами в виде IP адресов. При этом не будет создан лог 127.0.0.1.log, куда бы складывались все локальные лог файлы. В своей предыдущей статье я не учитывал этот нюанс, что приводило к дублированию всех локальных логов. Сейчас я это исправляю.

Сразу же настроим ротацию лог файлов, чтобы они не забили нам весь диск. Для этого создаем конфиг для logrotate в файле /etc/logrotate.d/mikrotik примерно следующего содержания:

/var/log/mikrotik/*.log {
weekly
rotate 12
compress
olddir /var/log/mikrotik/old
missingok
notifempty
create 0640 root zabbix
}

1
2
3
4
5
6
7
8
9

varlogmikrotik*.log{

weekly

rotate12

compress

olddirvarlogmikrotikold

missingok

notifempty

create0640root zabbix

}

Я ротирую файлы логов раз в неделю, сразу сжимаю и кладу их в директорию /var/log/mikrotik/old, где будут храниться 12 последних версий файла.

Не забудьте создать указанные директории и дать пользователю zabbix права на чтение. Потом проследите, чтобы у самих логов тоже были права на чтение для zabbix

Это важно, так как агент должен их читать

После завершения настройки, надо перезапустить rsyslog.

# systemctl restart rsyslog

1 # systemctl restart rsyslog

Отправляемся на Mikrotik и настраиваем отправку логов на наш syslog сервер. Для этого переходите в раздел System -> Logging -> Actions и добавляйте новое действие.

Дальше открывайте вкладку Rules и добавляйте темы логов, которые вы будете отправлять в Zabbix. Для мониторинга за логинами достаточно темы System.

Чтобы проверить отправку логов, достаточно тут же в Mikrotik открыть новый терминал. Создастся событие в логе, который улетит на удаленный сервер. На сервере с rsyslog будет создан лог файл с содержимым.

Если у вас так же, можно двигаться дальше. Если же логи не поступают на syslog сервер, разбирайтесь в чем может быть причина. Первым делом проверьте настройки firewall. Убедитесь, что доступ к udp порту 514 есть. Дальше проверьте, что ваш rsyslog сервер реально слушает этот порт.

Шаг 11 — Защита Zabbix (опционально)

Мой Zabbix сервер имеет реальный IP и значит его видит весь мир. Разрешим доступ к веб интерфейсу только с определённых доверенных IP. В мой конфигурации я использую Apache/2.4.41 и буду использовать директиву Require ip. Если вы используете другой веб- сервер, вам следует изучить документации того веб сервера, который используете.

В конфигурационном файле Zabbix для Apache2 /etc/apache2/conf-enabled/zabbix.conf добавим директиву Require ip с вашим IP:

<Directory "/usr/share/zabbix">
Require ip x.x.x.x

FAQ Zabbix для версии < 5

  • SNMP

  • Automated backup of Zabbix configuration (MySQL) сохранение настроек, без истории
  • Zabbix, OpenVPN, D-Link DAP-2360

  • Zabbix templates, modules & more

  • Zabbix Notifier add-on for Chrome
  • Zabbix Alert Check Extension add-on for Chrome
  • Простые проверки: ping

  • Веб-мониторинг. Доступность веб-сайтов

  • Низкоуровневое обнаружение обнаружение файловых систем; обнаружение сетевых интерфейсов; обнаружение CPU
  • Мониторинг Mikrotik в Zabbix

  • Если вы хотите изменить параметр SNMP community, то это можно сделать прямо в Zabbix: зайдите в шаблон в Configuration → Templates , в Items выделите нужные элементы галочками и внизу выберите из выпадающего списка Mass update. Или для любого устройства Host→Macros, где можно переопределить любую переменную в том числе и {$SNMP_COMMUNITY} (Пользовательские макросы).
  • Ошибка: Zabbix proxy poller processes more than 75% busy
    # nano /etc/zabbix/zabbix_server.conf
    StartPollers=20
  • Ошибка: Zabbix icmp pinger processes more than 75% busy
    # nano /etc/zabbix/zabbix_server.conf
    StartPingers=10
    StartDiscoverers=10
  • Ошибка: Zabbix unreachable poller processes more than 75% busy
    # nano /etc/zabbix/zabbix_server.conf
    StartPollersUnreachable=10

Алгоритм настройки Zabbix сервера

Первоначальная настройка:

  1. сменить шаблон для localhost’а на Template_FreeBSD (или просто отцепить шаблон)
  2. активировать мониторинг localhost’а
  3. создать нужные “Элементы данных” (items)
  4. создать на них триггеры
  5. настройки отправку сообщений по триггерам

Настройка нового шаблона:

  1. полностью клонировать из стандартного (или создать новый) шаблона
  2. удалить (добавить) необходимые элементы данных и графики. Например, можно смело удалить для всех templates серверов элемент «Number of running processes zabbix_server» кроме шаблона для localhost

Zabbix и оборудование

Мониторинг температуры с помощью NetPing TS v2 и Zabbix

Настройка и использование SSH проверки используются для безагентного мониторинга

Обратите внимание, что Zabbix агент не требуется для проверок по SSH.

Zabbix и PostgreSql

Zabbix мониторинг сервера баз данных PostgreSQL версии 8.4.9.

  • Zabbix PostgreSQL UserParameters

  • PostgreSQL 8.4.11 Documentation

  • Template Postgres. Указываем согласно руководству вместо тестовой БД «neiron» собственную. И создадим суперпользователя zabbix
    sudo -u postgres createuser zabbix
    Shall the new role be a superuser? (y/n) y

Заключение

Мониторинг smart значений жесткого диска достаточно полезная штука, но не стоит ей слепо доверять. У меня были ситуации, когда диски с Bad Sector Count работали годами

Тут важно смотреть на динамику и на статус сервера. Если он критичный, то при малейших признаках неисправности, я бы менял диск

Если это обычая файлопомойка с рейдом, то если диск не деградирует со временем, можно его не трогать.

Еще важный нюанс — подобный мониторинг жестких дисков возможен только если вы не используете raid контроллер. Если же он у вас есть, то чаще всего вы не сможете увидеть параметры smart дисков. Нужно будет использовать утилиты производителя raid контроллера и настраивать мониторинг через них.

Онлайн курс Infrastructure as a code

Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.

Что даст вам этот курс:

  • Познакомитесь с Terraform.
  • Изучите систему управления конфигурацией Ansible.
  • Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
  • Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
  • В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins

Смотрите подробнее программу по .

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: