Мониторинг является необходимой частью администрирования любой сколько-нибудь серьезной ИТ системы. Благодаря мониторингу мы можем не только узнавать о проблемах и сбоях в работе системы, но также и узнавать о возможных проблемах в работе целевых систем еще до того, как что-то произошло. Так, например, благодаря мониторингу мы можем видеть узкие места в работе сетевого оборудования, утечки памяти или сбои на жестких дисках. Таким образом, средства мониторинга нужны любой системе, в том числе и LDAP.
Мониторинг системы LDAP обеспечивает доступность и оперативность мониторинга служб каталогов, позволяя администратору LDAP оперативно реагировать на любые инциденты с компонентами LDAP.
Если в Active Directory есть собственные средства для мониторинга (их не/достаточность для эффективной работы это тема отдельного разговора), то для LDAP под Linux, о котором мы говорили в предыдущих статьях лучше использовать сторонние средства мониторинга. Об одном из таких средств и пойдет разговор далее.
Munin
Существует множество различных решений для мониторинга. В этой статье для мониторинга LDAP я буду использовать инструмент Munin. Данное средство работает через веб-интерфейс. По заверению авторов, акцент при разработке был сделан на использование принципа Plug and Play. То есть, после завершения установки большое количество плагинов для мониторинга будет запущено без дополнительных усилий.
Используя Munin, вы можете легко отслеживать производительность ваших компьютеров, сетей, SAN, приложений, и т. д. Это позволяет легко определить, "что изменилось сегодня", когда возникает проблема с производительностью, а также позволяет увидеть, как вы справляетесь с работой любых ресурсов.
Munin имеет архитектуру master/node, в которой master подключается ко всем узлам через регулярные промежутки времени и запрашивает у них данные. Затем он сохраняет данные в файлах и (при необходимости) обновляет графики, построенные в браузере.
Плагины в Munin это небольшие автономные исполняемые файлы. Они просты в написании и могут быть написаны на любом языке.
Установка и базовая настройка Munin
Процесс установки данного решения под Ubuntu довольно прост. Сначала установим и настроим node:
apt install munin-node
После установки нам необходимо внести правки в конфигурационный файл /etc/munin/munin-node.conf. В нем нам необходимо указать желаемое имя хоста, которое вы хотите видеть в окне мониторинга. Если это имя не указать, то будет использоваться стандартный хостнейм для данной машины. Возможно, стандартный хостнейм вас не слишком устраивает и хочется, чтобы отображаемое в консоли munin имя было более информативным. Для изменения имени находим в файле параметр host_name и меняем его значение на нужное:
host_name my_server.example.com
Теперь разрешим нашему master (192.168.222.50) подключаться к данной ноде, это можно сделать двумя разными способами:
cidr_allow 192.168.222.50/32
С помощью этой команды мы разрешили доступ для узла 192.168.222.50, хотя, если указать не /32 маску, а меньшую, то можно с помощью этой команды разрешить доступ для узлов в подсети. Но, даже если мы разрешаем доступ только для одного узла, указание маски /32 обязательно.
Также, разрешения можно указать через директиву allow, которая предполагает regex-формат записи:
allow ^192\.168\.222\.50$
На этом настройки ноды закончены, сохраняем конфигурационный файл и перезапускаем службу.
systemctl restart munin-node
Теперь настроим master. Здесь все не сильно сложнее. Установка:
apt install munin
Затем также открываем файл конфигурации /etc/munin/munin.conf и добавляем туда секцию с описанием ноды:
[my_server.example.com]
address 192.168.233.191
use_node_name yes
В квадратных скобках нам необходимо указать то имя ноды, которое мы указывали ранее в конфигурационном файле. Если мы ничего не указывали, то здесь пишем хостнейм ноды. Если вообще не хотим использовать имя, а хотим подключаться по IP адресу, то указываем:
use_node_name no
По настройке самого Munin это все. Но теперь нам необходимо настроить веб сервер. Можно использовать различные варианты, но я опишу настройку Nginx.
Установим Nginx и необходимые для работы утилиты:
apt install nginx spawn-fcgi apache2-utils
Теперь создадим сокет для FastCGI приложения munin, которое понадобится нам чтобы масштабировать изображения:
spawn-fcgi -s /var/run/munin/fcgi-graph.sock -U www-data -u www-data -g www-data /usr/lib/munin/cgi/munin-cgi-graph
Далее нам необходимо подготовить файл виртуального хоста для Munin:
nano /etc/nginx/sites-available/munin.conf
Содержимое файла будет следующее:
server {
listen 80;
index index.html;
access_log /var/log/nginx/munin_access.log;
error_log /var/log/nginx/munin_error.log;
location = / {
rewrite ^/$ munin/ redirect; break;
}
location /munin/static/ {
alias /etc/munin/static/;
expires modified +1w;
}
location /munin/ {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
alias /var/cache/munin/www/;
expires modified +310s;
}
location ^~ /munin-cgi/munin-cgi-graph/ {
access_log off;
fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/munin/fcgi-graph.sock;
include fastcgi_params;
}
}
Теперь настроим аутентификацию для доступа к сайту, для этого используем команду:
htpasswd -c /etc/nginx/htpasswd otus
Ключ -с предписывает создать новый файл, otus - имя желаемого пользователя, для всех следующих пользователей команду следует запускать без ключа:
Далее включим наши виртуальный хост:
ln -s /etc/nginx/sites-available/munin.conf /etc/nginx/sites-enabled/
Если Munin является единственным виртуальным хостом, то отключим виртуальный хост по умолчанию:
rm /etc/nginx/sites-enabled/default
Далее нам остается только проверить конфигурацию на ошибки с помощью:
nginx -t
И перезапустить веб-сервер:
nginx -s reload
Для проверки можно зайти через браузер и посмотреть, какие данные собирает Munin.
Настраиваем LDAP
Разобравшись с установкой и настройкой Munin перейдем к настройке мониторинга LDAP. Сначала нам нужно включить мониторинг в LDAP:
cat <<EOF | ldapmodify -Y EXTERNAL -H ldapi:///
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: {2}back_monitor.la
EOF
Далее необходимо убедиться, что {2} является подходящим следующим элементом для загрузки старого модуля. Вы можете проверить это, следующим образом:
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=module{0},cn=config
Теперь создайте пользователя с доступом к информации мониторинга:
cat <<EOF | ldapadd -H ldapi:/// -D cn=admin,dc=nodomain -w h.TDVyELBjm0g
dn: cn=monitor,dc=nodomain
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: monitor
description: LDAP monitor
userPassword: cA.5rMfzHw9vw
EOF
И в завершении нам необходимо настроить базу данных мониторинга:
cat <<EOF | ldapadd -Y EXTERNAL -H ldapi:///
dn: olcDatabase={2}Monitor,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMonitorConfig
olcDatabase: {2}Monitor
olcAccess: {0}to dn.subtree="cn=Monitor"
by dn.base="cn=monitor,dc=nodomain" read by * none
EOF
Теперь модуль мониторинга должен быть активен, и вы можете протестировать его с помощью команды:
ldapsearch -D cn=monitor,dc=nodomain -w cA.5rMfzHw9vw -H ldapi:/// -b cn=Monitor
Настройка мониторинга в Munin
В Ubuntu вы можете установить Munin и необходимые пакеты для мониторинга LDAP с помощью:
apt-get install munin-node libnet-ldap-perl
Далее внесем правки в файл /etc/munin/plugin-conf.d/munin-node и добавим следующее:
[slapd_*]
env.server 127.0.0.1
env.binddn cn=monitor,dc=nodomain
env.bindpw cA.5rMfzHw9vw
В случае, если в процессе установки плагина для Munin не были созданы необходимые символические ссылки, их можно создать самостоятельно с помощью следующих команд:
ln -s /usr/share/munin/plugins/slapd_ slapd_statistics_bytes
ln -s /usr/share/munin/plugins/slapd_ slapd_statistics_pdu
ln -s /usr/share/munin/plugins/slapd_ slapd_statistics_referrals
ln -s /usr/share/munin/plugins/slapd_ slapd_operations_diff
ln -s /usr/share/munin/plugins/slapd_ slapd_statistics_entries
ln -s /usr/share/munin/plugins/slapd_ slapd_connections
ln -s /usr/share/munin/plugins/slapd_ slapd_waiters
ln -s /usr/share/munin/plugins/slapd_ slapd_operations
Затем перезапускаем сервис:
service munin-node restart
Заключение
В этой статье мы рассмотрели настройку системы мониторинга Munin и подключение LDAP в качестве источника данных.
Напоследок хочу порекомендовать вам бесплатный вебинар, в рамках которого поговорим про процессы в Linux. Мы разберем, что такое процесс и программа, а также познакомимся с системными вызовами для создания процесса.
evr1ka
Что значит мониторинг? Будет видна нагрузка на сервис? Или какие-то критические моменты? Security issue? А в целом интересно, надо попробовать