2026年7月20日

2026年7月20日

サーバーのTCPコネクション状態を定期監視する方法

はじめに

サーバーのTCPコネクション管理は、ネットワーク性能と安定性を維持する上で重要な役割を果たします。定期的にTCPコネクションの状態を監視することで、異常な接続や問題点を早期発見し、迅速に対応することが可能になります。

症状・背景

このテーマが必要になる主な場面は以下の通りです:

  • サーバーのネットワークパフォーマンス低下
  • ホスト名解決の不具合
  • HTTP/HTTPS接続エラー
  • 一時的なサービス停止やダウンタイム

手順・設定方法

ステップ1: netstatコマンドを使用した基本操作

# netstatコマンドを使って現在のネットワーク接続状況を確認します。
sudo netstat -tulnp

# こちらはTCPのみの接続状態を表示します。
sudo netstat -antp | grep ESTABLISHED

ステップ2: ssコマンドによる詳細な監視設定

# ssコマンドを使ってより詳しいネットワーク接続情報を確認します。
sudo ss -tuln

# こちらは特定のポートに対するTCP接続状態を表示します。
sudo ss -antp | grep :80

ステップ3: iptablesと組み合わせて監視

# iptablesで規則を作成し、接続履歴を追跡します。
sudo iptables -A INPUT -j LOG --log-prefix "iptables_input:" --log-level 6

# 状態監視のためにtcpdumpを使うことも可能です。
sudo tcpdump -i eth0 port 80 and host example.com

ステップ4: cronで定期実行設定

# cronにタスクを追加し、毎時間一度ネットワーク接続状態を監視します。
echo "*/1 * * * * /usr/bin/netstat -antp > /var/log/netstat.log" | sudo tee -a /etc/cron.d/tcp-check

# あるいはssコマンドを使用してログを作成します。
echo "*/5 * * * * /usr/bin/ss -antp >> /var/log/ss.log" | sudo tee -a /etc/cron.d/tcp-check

注意事項

  • netstatssコマンドはroot権限が必要です。
  • iptablesの設定には十分な注意を払ってください。誤った設定によりネットワーク接続に障害が生じる可能性があります。
  • cronタスクは定期的に実行され、ログファイルに出力されます。

まとめ

1. netstatとss: TCPコネクションの基本的な監視に適しています。

2. iptables: セキュリティポリシーを強化し、接続履歴を追跡します。

3. tcpdump: 特定のネットワークトラフィックを詳細に調査します。

4. cron: 定期的な監視とログ記録を行うためのスケジューラ機能を活用します。

関連記事:

お気軽にご相談ください

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