Почему Uchiwa не может контролировать центр обработки данных на CentOS7?
Этот пост в сочетании с установкой Sensu с использованием YUM был использован для установки, настройки и запуска Sensu и связанных служб:
sudo yum install -y erlang && \
sudo rpm -Uvh http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.0/rabbitmq-server-3.5.0-1.noarch.rpm && \
sudo yum install -y redis && \
echo '[sensu]
name=sensu
baseurl=http://sensu.global.ssl.fastly.net/yum/$basearch/
gpgcheck=0
enabled=1' | sudo tee /etc/yum.repos.d/sensu.repo && \
sudo yum install -y sensu && \
sudo yum install -y uchiwa && \
for s in rabbitmq-server redis.service sensu-server sensu-api uchiwa; do sudo systemctl restart $s; done && \
sudo rabbitmqctl add_vhost /sensu && \
sudo rabbitmqctl add_user sensu secret && \
sudo rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
Анализ
- Переход к:3000 показывает приборную панель uchiwa и показывает
Connection error. Is the Sensu API running?
- /var/log/sensu/sensu-api.log указывает
{"timestamp":"2016-07-03T22:58:58.532905+0000","level":"warn","message":"config file does not exist or is not readable","file":"/etc/sensu/config.json"}
{"timestamp":"2016-07-03T22:58:58.533069+0000","level":"warn","message":"ignoring config file","file":"/etc/sensu/config.json"}
{"timestamp":"2016-07-03T22:58:58.533137+0000","level":"warn","message":"loading config files from directory","directory":"/etc/sensu/conf.d"}
{"timestamp":"2016-07-03T22:58:58.712175+0000","level":"info","message":"api listening","protocol":"http","bind":"0.0.0.0","port":4567}
- Кажется, что config.json не существует (
/etc/sensu/config.json: No such file or directory
) - Загрузка примера config.json и перезапуск sensu-api не решили проблему
{
"rabbitmq": {
"host": "localhost",
"vhost": "/sensu",
"user": "sensu",
"password": "secret"
},
"redis": {
"host": "localhost",
"port": 6379,
"password": "secret"
}
}
- порт redis прослушивает:
LISTEN 0 128 127.0.0.1:6379 *:*
- порт rabbitmq, а также:
LISTEN 0 100 *:4567 *:*
- Uchiwa не может подключиться к центрам обработки данных
{
"sensu": [
{
"name": "Site 1",
"host": "localhost",
"port": 4567,
"timeout": 10
},
{
"name": "Site 2",
"host": "localhost",
"port": 4567,
"ssl": false,
"path": "",
"user": "",
"pass": "",
"timeout": 10
}
],
"uchiwa": {
"host": "0.0.0.0",
"port": 3000,
"refresh": 10
}
}
{"timestamp":"2016-07-03T23:34:32.990067621Z","level":"warn","message":"GET http://localhost:4567/stashes returned: 500 Internal Server Error"}
{"timestamp":"2016-07-03T23:34:32.990102095Z","level":"warn","message":"Connection failed to the datacenter Site 1"}
{"timestamp":"2016-07-03T23:34:32.990115588Z","level":"info","message":"Updating the datacenter Site 2"}
{"timestamp":"2016-07-03T23:34:32.991462585Z","level":"warn","message":"GET http://localhost:4567/stashes returned: 500 Internal Server Error"}
{"timestamp":"2016-07-03T23:34:32.991492978Z","level":"warn","message":"Connection failed to the datacenter Site 2"}
- навигация к
<IPADDRESS>:4567
результаты в:
{"error":"redis and transport connections not initialized"}
- Redis отвечает
sudo redis-cli ping
PONG
- пароль redis был установлен, но проблема не устранена
sudo redis-cli
127.0.0.1:6379> auth secret
OK
3 ответа
краткий
sensu-client
кажется требует бега rabbitmq-server
, Поскольку этот брокер сообщений, похоже, не работает ни sensu-client
был в состоянии начать, и приборная панель Uchiwa не смогла контролировать это.
Подробный
Если следующая ошибка:
{"error":"redis and transport connections not initialized"}
показано и redis
слушает, пожалуйста, проверьте, что rabbitmq
работает и проверьте порт rabbitmq, используя rabbitmq-status:
sudo systemctl status rabbitmq-server
пример
Сегодня была показана вышеупомянутая ошибка, и когда порт rabbitmq был проверен, оказалось, что определенный порт не прослушивает:
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}},
Поскольку SSL был настроен, порт 5671 должен быть настроен в /etc/rabbitmq.config
, После перезапуска сервера MessageBroker ssl-порт 5671
начал слушать и проблема была решена
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"},{'amqp/ssl',5671,"::"}]},
мой конфиг rabbitmq:
[
{rabbit, [
{ssl_listeners, [5671]},
{ssl_options, [{cacertfile,"/etc/rabbitmq/ssl/cacert.pem"},
{certfile,"/etc/rabbitmq/ssl/cert.pem"},
{keyfile,"/etc/rabbitmq/ssl/key.pem"},
{verify,verify_peer},
{fail_if_no_peer_cert,true}]}
]}
].
Впервые я заработал RabbitMQ, когда настроил правильную конфигурацию SSL в rabbitmq.json, он показывает пример на сайте Sensu. После этого он только сказал: "ошибка": "не подключен к redis"
Затем я заставил Redis работать, изменив "localhost" в настройках sensu на "127.0.0.1". Поскольку Redis не прослушивал IPv6, а localhost разрешил оба: 1 и 127.0.0.1, он не работал должным образом.
Это была новая установка на Debian 8.
Убедитесь, что sensu-api настроен и работает. На centos-7.x systemctl status sensu-api
запустить сервивsystemctl start sensu-api