4 votes

Influxdb redémarre constamment depuis mon dernier redémarrage

Depuis mon dernier redémarrage, je vois ce qui suit toutes les 1 à 2 minutes :

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

le 29/07/2021 l'influx a été mis à jour de 1.8.6-1 まで 1.8.7-1 . Le système d'exploitation est Ubuntu 20.04 server. C'est au premier redémarrage que les problèmes ont commencé.
Initialement, il y avait un problème de permissions avec /usr/lib/influxdb/scripts/influxd-systemd-start.sh ce qui l'a empêché de démarrer. J'ai changé les perms en 0755 et il a démarré, mais il continue à redémarrer. Il semble qu'il accepte les connexions et les données entre les redémarrages, car telegraf alimente toujours la base de données et Grafana est capable d'afficher les statistiques, tant que cela ne coïncide pas avec le redémarrage.

Je vois également le message suivant

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

Il écoute sur ces ports

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))

Pour autant que je sache, aucune configuration n'a été modifiée. Aucune règle de pare-feu n'est active.

Quelqu'un a-t-il une idée de la raison pour laquelle il a commencé à se comporter mal ?

3voto

SlyOne Points 363

On dirait que /usr/lib/influxdb/scripts/influxd-systemd-start.sh essaie de faire un bilan de santé :

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

c'est un échec. D'après la date du fichier, l'enveloppe de démarrage n'a été créée que le 21 juillet, il semble donc que le contrôle de démarrage soit récent.

Si j'essaie manuellement, j'obtiens :

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 

Elle échoue pour plusieurs raisons.

  1. Comme j'ai configuré TLS, il faut que ce soit https.
  2. Parce que je n'ai pas explicitement défini le port de liaison, parce que j'utilise la valeur par défaut, le script obtient le mauvais port.
  3. parce que TLS est activé, il a besoin du FQDN, et non de localhost, sinon la vérification de la validation du certificat échoue.
  4. les perms étaient également erronés au démarrage par défaut script.

Pour résoudre ce problème, j'ai modifié le fichier /lib/systemd/system/influxdb.service et

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

2voto

Almenon Points 131

Il s'agit d'un bogue introduit dans Influxdb v1.8.7. Numéro Github .

Il existe plusieurs façons de résoudre ce problème, votre solution est l'un des moyens. Dans notre cas, Influx a mis un peu plus de temps à démarrer que la fenêtre de 10 secondes autorisée par le script de démarrage, j'ai donc simplement modifié la ligne sleep 1 dans le fichier /usr/lib/influxdb/scripts/influxd-systemd-start.sh まで sleep 2 pour donner à Influx plus de temps pour démarrer.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X