2026年7月11日
2026年7月11日
サーバーの応答時間を定期的に計測する方法
はじめに
サーバーの応答時間が長引くと、ユーザー体験が低下し、サイトの利用者から不満が出る可能性があります。定期的に応答時間を計測することで、問題を早期発見し、迅速な対応が可能です。この記事では、Linuxサーバーにおける応答時間の計測方法について解説します。
症状・背景
- サイトの訪問者が減少している
- ページロード時間が長引いている
- 顧客からの不満や問い合わせが多い
手順・設定方法
ステップ1: curlコマンドを使用した基本的な応答時間計測
# サーバーからのレスポンスタイムを秒単位で計測します
curl -o /dev/null -s -w "%{time_total}\n" http://yourdomain.com
ステップ2: NagiosやZabbixなどの監視ツールを利用する
# Nagiosのチェックスクリプトを用意し、定期的に実行します
cat <<EOF > /usr/lib/nagios/plugins/check_apache_response_time.sh
#!/bin/bash
curl -o /dev/null -s -w "%{time_total}\n" http://yourdomain.com
EOF
# チェックスクリプトを実行し、結果をNagiosに通知します
/usr/lib/nagios/plugins/check_apache_response_time.sh | nagios_plugins/check_by_ssh -H yourserver -p 22 -C 'check_nrpe -t /path/to/nrpe.cfg -c check_apache_response_time'
ステップ3: Ansibleを使用して監視スクリプトを自動化
# Ansible playbookの例
---
- hosts: all
tasks:
- name: 定期的に応答時間を計測する
command: curl -o /dev/null -s -w "%{time_total}\n" http://yourdomain.com
register: response_time
ignore_errors: yes
- name: 応答時間の結果をログに出力する
debug:
msg: "応答時間: {{ response_time.stdout }}"
ステップ4: 実践/トラブルシュート/監視
# 日常的な監視スクリプトを定期的に実行します
while true; do
curl -o /dev/null -s -w "%{time_total}\n" http://yourdomain.com >> response_time.log
sleep 300
done
注意事項
- スクリプトのエラー処理を確実に行い、問題発生時の通知設定を行う
- セキュリティ上、SSH接続を必要とする場合、認証情報の管理に注意
- ログファイルのサイズ管理を行い、不要なデータが蓄積しないようにする
まとめ
1. curlコマンド: 簡単に応答時間を計測できます。
2. 監視ツール利用: NagiosやZabbixを使用すると、問題を早期発見しやすくなります。
3. Ansible自動化: スクリプトの実行を効率化します。
4. 定期的な実行: 应答時間のログファイルを維持し、分析に活用します。
関連記事: