Мониторинг является необходимой частью администрирования любой сколько-нибудь серьезной ИТ системы. Благодаря мониторингу мы можем не только узнавать о проблемах и сбоях в работе системы, но также и узнавать о возможных проблемах в работе целевых систем еще до того, как что-то произошло. Так, например, благодаря мониторингу мы можем видеть узкие места в работе сетевого оборудования, утечки памяти или сбои на жестких дисках. Таким образом, средства мониторинга нужны любой системе, в том числе и 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. Мы разберем, что такое процесс и программа, а также познакомимся с системными вызовами для создания процесса.

Комментарии (1)


  1. evr1ka
    15.06.2023 05:54

    Что значит мониторинг? Будет видна нагрузка на сервис? Или какие-то критические моменты? Security issue? А в целом интересно, надо попробовать