Я запускаю 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, что предотвращает использование многоадресной рассылки в своей сети. Возможное решение - переключиться в одноадресный режим, который, к счастью, работает.
Чтобы быть очень кратким, ниже приведены простые шаги, чтобы избавиться от режима многоадресной рассылки.
Пример: есть 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, который не поддерживает многоадресную рассылку.