DatadogでLinuxジャーナルログを収集する

DatadogでLinux上のジャーナルログを収集してみようかと思います。

まずはじめに、Datadogでログ管理するには、一般的なDatadogライセンス(Infrastructureというやつ)とは別に、「Log Management」というライセンスが必要となります。料金はこんな感じ。

f:id:goodbyegangster:20190327195430p:plain

Pricing | Datadog

検証用の無償ライセンス期間で、この機能も利用できます。

環境情報

  • 被監視対象OS
  • datadog-agent version
    • Agent 6.10.1

Journaldのログを収集

LinuxのJournalデーモンのログ収集方法です。Datadog Agentはインストールされているものとして進めます。以下の公式の手順に沿って作業。

Journald

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連携時にログをフィルタリングしたい、といった場合、そのコンフィグ設定方法が上述記載の公式サイトリンクにのっています。