syslog
ネットワーク機器やサーバが出力するログ(システムログ)を、ネットワークを介してログサーバ(syslogサーバ)に送り、まとめて保存するための仕組み。標準ではUDPの514番ポートを使う。
イマシルちゃんの解説
ルータもスイッチもサーバも、それぞれ「いつ、何が起きたか」の日記(ログ)をつけているんだ。
でも、機器ごとにバラバラに日記を見に行くのは大変だよね。
syslogを使うと、みんなの日記を1台のサーバに集められるんだ。
トラブルが起きたとき、全部の日記を並べて読めるから、原因を探しやすくなるんだよ!
より深い解説
定義
syslogは、ログのメッセージの形式と、それをネットワークで送る方法を定めた仕組みである(RFC 5424など)。各機器は、ログをsyslogサーバに送信し、syslogサーバは受け取ったログをファイルやデータベースに保存する。従来はUDPの514番ポートを使うが、確実に届けたい場合や暗号化したい場合は、TCPやTLS(ポート6514)を使う方式もある。
メッセージに含まれる主な情報
| 情報 | 内容 |
|---|---|
| ファシリティ | ログの発生元の種類(カーネル、認証、メール、ローカル用など) |
| シビアリティ(重要度) | 0(Emergency:緊急)~ 7(Debug:デバッグ)の8段階 |
| タイムスタンプ | ログが発生した時刻 |
| ホスト名 | ログを出した機器 |
| メッセージ | 内容 |
ログを集める目的
| 目的 | 内容 |
|---|---|
| 障害の原因分析 | 複数の機器のログを時系列に並べて、何が起きたかを調べる |
| セキュリティの監視 | 不正なアクセスの兆候を見つける。証拠として保全する |
| 改ざんの防止 | 機器が乗っ取られても、送信済みのログは別のサーバに残る |
| 容量の確保 | 機器の中の小さな記憶領域では、古いログが消えてしまう |
時刻の同期が重要な理由
複数の機器のログを突き合わせて調べるには、各機器の時計がそろっている必要がある。時計がずれていると、出来事の前後関係を正しく判断できない。そのため、ネットワーク機器やサーバの時刻を、NTPで同期させておく。
調査に使うログの例
| 知りたいこと | 見るログ |
|---|---|
| どの端末が不正な通信をしたか(IPアドレスから端末の特定) | ファイアウォールの通信ログで送信元IPアドレスを確認し、DHCPのリースログで、その時刻にそのアドレスを使っていた端末(MACアドレス)を調べる |
| 誰がいつどのサイトにアクセスしたか | プロキシサーバのアクセスログ |
| 誰がいつログインしたか | 認証サーバの認証ログ |
| 機器の異常(インタフェースのダウン、NATテーブルの枯渇など) | 機器のシステムログ |
ファイアウォールの設定
DMZなどにある機器から、内部のsyslogサーバにログを送る場合は、ファイアウォールで、その機器から syslogサーバへの UDP/514 の通信を許可する必要がある。