Настройка мониторинга в реальном времени с помощью «Ganglia» для сетей и кластеров Linux-серверов
С тех пор, как системные администраторы стали отвечать за управление серверами и группами компьютеров, такие инструменты, как мониторинг приложений, стали их лучшими друзьями. Вероятно, вы знакомы с такими инструментами, как Nagios, Zabbix, Icinga и Centreon. Несмотря на то, что это тяжеловесы мониторинга, их настройка и полное использование их функций может быть несколько затруднено для новых пользователей.
В этой статье мы познакомим вас с Ganglia, системой мониторинга, которая легко масштабируется и позволяет просматривать широкий спектр системных показателей серверов и кластеров Linux (а также графики) в режиме реального времени.
Ganglia позволяет настраивать сетки (местоположения) и кластеры (группы серверов) для лучшей организации.
Таким образом, вы можете создать сетку, состоящую из всех машин в удаленной среде, а затем сгруппировать эти машины в более мелкие наборы на основе других критериев.
Кроме того, веб-интерфейс Ganglia оптимизирован для мобильных устройств, а также позволяет экспортировать данные в форматах .csv
и .json
.
Наша тестовая среда будет состоять из центрального сервера CentOS 7 (IP-адрес 192.168.0.29), на котором мы установим Ganglia, и Машина с Ubuntu 14.04 (192.168.0.32), компьютер, который мы хотим отслеживать через веб-интерфейс Ganglia.
В этом руководстве мы будем называть систему CentOS 7 главным узлом, а систему Ubuntu – контролируемым компьютером.
Установка и настройка Ganglia
Чтобы установить утилиты мониторинга на главном узле, выполните следующие действия:
1. Включите репозиторий EPEL, а затем установите оттуда Ganglia и связанные с ним утилиты:
yum update && yum install epel-release
yum install ganglia rrdtool ganglia-gmetad ganglia-gmond ganglia-web
Пакеты, установленные на предыдущем шаге, вместе с Ganglia, самим приложением, выполняют следующие функции:
rrdtool
, база данных циклического перебора, — это инструмент, используемый для хранения и отображения изменений данных с течением времени с помощью графиков.ganglia-gmetad
— это демон, который собирает данные мониторинга с хостов, которые вы хотите отслеживать. На этих хостах и в главном узле также необходимо установить ganglia-gmond (сам демон мониторинга):ganglia-web
предоставляет веб-интерфейс, где мы можем просматривать исторические графики и данные об отслеживаемых системах.
2. Настройте аутентификацию для веб-интерфейса Ganglia (/usr/share/ganglia). Мы будем использовать базовую аутентификацию, предоставляемую Apache.
Если вы хотите изучить более продвинутые механизмы безопасности, обратитесь к разделу «Авторизация и аутентификация» документации Apache.
Для достижения этой цели создайте имя пользователя и назначьте пароль для доступа к ресурсу, защищенному Apache. В этом примере мы создадим имя пользователя с именем adminganglia
и назначим пароль по нашему выбору, который будет храниться в /etc/httpd/auth.basic (не стесняйтесь выберите другой каталог и/или имя файла — если у Apache есть права на чтение этих ресурсов, все будет в порядке):
htpasswd -c /etc/httpd/auth.basic adminganglia
Прежде чем продолжить, дважды введите пароль для adminganglia.
3. Измените /etc/httpd/conf.d/ganglia.conf следующим образом:
Alias /ganglia /usr/share/ganglia
<Location /ganglia>
AuthType basic
AuthName "Ganglia web UI"
AuthBasicProvider file
AuthUserFile "/etc/httpd/auth.basic"
Require user adminganglia
</Location>
4. Отредактируйте /etc/ganglia/gmetad.conf:
Сначала используйте директиву Gridname, за которой следует описательное имя сетки, которую вы настраиваете:
gridname "Home office"
Затем используйте data_source, за которым следует описательное имя кластера (группы серверов), интервал опроса в секундах и IP-адрес главного и отслеживаемого узлов:
data_source "Labs" 60 192.168.0.29:8649 # Master node
data_source "Labs" 60 192.168.0.32 # Monitored node
5. Отредактируйте /etc/ganglia/gmond.conf.
a) Убедитесь, что блок кластера выглядит следующим образом:
cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
b) В блоке udp_send_chanel закомментируйте директиву mcast_join:
udp_send_channel {
#mcast_join = 239.2.11.71
host = localhost
port = 8649
ttl = 1
}
c) Наконец, закомментируйте директивы mcast_join и привязки в блоке udp_recv_channel:
udp_recv_channel {
#mcast_join = 239.2.11.71 ## comment out
port = 8649
#bind = 239.2.11.71 ## comment out
}
Сохраните изменения и выйдите.
6. Откройте порт 8649/udp и разрешите PHP-скриптам (запускаемым через Apache) подключаться к сети, используя необходимое логическое значение SELinux:
firewall-cmd --add-port=8649/udp
firewall-cmd --add-port=8649/udp --permanent
setsebool -P httpd_can_network_connect 1
7. Перезапустите Apache, gmetad и gmond. Также убедитесь, что им разрешен запуск при загрузке:
systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd
На этом этапе вы сможете открыть веб-интерфейс Ganglia по адресу http://192.168.0.29/ganglia
и войти в систему, используя учетные данные из #Step 2.
8. На хосте Ubuntu мы установим только ganglia-monitor, эквивалент Ganglia-gmond в CentOS:
sudo aptitude update && aptitude install ganglia-monitor
9. Отредактируйте файл /etc/ganglia/gmond.conf в отслеживаемом окне. Он должен быть идентичен тому же файлу в главном узле, за исключением того, что закомментированные строки в кластере, udp_send_channel и udp_recv_channel должен быть включен:
cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
udp_send_channel {
mcast_join = 239.2.11.71
host = localhost
port = 8649
ttl = 1
}
udp_recv_channel {
mcast_join = 239.2.11.71 ## comment out
port = 8649
bind = 239.2.11.71 ## comment out
}
Затем перезапустите службу:
sudo service ganglia-monitor restart
10. Обновите веб-интерфейс, и вы сможете просматривать статистику и графики для обоих хостов внутри сетки домашнего офиса/кластера лабораторий ( используйте раскрывающееся меню рядом с Сетка домашнего офиса, чтобы выбрать кластер, в нашем случае Лаборатории):
С помощью вкладок меню (выделенных выше) вы можете получить доступ к множеству интересной информации о каждом сервере индивидуально и в группах. Вы даже можете сравнить статистику всех серверов в кластере, используя вкладку «Сравнить хосты».
Просто выберите группу серверов, используя регулярное выражение, и вы сможете быстро сравнить их производительность:
Одна из функций, которые лично мне кажутся наиболее привлекательными, — это сводка, адаптированная для мобильных устройств, доступ к которой можно получить на вкладке Мобильные устройства. Выберите интересующий вас кластер, а затем отдельный хост:
Краткое содержание
В этой статье мы представили Ganglia, мощное и масштабируемое решение для мониторинга сетей и кластеров серверов. Не стесняйтесь устанавливать, исследовать и экспериментировать с Ganglia сколько угодно (кстати, вы даже можете опробовать Ganglia в демо-версии, представленной на официальном сайте проекта.
Занимаясь этим, вы также обнаружите, что несколько известных компаний, как работающих в сфере ИТ, так и не использующих Ganglia. Для этого есть множество веских причин, помимо тех, о которых мы рассказали в этой статье: простота использования и графики вместе со статистикой (приятно указать на имя, не так ли?), вероятно, находятся на вершине.
Но не верьте нам на слово, попробуйте сами и не стесняйтесь писать нам, используя форму комментариев ниже, если у вас есть какие-либо вопросы.