#amazon-ec2 #erlang #ejabberd #ejabberd-module
#amazon-ec2 #erlang #ejabberd #ejabberd-module
Вопрос:
Я следовал этому руководству, чтобы настроить jabbed в кластереhttp://chadillac.github.io/2012/11/17/easy-ejabberd-clustering-guide-mnesia-mysql /
Я использую два экземпляра was, имеющих ip
Ведущий -> 111.222.333.444 Ведомый -> 222.333.444.555
Но поскольку у меня не настроен DNS, поэтому я использую IP-адреса, такие как 111.222.333.444 и т.д. Вместо ‘master.domain.com ’ .
Мне еще не удалось просмотреть кластер, но до этого у меня возникла проблема на моем главном узле.
Я запускаю сервер с
/tmp/ej1809/sbin/ejabberdctl start
Затем я не получаю никаких выходных данных, но я вижу в журналах, что сервер запущен.
затем я проверяю статус с помощью
/tmp/ej1809/sbin/ejabberdctl status
Но я получаю сообщение об ошибке как
Failed RPC connection to the node 'ejabberd@111.222.333.444’: nodedown
И даже когда я пытаюсь остановить узел с помощью /tmp / ej1809 / sbin / ejabberdctl, остановка также
Я получаю
Failed RPC connection to the node 'ejabberd@111.222.333.444’: nodedown
Но я не могу понять причину этого.
Кто-нибудь может помочь мне решить эту проблему, пожалуйста?
Комментарии:
1. Является ли 111.222.333.444 реальным IP-адресом компьютера, который могут использовать программы? Я имею в виду, если вы вызовете «ping 111.222.333.444», это сработает?
2. да, это реальная машина (не удалось совместно использовать фактический IP-адрес). и да, «ping 111.222.333.444» работает. Я это уже проверил.
Ответ №1:
Остановите и завершите процессы, такие как epmd, erl, beam.
Затем запустите ejabberd с помощью «ejabberdctl live», при этом оболочка erlang будет открыта для просмотра сообщений журнала в режиме реального времени, включая имя узла erlang:
...
13:21:22.662 [info] ejabberd 19.02.52 is started in the node ejabberd@localhost in 7.07s
13:21:22.667 [info] Start accepting TCP connections at 0.0.0.0:5444 for ejabberd_http
13:21:22.667 [info] Application ejabberd started on node ejabberd@localhost
Вы можете проверить, знает ли «epmd» об этом узле:
$ epmd -names
epmd: up and running on port 4369 with data:
name ejabberd at port 33519
Тогда давайте посмотрим, может ли ejabberdctl подключиться к этому узлу:
$ ejabberdctl help | grep "node name:"
--node nodename ejabberd node name: ejabberd@localhost
И, наконец,:
$ ejabberdctl status
The node ejabberd@localhost is started with status: started
ejabberd 19.02.52 is running in that node
Я предполагаю, что вы еще ничего не редактировали в ejabberdctl.cfg, в частности, ERLANG_NODE. Но если вы это сделали, я рекомендую переустановить ejabberd, чтобы убедиться, что у вас есть конфигурация по умолчанию, а затем повторить эти шаги. Как только ejabberd заработает идеально, вы можете начать изменять файлы конфигурации (ejabberd.yml и ejabberdctl.cfg) в соответствии с вашими реальными требованиями (кластеризация и т.д.).
В какой-то момент, если у вас возникли проблемы с настройкой кластеризации, вы можете найти некоторые идеи для устранения проблемы вhttps://ejabberd.im/interconnect-erl-nodes/index.html
Комментарии:
1. Я проверил это и обнаружил, что при запуске ejabberd без редактирования «ERLANG_NODE» все работает нормально (т. Е. До тех пор, пока узел ejabberd работает как ejaberd @localhost), но когда я редактирую ejabberdctl.cfg, проблема всплыла. Хотя использование epmd работает нормально. Большое спасибо за дополнительные ссылки и информацию, а также за ответ.