Назад | Перейти на главную страницу

Ганглии без многоадресной рассылки

Я запускаю Ganglia 3.1.2 в сети, в которой нет многоадресной рассылки (и я не могу ее включить). Есть ли у кого-нибудь изящное решение для правильной работы ганглиев? Я нашел это:

http://code.google.com/p/ganglia-multicast-hack/

но он не очень хорошо масштабируется.

Прямо сейчас у меня есть отдельные строки data_source для каждого хоста в моей сети в моем файле gmetad.conf, но он тоже плохо масштабируется, и я не могу получить точную сводную статистику, потому что она продолжает перезаписывать rrds (хотя статистика хоста работают нормально).

Приветствуются любые указатели (или подтверждение того, что я уже нашел лучшее решение).

Спасибо!

После дальнейших исследований я нашел ответ. На своих клиентах я добавил в gmond.conf следующее:

udp_send_channel {
  host = monitoring-host
  port = 8666
  ttl = 1
}

udp_send_channel {
  host = monitoring-host-backup
  port = 8666
  ttl = 1
}

Это отправляет данные через одноадресный UDP на хост мониторинга и резервную копию каждые 1 секунду.

Затем на хосте мониторинга я добавил это:

udp_recv_channel {
  port = 8666
}

Ключ в том, чтобы избавиться от записи многоадресной рассылки, которая присутствует по умолчанию.

Столкнулся с той же проблемой с режимом многоадресной рассылки при настройке Ganglia в облаке Amazon EC2, что предотвращает использование многоадресной рассылки в своей сети. Возможное решение - переключиться в одноадресный режим, который, к счастью, работает.

Чтобы быть очень кратким, ниже приведены простые шаги, чтобы избавиться от режима многоадресной рассылки.

  1. Сделайте один из ваших узлов мастером, запустив демон gmond (сборщик данных ганглиев).

Пример: есть 10 узлов, на которых работает демон gmond. Выберите любой узел из 10 и сделайте этот Мастер, который будет получать все данные даже с 10 узлов, также должен быть самим подчиненным.

# Define the cluster.
cluster {
  name = "Yellow"
  owner = "Your Company"
  latlong = "N34.02 W118.45"
  url = "http://yourcompany.com/"
}

# Disable multicast and define the host, the yellow master, where nodes in the cluster send data.

udp_send_channel {
  # mcast_join = 239.2.11.71  (No need to join as mcast is not being used)
  host = master.among10node.com  (put the IP/Hostname of server from any 10 nodes to ack as                  master)
  port = 8649
  ttl = 1
}

udp_recv_channel {
  # mcast_join = 239.2.11.71   (Disabled mcast as it is not being used)
  port = 8649
  # bind = 239.2.11.71  (No need to bind as mcast is not being used)
} 

Примечание. Скопируйте одну и ту же конфигурацию на все 10 узлов, на которых работает демон gmond. Сначала перезапустите Мастер, затем все остальные. Надеюсь, что это сработает, и главный узел будет получать все данные с других узлов.

Теперь настройте демон консолидатора данных Ganglia (gmetad) для использования вашего главного узла в качестве основного источника данных.

Пример:

data_source "Yellow" master.among10node.com 

# default port is 8649, define here if you are using non default

Теперь перезапустите демон gmetad и позвольте магии начать.

Ура Мохд Мозаммил Хан

Это работает, но проблема в том, что все узлы окажутся в одном и том же источнике данных по умолчанию, поэтому информация об их кластере будет потеряна, что не очень хорошо для сред с несколькими кластерами.

Я еще не пробовал, но возможным обходным путем для этого было бы создание канала UDP для каждого кластера, что не так хорошо, если у вас их много.

Позже редактировать:

Моя текущая установка использует одноадресную передачу на уровне кластера из-за сетевых ограничений, и все данные отправляются на узел из каждого кластера. Затем я связываюсь с каждым из тех, кто использует метаданные, чтобы получить все данные об этом кластере.

Таким образом, кластеры будут назначены своим собственным источникам данных, и их полная информация будет там.

Конфигурация будет выглядеть так:

# on each node in the cluster
udp_send_channel {
  host = 1.2.3.4 # this is a member of the cluster, not a metad server
  port = 8650
}

Затем в метаданном:

data_source "My Cluster" 1.2.3.4

Для избыточности вы можете иметь несколько записей udp_send_channel и несколько IP-адресов, перечисленных в источнике данных. Лично я использую по два на каждый кластер.

Для федерации я использую что-то вроде этого:

data_source "My Grid" 1.2.3.5:8651

Это действительно только в том случае, если у вас есть метаданная, которая прослушивает порт 8651.

Смотрите также:

https://github.com/ganglia/monitor-core/tree/feature/cloud

Я установил его сегодня и заставил работать на EC2, который не поддерживает многоадресную рассылку.