サーバーが正常に動いているか、不正なアクセスがないかを確認するために欠かせない「ログ監視」。 いざシステムを組もうとすると、「監視対象のサーバーにソフトを入れるべきか、入れないべきか」という問題にぶつかります。
今回は、それぞれの代表的な手法である「SSH(エージェントレス)監視」と「エージェント型監視」の仕組みと特徴を紐解いていきます。
1. SSH(エージェントレス)によるログ監視
「ターゲットに何も入れない。外から見に行くスタイル」
監視対象のサーバーに特別なソフトをインストールせず、Linux標準の「SSH」機能を利用して外部のマネージャー(監視用)サーバーから都度ログインして監視を行う手法です。
🔄 仕組み
-
監視サーバーから対象サーバーへ、SSHで都度ログインする。
-
指定されたログファイル(
/var/log/secureなど)を確認する。 -
前回監視した行(タイムスタンプや行数)を記憶しておく。
-
前回チェックした位置より「以降」のログに対して、あらかじめ指定した条件(例:
ERRORやFailedなどの文字列)に合致するメッセージがないか走査する。 -
条件に合致したメッセージが発生していれば、アラートとして検知・発報する。
💻 代表的なツール
-
パトロールクラリス(PATROLCLARICE) など
⭕ メリット
-
手軽に始められる: 監視対象サーバー側はLinux標準のSSHが動いていればよいため、事前の設定やソフトのインストールが不要。本番稼働中のサーバーにも影響を与えずに導入しやすいです。
❌ デメリット
-
アクセス(負荷)の頻発: 監視間隔(5分おきなど)ごとに毎回SSHの接続・認証・切断が発生するため、対象サーバー側でネットワークコネクションや認証ログが頻繁に発生します。監視対象が増えると、マネージャー側のリソースも消費しがちです。
2. エージェントによるログ監視
「現地の見張りが、異常を見つけたら本部に通報するスタイル」
監視対象のサーバーに「エージェント」と呼ばれる専用の常駐ソフトをインストールし、そのソフト自身にログを監視させる手法です。
🔄 仕組み
-
監視対象サーバーに専用のエージェントソフトをインストールする。
-
エージェントがそのサーバー内で直接ログファイルをリアルタイム(または高頻度)で監視する。
-
エージェントが異常(条件合致)を検知すると、そのログやステータスを中央の「マネージャーサーバー」へ送信する。
💻 代表的なツール
-
Zabbix(ザビックス) など
⭕ メリット
-
効率的でリアルタイム性が高い: 外部から毎回ログインする無駄なオーバーヘッド(接続処理の負荷)がありません。ログの差分チェックもローカル内で行われるため、ネットワークやサーバーへの負荷を最小限に抑えつつ、素早いアラート発報が可能です。
❌ デメリット
-
導入のハードル: すべての監視対象サーバーにエージェントソフトをインストールし、設定ファイルを配置する必要があります。OSのバージョンやセキュリティポリシーによっては、ソフトのインストール自体が許可されないケースもあります。
⚖️ まとめ:どっちを選ぶべき?
どちらの手法にも一長一短があります。選定の基準は以下を参考にしてみてください。
-
SSH(エージェントレス)が向いているケース
-
監視対象の数が少なく、手早くシンプルに監視を始めたい
-
既存のシステム(本番環境)に余計なソフトをインストールしたくない、規約上入れられない
-
-
エージェント型(Zabbixなど)が向いているケース
-
監視対象のサーバーが数十〜数百台以上あり、中央集権的に効率よく管理したい
-
ログの発生からアラート検知までのタイムラグを極力減らし、リアルタイムに検知したい
-
運用の規模や、対象サーバーのセキュリティポリシーに合わせて、最適なログ監視設計を選んでみてくださいね!
