【Rsyslog基礎 第1回】設計編 – ログ管理の要件定義とプロトコル・保存ルールの策定【AlmaLinux】

rsyslog講座

「何かあってから」では遅すぎる

こんにちは!「リナックス先生」です。
今回からは、インフラエンジニアにとって地味ながらも「生命線」と言える技術、「統合ログ管理サーバー」の構築に挑戦します。全5回の大型連載です。

コウ君

先生、質問です!
最近、管理するサーバーが10台に増えたんですけど、毎日1台ずつSSHでログインして /var/log/messages を確認するのが苦痛すぎます…。
これ、もっと楽にする方法はないんですか?

リナックス先生

いいところに気がついたわね。
サーバーが10台ならまだマシだけど、50台、100台、そこにネットワーク機器も加わったら、人力での確認は不可能よ。
それに、もしサーバーがハッキングされてログごと消されたら、どうやって犯人を追跡するの?

コウ君

あ…!サーバー内のログが消されたら、何も証拠が残らないですね…。
それはマズイです。

リナックス先生

そのために必要なのが「統合ログ管理サーバー(Syslogサーバー)」よ。
今回はAlmaLinux 9と標準ツールの「Rsyslog」を使って、あらゆる機器のログを一元管理するシステムを作るわ。
第1回は、手を動かす前の「設計編」よ。ここが一番大事だからしっかりついてきなさい!

1. 統合ログサーバー構築の目的とメリット

構築を始める前に、「なぜログを集めるのか」を明確にしておきましょう。設計の方向性がブレないようにするためです。

ログ収集の3つの柱

  1. 障害対応の迅速化(Troubleshooting)
    • ネットワーク障害時、スイッチ、ルーター、サーバーのログを時系列で横断的に見ることで、「どこが最初にコケたか」を一瞬で特定できます。
  2. 証拠保全とセキュリティ(Security & Forensics)
    • サーバーへの不正侵入時、攻撃者はまず痕跡(ログ)を消そうとします。ログサーバーにリアルタイム転送しておけば、手元のログが消されても「転送先」に証拠が残ります。
  3. 監査対応とコンプライアンス(Audit)
    • ISMS(ISO27001)やPCI-DSSなどのセキュリティ基準では、ログの長期保存と定期的なレビューが義務付けられています。「いつ、誰が、何をしたか」を証明する唯一の手段です。

2. システム構成と要件定義

今回の連載で構築するシステムの全体像を定義します。
実務で「基本設計書」に書くレベルの内容です。

項目 要件・仕様 理由・備考
OS AlmaLinux 9.x (64bit) RHEL 9互換でサポート期間が長く(2032年まで)、安定性が高いため。
ミドルウェア Rsyslog (OS標準) CentOS/RHEL系でのデファクトスタンダード。設定の柔軟性が高い。
収集対象 Linuxサーバー、Ciscoルーター、Firewall、Windows(Agent経由) マルチベンダー環境を想定。
受信プロトコル UDP 514 / TCP 514 あらゆる機器に対応するため両方開放する。
保存ルール /var/log/remote/ホスト名/ログファイル 機器ごとにディレクトリを分割し、混在を防ぐ。
保存期間 ローカル:1年
NFS:無期限(容量許す限り)
監査要件(最低1年)を満たすため。

3. プロトコル設計:UDPとTCPの使い分け

Syslog転送には、大きく分けてUDPTCPの2つの通信方式があります。
「とりあえずUDPで」と適当に決めるのは素人のやることです。それぞれの特性を理解して使い分けましょう。

UDP (User Datagram Protocol) – RFC 5426

  • 特徴: 「送りっぱなし」のプロトコル。相手が受け取ったか確認しません。
  • メリット: オーバーヘッドが小さく、ネットワーク帯域を圧迫しにくい。送信側のCPU負荷も低い。
  • デメリット: ネットワークが混雑すると、ログが「迷子(パケットロス)」になっても気づけません。
  • 採用基準:
    • 大量のアクセスログ(ウェブアクセスなど)
    • 古いネットワーク機器(UDPしか対応していない場合が多い)
    • 「多少欠損しても、全体傾向がわかればいい」ログ

TCP (Transmission Control Protocol) – RFC 6587

  • 特徴: 「到達確認(ACK)」を行うプロトコル。相手が受け取るまで再送を試みます。
  • メリット: 信頼性が高い。ログの欠損をほぼ防げる。
  • デメリット: 通信の往復が発生するため、大量のログが発生すると送信側の動作が重くなる可能性がある。
  • 採用基準:
    • 認証ログ、決済ログなどの「1行たりとも失ってはいけない」重要ログ
    • WAN越え(インターネット経由)での転送
リナックス先生

【設計の結論】
今回のサーバーでは「UDPとTCP、両方のポート(514番)を開ける」構成にします。
基本は信頼性の高いTCPを使い、TCP非対応の古いルーターなどはUDPで受け取る、という「いいとこ取り」のハイブリッド構成よ。

4. Syslogファシリティとプライオリティの理解

ログサーバーを設計する上で避けて通れないのが「ファシリティ(Facility)」「プライオリティ(Priority)」です。
これはログにつけられる「タグ」のようなものです。

