마지막 재부팅 이후 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

2021년 7월 29일 유입이 다음에서 업데이트되었습니다.1.8.6-1에게1.8.7-1. OS는 Ubuntu 20.04 서버입니다. 이후 첫 번째 재부팅은 문제가 시작된 때입니다.
처음에는 에 권한 문제가 있어서 /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

이것은 실패하고 있습니다. 파일 날짜로 볼 때 시작 래퍼는 7월 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가 활성화되어 있으므로 localhost가 아닌 FQDN이 필요합니다. 그렇지 않으면 인증서 유효성 검사가 실패합니다.
  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초 창보다 시작하는 데 약간 더 오래 걸렸으므로 Influx를 시작하는 데 더 많은 시간을 제공하기 위해 sleep 1파일의 줄을 간단히 변경했습니다./usr/lib/influxdb/scripts/influxd-systemd-start.shsleep 2

관련 정보