Ganglia Web не показывает статус других узлов, только показывает мета-узел. Возможные причины?
У меня есть 3 машины в моем кластере HDFS: pr2
это мета-узел, и pr1
а также pr3
другие 2 узла. Я хочу контролировать их с ganglia web
, С этой целью, Ganglia
(с обоими gmetad
а также gmond
) был установлен на все 3 узла, и ganglia web
был установлен на мета-узел, pr2
,
Я запускаю следующее:
На пр2:
service gmetad start
service gmond start
service httpd start
На pr1 и pr3:
service gmond start
Я ожидаю увидеть в ganglia web
информация обо всех 3 узлах. Но вот что я вижу:
Кажется, работает только 1 узел, который pr2
,
Что может быть причиной?
Я рассмотрел следующие возможности при настройке установки:
- В файле конфигурации gmond есть место для указания "хост-машины". Каким должен быть "хозяин" здесь? Например, для узла
pr1
Стоит ли это локальная машина (pr1
) или мета-узел (pr2
)? Я пытался с обоимиpr1
а такжеpr2
отдельно, и я до сих пор не вижу информации оpr1
или жеpr3
наganglia web
, Кроме того, мне нужно добавить что-нибудь еще в этом разделе?
[root@pr1]# nano /usr/local/etc/gmond.conf
/* The host section describes attributes of the host, like the location */
host {
location = "unspecified" ### Should I replace "unspecified" with pr2 (the meta node), or with pr1? ###
}
- Также в том же файле конфигурации есть раздел для настройки
udp_send_channels
, Есть параметрmcast_join
, который я думаю, чтобы указать мета-узел. Поэтому я изменил IP наpr2
, Но с тех порganglia web
не показывает информацию оpr1
а такжеpr3
Я попытался изменить его наpr1
а такжеpr3
соответственно, но безрезультатно.
[root@pr1]# nano /usr/local/etc/gmond.conf
udp_send_channel {
#bind_hostname = yes
mcast_join = 239.2.11.71 ### Should I change this IP to pr2 or pr1? ###
port = 8649
ttl = 1
}
- Опять же, в том же файле есть раздел для настройки
udp_recv_channel
, Я закомментировалmcast_join
а такжеbind
здесь, так как я думалpr1
а такжеpr3
узлам не нужно получать какую-либо информацию от чего-либо, им нужно только отправить информацию на мета-узел,pr2
, Я ошибся?
[root@pr1]# nano /usr/local/etc/gmond.conf
udp_recv_channel {
#mcast_join = 239.2.11.71
port = 8649
#bind = 239.2.11.71
retry_bind = true
# Size of the UDP buffer. If you are handling lots of metrics you really
# should bump it up to e.g. 10MB or even higher.
# buffer = 10485760
}
- Затем я запускаю следующий тест дыма:
gmond -d 5 -c /usr/local/etc/gmond.conf
и он возвращает следующее (показывая хвостовую часть длинного вывода):
...
...
Counting device /dev/mapper/centos-root (2.69 %)
Counting device /dev/mapper/centos-home (0.02 %)
Counting device /dev/sda1 (18.49 %)
For all disks: 206.174 GB total, 204.498 GB free for users.
metric 'part_max_used' has value_threshold 1.000000
sent message 'heartbeat' of length 48 with 0 errors
Processing a metric value message from pr1.embs
Got a heartbeat message 1511171541
Это означает, что gmond
работает правильно, я прав?
- Затем я настраиваю
gmond
файл инициализации (для вызова команды) и внесите следующие 2 изменения: (i) точкаGMOND
на правильный путь и (ii) наведите демон на правильный путьgmond.conf
файл. Могу ли я сделать что-то здесь не так?
[root @ pr1] # nano /etc/init.d/gmond
### Change here ###
#GMOND=/usr/sbin/gmond
GMOND=/usr/local/sbin/gmond
# TMPDIR set to SysV IPC ramdrive to avoid include processing failures
TMPDIR=/dev/shm
export TMPDIR
. /etc/rc.d/init.d/functions
start() {
[ -x $GMOND ] || exit 5
[ -f /etc/ganglia/gmond.conf ] || exit 6
echo -n "Starting GANGLIA gmond: "
### Change here ###
#daemon $GMOND
daemon $GMOND -c /usr/local/etc/gmond.conf
- Затем я модифицирую
gmetad.conf
файл для измененияdatasource
и добавьте имя кластера и имя пользователя. Здесь я должен изменить источник данных на локальную машину (pr1
или жеpr3
) или метаузлу (pr2
)?
[root@pr1]# nano /usr/local/etc/gmetad.conf
===(change)
data_source "edhcluster" pr1 ### Should I change this to pr2, the meta node?
===
===(add)
gridname "edhcluster"
===
===(add)
setuid_username "ganglia"
===
Или, еще больший вопрос, я не должен ничего менять в этом файле узлов pr1
а также pr3
(как только pr2
мета-узел, который будет контролировать все), а вместо этого изменить gmetad.conf
файл метаузла, pr2
только для включения в его datasource
все 3 узла, вот так:
[root@pr**2**]# nano /usr/local/etc/gmetad.conf
data_source "edhcluster" pr1 pr2 pr3
Но потом, я где-то читал некоторое время назад, просматривая, чтобы решить эту проблему, что написание имен узлов, подобных этому, означает, что он сначала проверит pr1, если он не работает, то проверит pr2, и если он не работает тоже проверит pr3. Итак, если мы хотим, чтобы он собирал данные со всех трех машин, мы должны написать отдельные строки для каждого узла, например:
[root@pr2]# nano /usr/local/etc/gmetad.conf
data_source "edhcluster" pr1
data_source "edhcluster" pr2
data_source "edhcluster" pr3
Я попробовал это, а затем перезапустил все службы во всех узлах (gmetad
, gmond
а также httpd
в pr2
, а также gmond
в pr1
а также pr3
), но ganglia web все еще не показывает ничего для двух других узлов.
- Затем я изменил
gmetad.init
файл (для вызова команды) наpr1
сделатьGMETAD
демон указывает на правильный путьgmetad.conf
файл. Тем не менее, я подозреваю, что это может быть неправильно, так какgmetad
изpr2
должен справиться с этим. Итак, правильно ли я идентифицирую это как ошибку? Если да, то как заставить демон gmetad указывать путь к файлу конфигурации в другом узле, метаузле,pr2
?
[root@pr1]# nano /etc/init.d/gmetad
### Change here ###
#GMETAD=/usr/sbin/gmetad
GMETAD=/usr/local/sbin/gmetad
. /etc/rc.d/init.d/functions
test -f /etc/sysconfig/gmetad && . /etc/sysconfig/gmetad
export RRDCACHED_ADDRESS
start() {
[ -x $GMETAD ] || exit 5
[ -f /etc/ganglia/gmetad.conf ] || exit 6
echo -n "Starting GANGLIA gmetad: "
### Change here ###
#daemon $GMETAD
daemon $GMETAD -c /usr/local/etc/gmetad.conf
### If this means that the gmetad of the local system
### will monitor this node, how do I make the daemon
### point to the gmetad.conf file of the meta node, pr2?
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmetad
return $RETVAL
}
Спасибо за прохождение всех деталей шагов настройки. Если я пропустил или пропустил какие-либо другие возможные причины, пожалуйста, не стесняйтесь указывать на них.