syslogとは。監視方法やsyslogサーバーの構築方法を解説

大量のサーバーやネットワーク機器などの稼働状況を把握するためには、syslogの利用が便利です。

本記事では、syslogに焦点を当て、用途やログの見方のほか、syslogサーバーの構築方法についても紹介します。

VPSならミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す

syslogの概要

syslogの仕組み、用途、syslogとrsyslogの違いについて解説します。

syslog とは

syslogとは、サーバーやルーター、プリンターなどの機器の稼働状況を把握するための仕組みです。

例えばLinuxでは、稼働しているプログラムのログをシステムログとして記録する「syslogd」というプログラムが動いています。

これはデーモンとして常に稼働し続け、プログラムが出力するメッセージを記録します。

 

Linuxの稼働状況を示すログは「/var/log」ディレクトリ配下に格納され、プログラムごとに分かれてファイルに保存されます。

ログファイルの例としては、以下のようなものがあります。

    • messages:システムログ
    • cron:スケジューリングされたタイミングでプログラムを実行するcronのログ
    • secure:ユーザーのログイン情報などセキュリティに関するログ

 

このほか、ネットワーク上のメッセージを転送するプロトコルも「syslog」(System Logging Protocol)です。

このプロトコルを利用して、ネットワーク上にあるシステムログを集約して管理するサーバーを「syslogサーバー」と呼びます。

syslogは、サーバーやネットワーク機器で稼働するプログラムのメッセージを保存する仕組みと、ネットワーク上のシステムログを転送するプロトコルという2つの意味を持ちます。

Unix系OS専門のホスティングサービス「ミライサーバー」

syslogの用途

syslogが最もよく活用される用途は、「システムの監視」です。

システムに何らかの異常が起こった場合、そのタイミングに手動でシステムログを確認するのは困難です。

そのため、syslogを利用して常時出力されるメッセージをファイルに保存し、その内容を監視ツールによって監視します。

 

例えば、システムログ(messages)には、CPUやメモリなどのハードウェアの異常やOSの異常を検知した場合にメッセージが出力されます。

そこで監視ツールに対して『システムログで「ERROR」または「Failed」の単語が出力されたら、アラートを通知する』という設定を行います。

これにより、メッセージが出力されたタイミングで監視ツールによって通知が行われ、異常に対してすぐに気づくことができます。

 

syslogと監視ツールで監視できるのはハードウェアやOSの異常だけではありません。

OS上で稼働しているアプリケーションやデータベースなどのプログラムのログも、同様に監視できます。

プログラムが停止やエラー、パフォーマンスの停止などの異常が発生した場合も、ログに出力されます。

このようなプログラムの稼働状況以外にも、ユーザーのログイン状況(ログイン成功・失敗)もログが出力されます。

これを監視すればセキュリティ監視も可能です。

 

このように、syslogは主に監視のために利用されます。

syslogとrsyslog

Unix/Linux系OSにおいて、システムログを出力するプログラムは「syslog」のほかに「rsyslog」があります。

rsyslogは、syslogを改良・機能追加したものであり、多くのLinuxディストリビューションに採用されています。

 

syslogとrsyslogは、以下のような違いがあります。

 syslogrsyslog
通信プロトコルUDPTCP
ログのフィルタリング不可可能
圧縮機能なしあり
暗号化機能なしあり

syslogは通信プロトコルとしてUDPを使用しています。

UDPでは通信途中でデータが欠落する可能性があるため、信頼性の高いTCPを使用したrsyslogが開発されました。

rsyslogはフィルタリング機能や暗号化機能も追加され、より使いやすいものになっています。

TCPやUDPについてもっと知りたい方は、「TCP/IPとは」の記事をご覧ください。

>TCP/IPとは。プロトコルの特徴やOSI参照モデルとの違いを解説

Unix系OS専門のホスティングサービス「ミライサーバー」

syslogの基本設定

syslogでは、さまざまな設定が行えます。

特にrsyslogでは、フィルタリングや振り分けなどの設定も行えます。

今回はrsyslogでの設定例を紹介します。

設定ファイルは「/etc/rsyslog.conf」です。

ファシリティ

ファシリティはメッセージの出力元を指し、どのようなメッセージを記録するか選択できます。

主に以下のようなものがあります。

キーワード送信元
kernカーネル関連のメッセージ
auth(または authpriv)認証関連のメッセージ
mailシステムが送信するメール関連のメッセージ
daemondaemon関連のメッセージ
croncron関連のメッセージ
syslogsyslog関連のメッセージ
local0~7その他(独自設定)

