Influxdb постоянно перезапускается с момента моей последней перезагрузки

Influxdb постоянно перезапускается с момента моей последней перезагрузки

После моей последней перезагрузки я каждые 1-2 минуты вижу следующее:

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

29/07/2021 приток был обновлен с1.8.6-1к1.8.7-1. Операционная система — Ubuntu 20.04 server. Проблемы начались после первой перезагрузки.
Изначально была проблема с разрешениями /usr/lib/influxdb/scripts/influxd-systemd-start.sh, из-за которой он не запускался. Я изменил разрешения на 0755, и он запустился, но продолжает перезапускаться. Похоже, что он принимает соединения и данные между перезапусками, поскольку telegraf все еще заполняет базу данных, а Grafana может отображать статистику, если только это не совпадает с перезапуском.

Я также вижу сообщение

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

Он прослушивает эти порты.

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

Насколько мне известно, никаких изменений в конфигурации не было. Нет активных правил брандмауэра.

Есть ли у кого-нибудь идеи, почему он начал себя плохо вести?

решение1

Похоже, /usr/lib/influxdb/scripts/influxd-systemd-start.shон пытается провести проверку здоровья:

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

это не удается. Из даты файла видно, что начальная оболочка была создана только 21 июля, поэтому похоже, что начальная проверка новая.

Если я попробую вручную, то получу:

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 

Это не удается по нескольким причинам.

  1. Так как я настроил TLS, то должен быть https
  2. Поскольку я явно не указал порт привязки, а использую порт по умолчанию, скрипт получает неправильный порт.
  3. поскольку TLS включен, требуется полное доменное имя, а не локальный хост, иначе проверка сертификата не пройдет.
  4. разрешения также были неправильными в сценарии запуска по умолчанию

Чтобы решить эту проблему, я отредактировал /lib/systemd/system/influxdb.serviceфайл и

  1. изменить Тип=разветвление на Тип=простой
  2. изменить ExecStart на: ExecStart=/usr/bin/influxd -config /etc/influxdb/influxdb.conf --pidfile /var/lib/influxdb/influxd.pid $INFLUXD_OPTS

решение2

Это ошибка, появившаяся в Influxdb v1.8.7.Проблема с Github.

Есть множество способов исправить это,ваше решениеодин из способов. В нашем случае Influx запустился немного дольше, чем 10 секунд, которые позволяет скрипт запуска, поэтому я просто изменил строку sleep 1в файле /usr/lib/influxdb/scripts/influxd-systemd-start.sh, чтобы sleep 2дать Influx больше времени на запуск.

Связанный контент