16
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

rsyslogでシステムログ管理

Last updated at Posted at 2018-09-08

##はじめに
Linuxでのログ管理では定番のrsyslogに関して記事にしました。
詳細は説明は省き、構築や設計時に使えるネタをまとめました。

##rsyslogとは

  • ログ管理システム

    RHEL7系・6系ではrsyslogが標準

    RHEL5系ではsyslogが標準

rsyslogではUDPの他、TCPでログを送ることができるようになった。

##動作確認環境

項目 バージョン
OS CentOS Linux release 7.4.1708 (Core)
rsyslog rsyslog-8.24.0-12.el7.x86_64

rsyslogはデフォルトでインストール済み。

##rsyslog設定(送信側)

・書式

UDPで送信
 [送信するファシリティ/プライオリティを指定] @remote-host:514

TCPで送信
 [送信するファシリティ/プライオリティを指定] @@remote-host:514

・例

*err;mail.none;authpriv.none;cron.none @@192.168.10.1:514

err以上のログを、192.168.10.1へTCPで転送する。
noneを指定したファシリティは転送しない。

##rsyslog設定(受け側)
受付けるプロトコルを設定します。
デフォルトではコメントアウトされている為、利用するプロトコルに合わせてコメントアウトを解除します。

UDP・TCP両方利用する場合は、下記のように設定する。

# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
#↓コメントアウト解除
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
#↓コメントアウト解除
$ModLoad imtcp
$InputTCPServerRun 514

##ログ書き込みレートを設定する。
デフォルトでは、5秒、200行まで書き込みを行いますが、200行以降は破棄されてしまいます。

5秒に200行以上ログが転送されるようなシステムの場合、チューニングが必要な項目になります。

  • 無制限に書き込む
$SystemLogRateLimitInterval 0
  • 5秒、1000行まで書き込む、以降は破棄
$systemLogRateLimitInterval 5
$SystemLogRateLimitBurst 1000

##ログ振り分けを行う
転送されてきたログの振り分け(err以上とwarn以下)を行いたい場合に、簡単な条件式が利用できます。

warn,notice,infoは /var/log/sv/hoge.logに書き込む。

if $fromhost-ip == "IP Address" and $syslogseverity > '3' then /var/log/sv/hoge.log
& stop

err,crti,alert,emerg,panicは/var/log/sv/hoge-err.logに書き込む。

if $fromhost-ip == "IP Address" and $syslogseverity < '4' then /var/log/sv/hoge-err.log
& stop

syslogseverityの値を利用して、条件により振分けを行っている。

syslogseverity syslogseverity-txt
0 emerg,panic
1 alert
2 crit
3 err
4 warning
5 notice
6 info
7 debug

また、「& stop」を入れることですでに振り分けたログは以降の処理で書き込まない様にできる。

「& stop」を入れない場合、デフォルトで設定されている下記設定によって/var/log/messageにも転送ログが書き込まれる。
処理は上から順に行われる為、下記設定より上に記述する。

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

##ネットワーク機器からのログ
ネットワーク機器からのログは、ファシリティを利用する。

  • ネットワーク機器側の設定
ファシリティ syslogseverity リモート先
local2 0~7 IP Address
ファシリティはlocal0~local7で任意の値を利用する。
  • サーバ側の設定
local2.err                /var/log/nw/honge-nw.log

ネットワーク機器が複数ある場合は、送信元IPで識別して振り分けを行います。

if $fromhost-ip == "IP Address" then /var/log/sv/hoge-nw1.log
& stop

if $fromhost-ip == "IP Address" then /var/log/sv/hoge-nw2.log
& stop
16
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?