ファシリティ(ログの種類・発生元)

Linuxやネットワーク機器は、ログを送る際に「これは何系のログですよ」という情報を付与します。

キーワード 内容・用途
0 kern カーネルメッセージ
4 auth / authpriv 認証・セキュリティ関連(SSHログインなど)
9 cron Cronジョブの実行ログ
10 authpriv 認証関連(プライベート)
16-23 local0 〜 local7 【超重要】 ユーザー独自の用途

★ここがポイント!
ネットワーク機器(Ciscoなど)のログ設計では、この local0 〜 local7 を活用します。
例えば、「ファイアウォールのログは local0 で送る」「スイッチのログは local1 で送る」と送信側で設定しておけば、受信側のRsyslogで「local0なら /var/log/firewall.log に保存する」といった振り分けが可能になります。

プライオリティ(重要度・深刻度)

ログの緊急性を示します。設定ファイルで「どのレベル以上を記録するか」を決める際に使います。

  • emerg (0): システム使用不可(パニック状態)
  • alert (1): 直ちに対処が必要
  • crit (2): 致命的なエラー(ハードウェア故障など)
  • err (3): 一般的なエラー
  • warning (4): 警告(エラーではないが注意)
  • notice (5): 通常だが重要な情報
  • info (6): 情報メッセージ(通常の操作ログなど)
  • debug (7): デバッグ情報(開発用、量が膨大)
コウ君

なるほど!
「info」レベルにしておけば、「warning」や「err」も全部含まれるってことですね。
逆に「debug」にすると、ディスクが一瞬で埋まりそうで怖いです…。

5. サイジング(ディスク容量の計算)

ログサーバー構築で一番失敗するのが「ディスク容量不足」です。
なんとなく決めるのではなく、論理的に計算しましょう。

計算式(見積もりの公式)

必要容量 = (1行あたりの平均バイト数) × (1秒間のログ行数:EPS) × (保存日数) × (台数) × (安全係数)

計算例

ある企業のネットワーク機器とサーバー合わせて50台を想定します。

  • 1行のサイズ: 日本語含め平均 200 Bytes と仮定
  • EPS (Events Per Second): 1台あたり平均 5行/秒(ピーク時考慮)
  • 保存期間: 365日(1年)
  • 台数: 50台

200 Bytes × 5 EPS × 60秒 × 60分 × 24時間 = 約86.4 MB/日(1台あたり)
86.4 MB × 50台 = 約4.3 GB/日(全体)
4.3 GB × 365日 = 約1.57 TB(年間)

結果: 1.5TBの容量が必要です。
ただし、テキストログは gzip 圧縮すると約1/10〜1/20に圧縮できます。
Logrotateで毎日圧縮する運用なら、「生ログ用 200GB + 過去ログ用 200GB = 合計500GB」 程度あれば、1年分はギリギリ入ると試算できます。

リナックス先生

【プロの助言】
ディスクは「容量」だけでなく「書き込み速度(IOPS)」も重要よ。
50台から同時にログが書き込まれると、HDD(ハードディスク)では処理が追いつかなくなることがあるわ。
最近のVPSはSSDが標準だから安心だけど、オンプレミスで作るなら絶対にSSDを選びなさい。

6. ディレクトリ構造の決定

最後に、サーバー内部のディレクトリ構造を決めます。
/var/log/ 直下にすべてのファイルを置くと、ファイル数が数万個になり、ls コマンドすら返ってこなくなります。

今回は、Rsyslogのテンプレート機能を駆使して、以下のような「階層型ディレクトリ」を自動生成させます。

/var/log/remote/
├── 192.168.10.1 (Webサーバー)
│   ├── 2026-01-01-messages.log
│   ├── 2026-01-01-secure.log
│   └── 2026-01-02-messages.log
├── 192.168.20.254 (Coreルーター)
│   ├── 2026-01-01-syslog.log
│   └── 2026-01-02-syslog.log
└── firewall-01 (FW)
    └── ...

この構成のメリット:

  • ホストごとにフォルダが分かれるので管理しやすい。
  • 日付がファイル名に入るので、過去ログを探しやすい。
  • 「1年前のフォルダごと消す」といった掃除が楽。

次回予告:いよいよ構築開始!

お疲れ様でした!これで「設計図」は完成です。
今回のポイントをおさらいしましょう。

  1. 目的: 障害対応とセキュリティのためにログを集める。
  2. プロトコル: 信頼性のTCP、互換性のUDP、両方使う。
  3. サイジング: ログは圧縮前提で計算し、SSDを用意する。
  4. 保存場所: /var/log/remote/ホスト名/ 配下に整理する。

次回は、この設計図を元に「AlmaLinuxへのRsyslogインストールとファイアウォール設定」を行います。
実際にコマンドを打っていく作業編です。お楽しみに!

▼ログサーバー構築におすすめのVPS

ログサーバーは常にディスクへの書き込みが発生します。I/O性能が高く、かつ将来的にディスク容量を簡単に増やせる(スケールアップできる)VPSを選ぶのが正解です。

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント