この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
おはようございます、もきゅりんです。
掲題の通り、公式チェックプラグイン集をインストールして、 apacheのプロセス監視およびレスポンスタイム監視をしてみました。
前回は、下記のような監視の設定を行ってみました。
前提
- Mackerelのアカウントを取得している
やること
- とりあえずMackerel-Agentをインストールする
- apacheとプラグインをインストールする
- apacheのログにレスポンスタイムを出力させる
- プロセス監視とレスポンス監視の設定/テスト
1. とりあえずMackerel-Agentをインストールする
この手順については、ザッと進めます。
前回と同様、Amazon Linux2で対応しています。
Mackerelの管理画面から出力される、こちらのコマンドを対象のサーバで実行します。
ちょっとすると、Hosts画面にサーバが追加されるはずです。
2. apacheとプラグインをインストールする
こちらを参考に、
プラグインをインストールします。
sudo yum install mackerel-check-plugins
apacheをインストールします。
sudo yum install httpd
apacheのログの設定を編集してレスポンスタイムを出力するようにします。
3. apacheのログにレスポンスタイムを出力させる
こちらを参考に、httpd.conf
を編集します。
# /etc/httpd/conf/httpd.conf
# 文末にレスポンスタイムを追記
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
- LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
設定を反映させるために再起動します。
# 確認
httpd -t
sudo systemctl restart httpd
実際に数値が出力するかどうか確認します。
下記例のように、アクセスログの文末に数値が追加されていればOKです。
sudo tail -f /var/log/httpd/access_log
XXX.XX.XXX.XX - - [28/Aug/2019:18:39:32 +0900] "GET / HTTP/1.1" 403 3730 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" 378
次にプロセス監視とレスポンスタイムの監視をテストします。
4. プロセス監視とレスポンス監視の設定/テスト
confファイルにhttpdのプロセス監視とレスポンスタイムのアラート設定を記述します。
わざとアラートを出させるために、レスポンスタイムが350マイクロ秒より大きい場合にアラートを出すようにします。
# /etc/mackerel-agent/mackerel-agent.conf
# プロセス監視
[plugin.checks.check_httpd]
command = ["check-procs", "--pattern", "httpd"]
# レスポンスタイム監視
[plugin.checks.check_httpd_response]
command = ["check-log", "--file", "/var/log/httpd/access_log", "--pattern", "3[5-9][0-9]$|[4-9][0-9][0-9]$|[1-9][0-9][0-9][0-9]+$"]
prevent_alert_auto_close = true
設定を反映させます。
# mackerelの設定エラーを確認
mackerel-agent configtest
sudo systemctl restart mackerel-agent
設定した監視項目が増えています。
apacheを停止してみます。
sudo systemctl stop httpd
アラートメールが送信されてアラート表示されています。
アクセスしてみます。
350より大きい値になりましたー。
メールを受信した上、Hosts画面でアラート表示されました。
うまくいきましたね。
以上です。
正規表現って使い忘れた頃にやってくる...(苦手。。)
ちなみに自分はNginxの方がApacheよりも大分馴染みがあります。
どなたかのお役に立てば幸いです。