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. 定期的な実行: 应答時間のログファイルを維持し、分析に活用します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