Агент DataStax OpsCenter не запускается, когда Cassandra требует аутентификации
проблема
Я не могу заставить OpsCenter получить соединение с datastax-агентом. Кажется, что datastax-agent запускается и пытается подключиться к cassandra, происходит сбой, потому что он не знает правильные учетные данные, но он также не запускает сервер Jetty для получения учетных данных от opscenter. Таким образом, он повторяет и повторяет попытки, но никогда не соединяется. Когда cassandra разрешает все соединения (без аутентификации), моя установка работает нормально.
startup.log
так же как agent.log
оба шоу повторяются:
ОШИБКА [main] 2015-03-03 21:19:43,106 Не удается подключиться к Cassandra, повторная попытка com.datastax.driver.core.exceptions.AuthenticationException: ошибка аутентификации на хосте /127.0.0.1:9042: хост /127.0.0.1: 9042 требует аутентификации, но не найден аутентификатор в конфигурации кластера
Настроить
Я установил datastax-agent (5.1) под Ubuntu 14.04.LTS от официального http://debian.datastax.com/community stable main
на экземпляре EC2. Мой address.yml выглядит так:
stomp_interface: PUBLIC_IP_OF_OPSCENTER_NODE
local_interface: PUBLIC_IP_OF_NODE
agent_rpc_interface: PRIVATE_IP_OF_NODE
agent_rpc_broadcast_address: PUBLIC_IP_OF_NODE
Я тоже пытался добавить cassandra_install_location: /opt/cassandra
но это, похоже, не помогает. Cassandra (2.1) устанавливается через tarball и запускается как пользователь ubuntu
, datastax-agent также работает как ubuntu
,
Вопрос
Чего мне не хватает, чтобы агент datastax и агент opscenter связывались, когда cassandra требует аутентификации?
Редактирование:
startup.log
после запуска:
log4j:WARN No appenders could be found for logger (com.datastax.driver.core.SystemProperties).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
INFO [main] 2015-03-10 11:35:50,361 Loading conf files: /var/lib/datastax-agent/conf/address.yaml
INFO [main] 2015-03-10 11:35:50,412 Java vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0_76
INFO [main] 2015-03-10 11:35:50,412 DataStax Agent version: 5.1.0
INFO [main] 2015-03-10 11:35:50,490 Default config values: { ... }
INFO [main] 2015-03-10 11:35:50,685 Waiting for the config from OpsCenter
INFO [main] 2015-03-10 11:35:50,686 Using XX.XX.XXX.XXX as the cassandra broadcast address
INFO [main] 2015-03-10 11:35:50,686 New JMX connection (127.0.0.1:7199)
INFO [main] 2015-03-10 11:35:50,889 cassandra RPC address is nil
ERROR [main] 2015-03-10 11:35:51,048 Can't connect to Cassandra, retrying
com.datastax.driver.core.exceptions.AuthenticationException: Authentication error on host /127.0.0.1:9042: Host /127.0.0.1:9042 requires authentication, but no authenticator found in Cluster configuration
3 ответа
Вы можете попытаться настроить учетные данные вручную в вашем address.yaml
конфигурационный файл.
cassandra_user: <username>
cassandra_pass: <password>
Смотрите конфигурацию агента datastax и руководство по обновлению до 5.1, потому что некоторые параметры изменились.
Николас проверить эту документацию. Когда cassandra настроена на использование внутренней аутентификации, имя пользователя и пароль cassandra задаются в файле конфигурации кластера для opscenter на сервере opscenterd. Файл называется.conf
[cassandra] username
The thrift username to Cassandra if thrift authentication is enabled.
[cassandra] password
The thrift password to Cassandra if thrift authentication is enabled.
Если это установлено правильно, и ваши агенты все еще не могут подключиться, вы можете также проверить, что различные IP-адреса, установленные в вашем address.yaml, являются правильными для вашей установки.
В частности, может ли узел cassandra получить доступ к серверу opscenterd через общедоступный интерфейс? Убедитесь, что IP-адрес local_interface соответствует ip для узла, как показано в выводе состояния nodetool. Убедитесь, что сервер opscenterd может связаться с агентом на узле, используя широковещательный адрес rpc агента ip.
Ответ от Климента сработал для меня. Использование 5.1 в Solaris 11. (Поскольку в Solaris не предусмотрена установка пакетов, то есть ручная установка tar и ручной запуск Cassandra, агента и opscenter. Обратите также внимание, что скрипт opscenter нуждался в настройке, потому что он решил может использовать "epoll" в качестве реактора, который не поддерживается. Принудительное использование "select" сработало.)