最近はWindows Serverを触ることが多いのですが、やはりログの管理が問題になってきます。いつからかWindows向けのtd-agentインストーラが配布されるようになっていますし、イベントログ(使いにくいけど離れがたいWindowsのログ管理の仕組み)からのInputを行うプラグインも公式ドキュメント上で紹介されています。
Windows Server上でのログ収集にも使える下地が整っていそうと考え、本番環境での使用を検討し始めました。
検証で頓挫
手元のHyper-V上でWindows Server同士でログ送信、受信を行うと全く問題ありませんでした。しかし顧客の検証環境のWindows Server同士でログ送信が行えない問題がありました。
fluent-catでホスト名とポートを指定したらログが届くのに、同じ内容を設定ファイルに書いてサービスとして立ち上げるとtd-agentの集約サーバにheartbeatが届かなくて止まってしまう。なぜなのか
— hokkai7go (@hokkai7go) 2021年8月10日
Windows Serverのtd-agentで集約サーバにログ送ろうとしてるが、heartbeatが集約サーバに届かなくて困っておる
— hokkai7go (@hokkai7go) 2021年7月30日
古いですが以下の記事のように、ログの送信元のtd-agent.logには「detached forwarding server」が出ていました。コマンドラインからtd-agentのログレベルを詳細にして起動してみると集約サーバへのheartbeatを何度も送っては失敗しているように見えました。
Windows Serverでのtd-agentの情報があまり見つからなかったのと、顧客の検証環境のすべてを知り尽くしているわけではないので調査が難航しました。
解決
未だに謎な部分
何かわかる人がいましたらご連絡ください。