O Influxdb está reiniciando constantemente desde minha última reinicialização

O Influxdb está reiniciando constantemente desde minha última reinicialização

Desde minha última reinicialização, vejo o seguinte a cada 1-2 minutos:

Aug 02 13:53:00 monitor systemd[1]: influxdb.service: start operation timed out. Terminating.
Aug 02 13:53:00 monitor systemd[1]: influxdb.service: Failed with result 'timeout'.
Aug 02 13:53:00 monitor systemd[1]: Failed to start InfluxDB is an open-source, distributed, time series database.
Aug 02 13:53:00 monitor systemd[1]: influxdb.service: Scheduled restart job, restart counter is at 4.
Aug 02 13:53:00 monitor systemd[1]: Stopped InfluxDB is an open-source, distributed, time series database.
Aug 02 13:53:00 monitor systemd[1]: Starting InfluxDB is an open-source, distributed, time series database...
Aug 02 13:53:00 monitor influxd-systemd-start.sh[3539]: Merging with configuration at: /etc/influxdb/influxdb.conf

em 29/07/2021 o influxo foi atualizado de1.8.6-1para1.8.7-1. O sistema operacional é o servidor Ubuntu 20.04. A primeira reinicialização depois disso foi quando os problemas começaram.
Inicialmente houve um problema de permissão com o /usr/lib/influxdb/scripts/influxd-systemd-start.sh, o que o impediu de iniciar. Alterei as permissões para 0755 e começou, mas continua reiniciando. Parece que está aceitando conexões e dados entre as reinicializações, pois o telegraf ainda está preenchendo o banco de dados, e o Grafana consegue exibir as estatísticas, desde que não coincidam com a reinicialização.

Também estou vendo a mensagem

influxd-systemd-start.sh[12171]: [tcp] 2021/08/02 14:21:40 tcp.Mux: Listener at 127.0.0.1:8088 failed failed to accept a connection, closing all listeners

Ele está escutando nessas portas

root@monitor$ ss -ilpn | grep influx
tcp     LISTEN   0        4096                                        127.0.0.1:8088                                              0.0.0.0:*                      users:(("influxd",pid=15115,fd=3))
tcp     LISTEN   0        4096                                                *:8086                                                    *:*                      users:(("influxd",pid=15115,fd=32))

Pelo que sei, nenhuma configuração foi alterada. Não há regras de firewall ativas.

Alguém tem alguma ideia de por que começou a se comportar mal?

Responder1

Parece que /usr/lib/influxdb/scripts/influxd-systemd-start.shestá tentando fazer uma verificação de integridade:

 while [ "$result" != "200" ]; do
   sleep 1
   result=$(curl -s -o /dev/null http://$HOST:$PORT/health -w %{http_code})
 done

isso está falhando. A partir da data do arquivo, o wrapper inicial só foi criado em 21 de julho, então parece que a verificação inicial é nova.

Se eu tentar manualmente, recebo:

root@monitor$ curl https://127.0.0.1:8088/health
curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to 127.0.0.1:8088 

Ele falha por vários motivos.

  1. Como configurei o TLS, ele precisa ser https
  2. Como não defini explicitamente a porta de ligação, porque estou usando o padrão, o script obtém a porta errada.
  3. como o TLS está habilitado, ele precisa do FQDN, não do host local ou a verificação de validação do certificado falha.
  4. as permissões também estavam erradas no script de inicialização padrão

Para resolver isso editei o /lib/systemd/system/influxdb.servicearquivo e

  1. altere Type=forking para Type=simple
  2. altere ExecStart para: ExecStart=/usr/bin/influxd -config /etc/influxdb/influxdb.conf --pidfile /var/lib/influxdb/influxd.pid $INFLUXD_OPTS

Responder2

Este é um bug introduzido no Influxdb v1.8.7.Problema no Github.

Há uma variedade de maneiras de consertar isso,sua soluçãosendo um dos caminhos. No nosso caso, o Influx demorou um pouco mais para inicializar do que a janela de 10 segundos que o script de inicialização permite, então simplesmente mudei a linha sleep 1no arquivo /usr/lib/influxdb/scripts/influxd-systemd-start.shpara sleep 2para dar ao Influx mais tempo para inicializar.

informação relacionada