SNMP мониторинг MySQL

// Июнь 8th, 2016 // MySQL

snmp-smallВ этом посте я расcкажу, как можно мониторить хост с БД MySQL через SNMP. В качестве ПО для мониторинга будем использовать The Dude. Это софт от разработчиков роутеров Microtic, который зарекомендовал себя очень хорошо. Особенно примечательно в нем то, что там используется минимум сторонних библиотек, из-за чего он может похвастаться минимальным размером.

Будем считать, что сервер и клиент mysql уже установлен. Теперь приступим к установке агента.

Установка mysq-snmp

Ставим зависимости

sudo apt-get install libmath-bigint-gmp-perl libunix-syslog-perl libnet-snmp-perl libsnmp-perl snmp-mibs-downloader

Качаем mib-ы

sudo /usr/bin/download-mibs

Теперь ставим сам mysql-snmp

git clone https://github.com/masterzen/mysql-snmp ./mysql-snmp
cd ./mysql-snmp
sudo dpkg-buildpackage -rfakeroot -uc -b
sudo make install

Perl-скрипт демона устанавливается в /usr/sbin/mysql-snmp. Вот информация о том, что куда ставится:

andrey@srv:~/mysql-snmp$ sudo make install
install -m 755 mysql-snmp /usr/sbin/mysql-snmp
install -m 644 MYSQL-SERVER-MIB.txt /usr/share/snmp/mibs
install -m 644 mysql-snmp.1 /usr/share/man/man1
gzip /usr/share/man/man1/mysql-snmp.1

Копируем файл из дистрибьютива mysql-snmp в файл /etc/snmp/mysql-snmp.cnf , чтобы агент (/usr/sbin/mysql-snmp смог подконнектиться к базе

sudo cp ./my.cnf /etc/snmp/mysql-snmp.cnf
sudo mcedit /etc/snmp/mysql-snmp.cnf

Добавляем в MySQL пользователя для mysql-snmp (хост прописываем localhost) и прописываем его в этом конфиге.

[client]
host=localhost
#port=3306
user=mysqlsnmp
password=mysqlsnmppass

Создаём файл /etc/init.d/mysql-snmp. Содержимое берем отсюда: https://gist.github.com/bugcy013/bde864a26f81e8b52e6e или из дистрибьютива mysql-snmp

wget https://gist.githubusercontent.com/bugcy013/bde864a26f81e8b52e6e/raw/a1a6d575e7ea19424b765ca8a0b48bc04b3d871f/mysql-snmp%2520upstart 
sudo cp ./mysql-snmp%20upstart /etc/init.d/mysql-snmp
sudo chmod +x /etc/init.d/mysql-snmp

Прописываем там путь до конфига /etc/snmp/mysql-snmp.cnf

sudo mcedit /etc/init.d/mysql-snmp

В файл /etc/snmp/snmpd.conf добавляем строчку

master agentx

Тестируем snmp-агента

sudo /usr/sbin/mysql-snmp

Включаем автозагрузку;

sudo update-rc.d mysql-snmp defaults

Запускаем:

/etc/init.d/mysql-snmp start

Смотрим /var/log/syslog, что запускается без ошибок

Apr 5 01:32:41 mysql snmpd[31694]: Turning on AgentX master support.
Apr 5 01:32:41 mysql systemd[1]: Started LSB: SNMP agents.
Apr 5 01:32:41 mysql snmpd[31696]: NET-SNMP version 5.7.3

Тестируем выдачу oid-ов локально.

snmpwalk -m MYSQL-SERVER-MIB -v 2c -c public localhost enterprises.20267

Теперь надо добавить mib-ы mysql в Dude. Для этого на левой панели ищем группу Mib notes, открываем и видим там mib-файлы. Добавляем туда файл https://github.com/masterzen/mysql-snmp/blob/master/MYSQL-SERVER-MIB.txt и после этого делаем snmpwalk из Dude. По окончании в выпадающем списке справа будут MIB-ы в группе MYSQL-SERVER-MIB. У меня их оказалось 150 штук.

dude-mysql

Ссылки

http://ubuntuforums.org/showthread.php?t=2177741
http://fsm-software-ba.com/downloads/Application-MySQL-Install-Doc.pdf
https://gist.github.com/bugcy013/bde864a26f81e8b52e6e
https://github.com/masterzen/mysql-snmp/blob/master/MYSQL-SERVER-MIB.txt

Share

Спасибо!


Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:


Комментировать