Por que o Uchiwa não consegue monitorar o datacenter no CentOS7?

4

Este post combinado com Instalar o Sensu usando o YUM foi usado para instalar, configurar e iniciar o Sensu e serviços relacionados:

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 ".*" ".*" ".*"

Análise

  • Navegando para: 3000 mostra o painel do uchiwa e indica Connection error. Is the Sensu API running?
  • /var/log/sensu/sensu-api.log indica
{"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}
  • O config.json parece não existir ( /etc/sensu/config.json: No such file or directory )
  • Baixando o exemplo config.json e reiniciar o sensu-api não resolveu o problema
{
  "rabbitmq": {
    "host": "localhost",
    "vhost": "/sensu",
    "user": "sensu",
    "password": "secret"
  },
  "redis": {
    "host": "localhost",
    "port": 6379,
    "password": "secret"
  }
}
  • a porta redis está ouvindo:
LISTEN     0      128    127.0.0.1:6379                     *:*
  • a porta rabbitmq também:
LISTEN     0      100          *:4567                     *:* 
  • O Uchiwa não pode se conectar aos datacenters
{
  "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"}
  • navegando para <IPADDRESS>:4567 resulta em:
{"error":"redis and transport connections not initialized"}
  • responde ao redis
sudo redis-cli ping
PONG
  • redis senha foi definida, mas o problema persiste
sudo redis-cli
127.0.0.1:6379> auth secret
OK
    
por 030 04.07.2016 / 01:26

3 respostas

1

Conciso

O sensu-client parece requerer um rabbitmq-server em execução. Como este intermediário de mensagens não parecia estar em execução nem o sensu-client pôde iniciar, nem o painel do Uchiwa conseguiu monitorá-lo.

Verboso

Se o seguinte erro:

{"error":"redis and transport connections not initialized"}

é mostrado e redis está escutando, por favor, verifique se rabbitmq está em execução e verifique a porta rabbitmq usando rabbitmq-status:

sudo systemctl status rabbitmq-server

Exemplo

Hoje, o erro acima foi exibido e, quando a porta rabbitmq foi verificada, parece que uma determinada porta não estava escutando:

{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}},

Como o SSL foi configurado, a porta 5671 deve ser configurada em /etc/rabbitmq.config . Depois que o servidor do mensageiro foi reiniciado, a porta ssl 5671 começou a escutar e o problema foi resolvido:

{listeners,[{clustering,25672,"::"},{amqp,5672,"::"},{'amqp/ssl',5671,"::"}]},

minha configuração do 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}]}
 ]}
  ].
    
por 04.07.2016 / 14:05
3

Primeiramente, quando o RabbitMQ está funcionando quando configuro o SSL correto em rabbitmq.json, ele mostra um exemplo no Site Sensu . Depois disso só dizia: "error": "não conectado a redis"

Eu então fiz o Redis funcionar mudando de "localhost" na configuração sensu para "127.0.0.1". Como Redis não estava escutando em IPv6 e "localhost" resolveu ambos: 1 & 127.0.0.1 não funcionou corretamente.

Esta foi uma nova instalação no Debian 8.

    
por 17.05.2017 / 14:05
-1

Verifique se o sensu-api está configurado e em execução. Em centos-7.x systemctl status sensu-api
para iniciar o servive systemctl start sensu-api

    
por 08.05.2017 / 18:48