harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

GNU/Linux infra network 運用

[メモ]rsyslog たくさんのNW機器のsyslogを振り分ける方法

投稿日:2014年8月22日

Last Updated on 2021年7月4日 by かんりにん

客先にそこそこの数のルーター、スイッチ、APがあるので、syslogサーバーを立てて一括管理しておきたいのだけど、DBに放り込むほどではないのでrsyslogdでまかなうことに。
syslogファシリティだと空きが6つしかないため、なんか代わりの方法ないかといろいろ探っていたら、rsyslogのルール設定で、条件式をもとにログを振り分ける方法を発見!
Juniper4クラスタ、Cisco10台、ヤマハ4台、パナソニック6台、計24台の管理が必要だったので、ひとまず今回はこの振り分けルールで要件はクリアできそう。

-参考:お世話になっております!
rsyslog 公式サイト
The Property Replacer
rsyslog.conf
rsyslogを設定する

設定・書式

設定は/etc/rsyslog.confへ追記する形となるが、”プロパティ”、”条件式”、”設定値”で1セットになる。

書式

:<プロパティ名>, <条件式>, <設定値> -<出力先ファイル>

プロパティ抜粋

受信ログの判定対象に出来るプロパティを抜粋。

msg 受信するログ内のメッセージ
hostname メッセージに含まれるホスト名
fromhost 送信元ホストの名称
fromhost-ip 送信元ホストのIPアドレス
syslogfacility 受信するログに指定されたsyslogファシリティ

そのほか色々、多数あり!
詳しくは The Property Replacerを参考のこと。

今回は送信元ホスト(ルータ、スイッチ)のIPアドレスを判定対称にするので”fromhost-ip”を使用。

設定例

Ciscoカタリストのログを出力する場合の書式例としては、こんな感じ。

  • 送信元ホストのIPアドレス(SVI)を判定
  • 条件は”設定値と一致”
  • 設定値は”192.168.128.254″
  • 出力先は”/var/log/network/catalyst3750.log” 。

上記をふまえ、”実際の条件式はこんな感じ。

:fromhost-ip, isequal, "192.168.128.254" -/var/log/network/catalyst3750.log

また、これだけだと指定した出力先のほか、/var/log/messagesにも出力されるため、二重の出力となってしまう。
これを避ける場合は、条件式の直下に下記のルールを追加して、messagesへの出力を抑制。

& ~

これは直前の条件に合致したログを破棄する指定。

rsyslog.confへの設定例

# RULES1 cisco catalyst
:fromhost-ip, isequal, "192.168.128.254"  -/var/log/network/catalyst3750.log
&amp; ~

(実際のrsyslog.confには、これより下の行に通常のログ設定が記載される)

これでmessagesへの出力は抑制され、指定したログファイルへのみ出力が行われる。

ポイント&注意事項メモ

  • ファシリティの設定より上位に記載すること。
    rsyslog.confの中で、facilityより上位に”RULES”というコメントがあるので
    その直下に書けば書式ミスは減らせる。
  • 出力先ファイルが存在していない場合、rsyslogdの再起動時に作成されるので
    予めファイルを作成しておく必要は無し。

rsyslog 実践 ログ管理入門 Kindle版

-GNU/Linux, infra, network, 運用
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

[メモ]cdコマンドで、ひとつ前のディレクトリに戻る場合[bash]

シェルでの作業中に、ふたつのディレクトリを行ったり来たり、ということが多いとき cdとかのオプションで指定できないかな?とmanを探っていたら、ふつーにあった(汗 $ cd – (オプション&quot …

no image

サーバ運用でよく使うスクリプト(netstat)

最近ご無沙汰なのでシェルの書式を忘れてきた…ということで自分用に備忘録。 – netstatでステータスが”ESTABLISHED”のセッションを一覧表示し、1秒更 …

[AWS EC2] RHEL6のインスタンスでttyS0 のエラーが大量発生

  AWS EC2にてRedHat Enterprise Linux 6.5(以下RHEL6.5)のインスタンスを立ち上げ、MySQLサーバーをセットアップしてる最中 /var/log/message …

no image

script/曜日の判定(if文とdateオプション)

曜日を判定する勉強用スクリプト。 dateコマンドのオプション”%u”で曜日を数値で出力し、あらかじめ決めた曜日に合致するか否かで メッセージを切り替える。 デフォルト曜日は日 …

no image

メモ:lsコマンドでタイムスタンプの表記を変える

lsコマンドにてタイムスタンプの表記を変える場合は、オプション”-l”との併用で”–time-style”をつけ 各種表記やdateコマンド …