DatadogでLinux上のジャーナルログを収集してみようかと思います。
まずはじめに、Datadogでログ管理するには、一般的なDatadogライセンス(Infrastructureというやつ)とは別に、「Log Management」というライセンスが必要となります。料金はこんな感じ。
検証用の無償ライセンス期間で、この機能も利用できます。
環境情報
- 被監視対象OS
- Amazon Linux2
- datadog-agent version
- Agent 6.10.1
Journaldのログを収集
LinuxのJournalデーモンのログ収集方法です。Datadog Agentはインストールされているものとして進めます。以下の公式の手順に沿って作業。
Datadog Agentを動かしているOSユーザ dd-agent
を、OSユーザグループ systemd-journal
に参加させて、Datadog Agentがジャーナルログを参照できるようにしておきます。
$ cat /etc/group | grep systemd-journal systemd-journal:x:190:ec2-user $ $ sudo usermod -a -G systemd-journal dd-agent $ $ cat /etc/group | grep systemd-journal systemd-journal:x:190:ec2-user,dd-agent
ジャーナルログに限らず、Datadog Agentでログ収集する場合、コンフィグファイル /etc/datadog-agent/datadog.yaml
内で、以下ログ収集設定をtrueに変更しておきます。
logs_enabled: true
ジャーナルログ用コンフィグファイルを用意します。 /etc/datadog-agent/conf.d/journald.d/conf.yaml
に必要設定を記述します。
journald.d
以下が存在しない場合、新規作成します。
$ sudo mkdir -m 755 /etc/datadog-agent/conf.d/journald.d/ $ sudo chown dd-agent:dd-agent /etc/datadog-agent/conf.d/journald.d/ $ sudo touch -m 544 /etc/datadog-agent/conf.d/journald.d/conf.yaml $ sudo chown dd-agent:dd-agent /etc/datadog-agent/conf.d/journald.d/conf.yaml
コンフィグファイルには、以下を記載します。
logs: - type: journald
最後に、Datadog Agentを再起動して終了です。
$ sudo systemctl restart datadog-agent
DatadogのWEB画面を見ると、ログが収集されていることを確認できます。ジャーナルログのpathをデフォルトから変更している、Datadog連携時にログをフィルタリングしたい、といった場合、そのコンフィグ設定方法が上述記載の公式サイトリンクにのっています。