2021/3/16、元気に動いていたDockerコンテナによるプライベートロケーションがいきなり落ちました。落ちたというのは語弊があり、DockerコンテナとDatadog間の通信が行われなりました。SSL証明書の期限監視としてのみ稼働させているものなので実害はほぼ無いレベル。ただ、解決しないと監視が全くできない状態なので調査開始。
- 気づき
- Datadogの管理コンソールで調べものをしていたらたまたま気づいた(プライベートロケーションのヘルスはNGでもdatadogは通知をしないのを事前に知ってた:何か手法はあるかもしれない)
- 状態
- プライベートロケーションのHEALTH項目が「NoData」
- プライベートロケーションで監視している項目をRunTestしてもResultが出ない(Dockerコンテナが落ちているときと同じ事象)
- 調査1
- dockerコンテナを再起動->NG
- 調査2
- APIkey、プライベーロケーション作り直しー>NG
- 調査3
- コンテナ稼働させるときにバックグラウンドじゃなくてフロントで稼働させてみた。エラーが出てる
2021-03-16 08:36:57 [info]: Fetching 10 messages from queue - 10 slots available
2021-03-16 08:37:15 [error]: Queue error - onFetchMessagesLongPolling - getaddrinfo EAI_AGAIN intake.synthetics.datadoghq.com
Error: getaddrinfo EAI_AGAIN intake.synthetics.datadoghq.com
at Function.fromHTTPError (/home/dog/dist/queue/queue.js:15:16)
at /home/dog/dist/queue/datadog-queue.js:33:46
at /home/dog/dist/lib/http.js:143:20
at /home/dog/node_modules/async/dist/async.js:3815:21
at /home/dog/dist/lib/http.js:131:24
at Request._callback (/home/dog/dist/lib/http.js:44:20)
at self.callback (/home/dog/node_modules/request/request.js:185:22)
at Request.emit (events.js:314:20)
at Request.EventEmitter.emit (domain.js:483:12)
at Request.onRequestError (/home/dog/node_modules/request/request.js:877:8) {
"code": "http_error"
}
- 調査4
- dockerコンテナからpingしてみたら届かない(もちろん名前解決もNG)
# docker exec -it datadog /bin/bash
$ ping google.com
ping: google.com: Temporary failure in name resolution
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
--- 8.8.8.8 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 1004ms
- 調査5
- テストサーバのdockerコンテナから調査4と同様にpingしてみたら届く。なるほど。このサーバの何か設定が変わったのか。
- 調査6
- 内部調査w(会社の人にサーバで何かしたか聞いて回る:history残ってなかったので)
- iptablesイジったとのこと
調査結果
Datadogの問題は全く無し。自分の技術力不足でした。dockerコンテナはiptablesでfowardされて動いていると。。。この内容については改めて勉強するとして、復旧して何よりでした。
コメント