Munin - Это мощная клиент-серверная система мониторинга параметров серверов. Главный сервер munin запускается по cron и опрашивает munin-node сервера собирая с них данные и рисует красивые и наглядные графики. На munin-node серверах демон при подключении главного сервера запускает скрипты плагинов из /etc/munin/plugins/. Плагинов в стандартной установке большое количество. Можно написать и свои.
Установка
Приведу пример установки клиента и сервера для CentOS/RHEL. Для Debian/Ubuntu всё почти аналогично. Для начала установим главный сервер:
# yum install munin munin-node
Для клиентов необходим только munin-node:
# yum install munin-node
Настройка
Главный файл настройки сервера Munin /etc/munin/munin.conf. В нём необходимо прописать клиентов:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Для настройки клиентов нам необходимо подправить /etc/munin/munin-node.conf:
1 2 3 4 5 6 7 |
|
Теперь включим парочку дополнительных плагинов:
ln -s /usr/share/munin/plugins/acpi /etc/munin/plugins/
ln -s /usr/share/munin/plugins/iostat /etc/munin/plugins/
ln -s /usr/share/munin/plugins/iostat_ios /etc/munin/plugins/
Как видно из примера плагины подключаются созданием симлинка в /etc/munin/plugins/
Подключение плагинов для MongoDB
Плагины для MongoDB не идут в стандартной поставке, но их не сложно установить.
# wget https://github.com/erh/mongo-munin/archive/master.zip -O /tmp/mongo-munin.zip
# unzip /tmp/mongo-munin.zip /tmp/
# mkdir -p /usr/local/share/munin/plugins
# cp /tmp/mongo-munin-master/mongo_* /usr/local/share/munin/plugins/
# ln -s /usr/local/share/munin/plugins/mongo_btree /etc/munin/plugins/
# ln -s /usr/local/share/munin/plugins/mongo_conn /etc/munin/plugins/
# ln -s /usr/local/share/munin/plugins/mongo_lock /etc/munin/plugins/
# ln -s /usr/local/share/munin/plugins/mongo_mem /etc/munin/plugins/
# ln -s /usr/local/share/munin/plugins/mongo_ops /etc/munin/plugins/
Не забываем перезагружать munin после правки конфигов и добавления/удаления плагинов.
# /etc/init.d/munin-node restart
Можно проверить просто запустив один из скриптов. Первоначально у меня они не отрабатывали:
# /usr/local/share/munin/plugins/mongo_btree
...
File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.6/json/decoder.py", line 338, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Подравив в скрипте вывод значения я выяснил в чём проблема…
# vim /usr/local/share/munin/plugins/mongo_btree
1 2 3 |
|
# /usr/local/share/munin/plugins/mongo_btree
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
....
Сново правим скрипт не забыв удалить добавленную строчку на прошлом этапе.
1
|
|
Теперь всё в порядке.
# /usr/local/share/munin/plugins/mongo_btree
missRatio.value 0
resets.value 0
hits.value 23325605
misses.value 46
accesses.value 23325651
Не забываем сделать соответствующие поправки в остальных скриптах mongo_
Подключение плагинов для MySQL
В стандартной поставке есть плагины для mysql, если нужно, подключаем и их:
# ln -s /usr/share/munin/plugins/mysql_* /etc/munin/plugins
Для их работы необходимы дополнительные пакеты для perl:
# yum install perl-Cache-Cache perl-DBD-MySQL perl-IPC-ShareLite
Если ещё чего не хватит, то это легко выяснить чтением логов /var/log/munin-node/munin-node.log. Создаём в mysql пользователя для munin:
# mysql -u root -p -e 'create user munin'
Подправим файл /etc/munin/plugin-conf.d/munin-node:
[mysql*]
user root
env.mysqlopts --defaults-file=/etc/mysql/my.cnf
env.mysqluser munin
Добавление в автозагрузку
Добавить в автозагрузку не сложно. Необходимо выполнить на каждом сервере:
# chkconfig --add munin-node
# chkconfig munin-node on
Проверяем:
# chkconfig --list munin-node
munin-node 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Использование.
На главном сервере Munin необходим Web сервер. В файле /etc/munin/munin.conf прописывается куда будут генерироваться итоговые .html Например для стандартных настроек достаточно просто в браузере перейти на ip адресс главного сервера munin: http://172.16.0.10/munin