DatadogでApache、Apacheログを見れるようにしてみた
作業概要
前回はサーバにエージェントインストールし、CPUやらメモリやら基本的な監視はできるようになりました。
なので次はログ監視をしようと思いました。
ログのみでなくApache自体の監視(/server-status?autoで入手できるデータの監視)もできると気づいたのでそちらもついでにやりました。
今回やった作業をApache Integrationを有効にする、とかいうらしいです。
作業記録~Apache Integrationの有効化~
・SElinux(一時)無効 setenforce 0 ・デフォルトで無効になっているログ監視を有効にする cp -ai /etc/datadog-agent/datadog.yaml /etc/datadog-agent/datadog.yaml.0 vi /etc/datadog-agent/datadog.yaml ----- (追記) logs_enabled: true ----- ・apache.d/conf.yamlの設定 cp -ai /etc/datadog-agent/conf.d/apache.d/conf.yaml.example /etc/datadog-agent/conf.d/apache.d/conf.yaml vi /etc/datadog-agent/conf.d/apache.d/conf.yaml ----- (追記) logs: - type: file path: /var/log/httpd/access_log source: apache sourcecategory: http_web_access service: myservice - type: file path: /var/log/httpd/error_log source: apache sourcecategory: http_web_access service: myservice ----- ・「server-status」ハンドラーの指定 cp -ai /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.0 vi /etc/httpd/conf/httpd.conf <Location /server-status> SetHandler server-status Require local </Location> ・ログの権限変更 chmod -R 755 /var/log/httpd systemctl restart httpd systemctl restart datadog-agent これでログ取れるようになりました。
メモ~苦戦・迷った箇所~
予想外に苦戦したので時間かかった箇所や迷った箇所をメモしておきます。
①Apacheのログファイル名が違う
Apacheデフォルトだと/var/log/httpd/access_logなのです。
しかしdatadog公式ドキュメントのサンプルをそのままコピペすると/var/log/apache2/access.log とドットなんですよね・・・。
datadog-agent status コマンドで Status: Error: file /var/log/httpd/access_log does not exist と出ていて気付きました。
②ログ権限
/var/log/httpdを755にしておかないとdatadog-agentが読めないようです。
③
でのRequireですが、Allで開けなくて大丈夫。
localからとってこれればよいのでRequire local。
さくらVPSの場合
firewalldやパケットフィルタもお忘れなく。
firewall-cmd --zone=public --add-service=http --permanent systemctl restart firewalld firewall-cmd --list-all