Поиск по сайту:

Настройка мониторинга в реальном времени с помощью «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, самим приложением, выполняют следующие функции:

  1. rrdtool, база данных циклического перебора, — это инструмент, используемый для хранения и отображения изменений данных с течением времени с помощью графиков.
  2. ganglia-gmetad — это демон, который собирает данные мониторинга с хостов, которые вы хотите отслеживать. На этих хостах и в главном узле также необходимо установить ganglia-gmond (сам демон мониторинга):
  3. 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. Для этого есть множество веских причин, помимо тех, о которых мы рассказали в этой статье: простота использования и графики вместе со статистикой (приятно указать на имя, не так ли?), вероятно, находятся на вершине.

Но не верьте нам на слово, попробуйте сами и не стесняйтесь писать нам, используя форму комментариев ниже, если у вас есть какие-либо вопросы.