Datadog EC2上のOSログをDatadogに転送する方法

3-7. ログ転送設定

概要

ログをDatadogへ転送設定する場合の手順を記載する。 /var/log/messagesログなどの権限の高いログはAgent経由で転送することができない。 本ページではrsyslogを使用したログの転送方法を記載する。

注意事項

転送テスト時に下記バージョンでDatadogへ転送したところmessagesのログが溢れだしディスクフルとなる事象が発生。 messagesへ吐き出すログレベルをWARNING以上にする事により同事象は発生しなくなった、 必ずstage環境で動作確認をおこなった後に本番へ適用してください。

設定環境

rsyslog バージョン5.8.10 OS centos 6.10

rsyslogのバージョンによって手順が変わる為以下サイトを確認すること https://docs.datadoghq.com/ja/integrations/rsyslog/?tab=datadogussite

手順

1 .転送元のサーバへログインする

2 .rootユーザへスイッチする

3 .rsyslog.confに設定を追記

/etc/rsyslog.confに以下内容を追記する

・20行目付近に以下内容を追記

#Datadog
$ModLoad imfile
$InputFilePollInterval 10
$PrivDropToGroup adm
$WorkDirectory /var/spool/rsyslog

以下をコメントアウトする

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

コメントアウトした次の行に以下を追記(authprivとcronを除いたすべてのfacilityでwarning以上のメッセージを/var/log/messagesに出力する設定)

*.warning;mail.none;authpriv.none;cron.none                /var/log/messages

4 . /etc/rsyslog.dにconfファイルの作成

/etc/rsyslog.d配下に以下命名でファイルを作成する(Datadogにmail,secure,messagsを送る場合は3ファイル作成する必要がある)

・ファイル名 datadog_<log名>.conf

5. confファイルに設定を追加する

## Input for FILE1
$InputFileName /var/log/maillog ←転送したいログのパスを明記する
$InputFileTag mail ←★マークの命名で設定をお願いいたします。
$InputFileStateFile stat-messages
$InputFileSeverity info
$InputRunFileMonitor

## Set the Datadog Format to send the logs
$template DatadogFormat,"<apiキー> <%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% - - - %msg%\n"

## Define the destination for the logs
*.* @@intake.logs.datadoghq.com:10514;DatadogFormat

★InputFileTag については以下命名で記載をお願います。 今後追加該当しないログについては都度都度下記に記載をお願いいたします。

massagesのログ:message mailのログ:mail secureのログ:secure

・confファイルに権限を与える

# chmod 644 /etc/rsyslog.d/datadog*
# chown root:root /etc/rsyslog.d/datadog*

6. WorkDirectory の作成

# mkdir /var/spool/rsyslog
# chmod 755 /var/spool/rsyslog
# chown root:root /var/spool/rsyslog
# ls -ld /var/spool/rsyslog

7 . サービスの再起動を行う

# service  rsyslog stop
# service  rsyslog start
# service  rsyslog status

8 .ログの確認

Datadog管理画面から設定したログが転送されていることを確認する