プライオリティ(優先度)

プライオリティは、メッセージを記録する優先度です。

プライオリティが低いものまで収集するとログが増大してしまうため、必要なもののみにとどめることが大切です。

優先度が高い順に以下のように定められています。

キーワード優先度
emerg緊急
alert早急な対処が必要
crit致命的
errエラー
warning警告
notice注意
info情報
debugデバッグ
none無効、ログを出力しない

このファシリティとプライオリティを組み合わせて、フィルタリングを設定することができます。

例えば、以下の設定では「cron関連info以上のログ/var/log/cronに出力する」という内容になります。

cron.info /var/log/cron

syslogサーバーの構築

syslogサーバーを構築すると、ネットワーク上の各機器から出力されるメッセージを収集し、一元管理できます。

本章では、syslogサーバーの構築方法について解説します。

※OSは、RHEL 7を想定

コマンドを使用するため、苦手な方はこちらの「基本のLinuxコマンド集」を見ながら作業してくださいね。

rsyslogのインストール

前提として、サーバーおよびクライアント双方にrsyslogをインストールします。

RHEL 7は、rsyslogがインストール済みです。

以下のコマンドでインストールされているか確認できます。

systemctl status rsyslog.service

サーバー側の設定

syslogサーバー側で、クライアントからsyslogを受け付けるための設定を行います。

設定ファイルである /etc/rsyslog.conf を編集します。

# vi /etc/rsyslog.conf

最初に、クライアントからの通信を受け付けるための設定を行います。

次の行のコメントを(行頭の#)を削除します。

これは、514/UDPおよび514/TCP両方の通信を受け付けることを意味します。

$ModLoad imudp
$UDPServerRun 514

$ModLoad imtcp
$InputTCPServerRun 514

次に、受信したメッセージに使用するテンプレートを作成します。

これは、受信したメッセージをローカルに保存する場所を指示する役割を持ちます。

「GLOBAL DIRECTIVES」ブロックの前に記述する必要があります。

$template RemoteLogs,”/var/log/%HOSTNAME%/%PROGRAMNAME%.log”
. ?RemoteLogs & ~

この例では、/var/log ディレクトリの配下にホスト名ごとのディレクトリがつくられ、その中にプログラム名ごとのログファイルが保存されます。

 

これで、サーバー側の設定は完了です。

rsyslogを再起動すれば、設定が反映されます。

# systemctl restart rsyslog.service

なお、サーバー側でSELinuxやファイアウォールなどにより通信制限がされている場合は、通信ポートを開くように設定を行ってください。

クライアント側の設定

syslogサーバーに対して、syslogを送信するための設定を行います。

/etc/rsyslog.conf を編集します。

# vi /etc/rsyslog.conf

ファイルの末尾に、以下の行を追記します。

# *. * @@192.168.1.254:514

これは「syslogで生成されたすべてのログを192.168.1.254のポート514/TCPに対して送信する」という意味です。

*. *」は送信するファシリティを指します。

例えば、メール関連のメッセージのみ送信したい場合は、「mail.*」と記載します。

192.168.1.254」は、syslogサーバーのIPアドレスに置き換えてください。

@@」だと信頼性が高いTCP、「@」だと高速に処理されるUDPで通信します。

サーバー側で設定した内容と同じ設定を行います。

 

これで、クライアント側の設定は完了です。

rsyslogを再起動すれば、設定が反映されます。

# systemctl restart rsyslog.service

まとめ

今回はsyslogの用途やログの見方のほか、syslogサーバーの構築方法について解説しました。

サーバーやネットワーク機器の稼働状況を監視するために、syslogは欠かせないものです。

多くの機器でシステムが構成されていたり、長期間システムが稼働したりすると、ログも大量に出力され、管理が難しくなります。

そのため、syslogを上手に設定し、一元管理することが大切です。

ぜひ今回の記事の内容を参考に、syslogを上手に活用してください。

UnixやLinuxのVPSならミライサーバー

ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。

ミライサーバーのVPSでは、高速処理が可能なSSD全プランに搭載しています。

OSは、UbuntuDebianAlmaLinuxなどの豊富なラインアップから選択できます。

2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。

▼ミライサーバーについてはこちら▼Unix系OS専門のホスティングサービス「ミライサーバー」

VPSなら「ミライサーバー」

・全プランSSD搭載
・2週間無料

▶ ミライサーバーを無料で試す

関連記事

特集記事

TOP