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台の管理が必要だったので、ひとまず今回はこの振り分けルールで要件はクリアできそう。

設定・書式

設定は/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
    & ~
    
    (実際のrsyslog.confには、これより下の行に通常のログ設定が記載される)

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

ポイント&注意事項メモ

・ファシリティの設定より上位に記載すること。
 rsyslog.confの中で、facilityより上位に"RULES"というコメントがあるので
 その直下に書けば書式ミスは減らせる。

・出力先ファイルが存在していない場合、rsyslogdの再起動時に作成されるので
 予めファイルを作成しておく必要は無し。

 

 

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

執筆者:


comment

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

CAPTCHA


関連記事

[MySQL] mysqlhotcopyを試してみた

基本的にMyISAMのコピーをするだけで、InnoDBには使用不可。 複数のストレージエンジンをもつ環境では、あまり使い道は無いかも。一方で高速動作が見込めるので、MyISAMのみの環境ではメリットは …

nagios/引数マクロ(macros)

nagiosで設定される引数がどこで定義されているのかをちょっと調べてみた。 システム内で使われる変数はマクロとして扱われる。 (言うなればnagiosの環境変数、的な?ちょっと語弊があるかも) 例: …

no image

オープンソースのWebロードバランサー(に使えるミドルウェア)をいろいろ調べてみる

  お客さんのWebシステムをハウジング環境からAWSへ移行するにあたり、一部のサイトにおいて仕様上ELBを使えない状況になってしまい、代替の方法を考える必要が出てきてしまった… ELB以外でロードバ …

nagiosgraph/4.グラフ設定例/check_cpu.sh

nagiosgraphへのグラフ設定追加例[check_cpu.sh] † nagios exchangeから取得したcheck_cpu.shの実行結果をnagiosgraphでグラフ化 …

[nagios] nagios plugin downtime_sched(ダウンタイムスケジューラ)

  以前設定した、Recurring scheduleのアップデート版”downtime_sched”のインストール。 前回インストール後に全然アップデートしてなかった。 ちゃ …