【ラズパイ鯖】ログ地獄 (2)

ラズパイ鯖のログ出まくりing問題。

 

【ラズパイ鯖】ログ地獄 (1)

 

 

 

■問題点

  1. firewalldのログ出力を/var/log/messagesにしているため、大量にログが出て他の情報が埋もれやすい →分けたい
  2. 釣られて(?)kern.log、syslogにも同じログが出力されている
  3. ログローテされてなくね?

 

 

1. & 2. ログの出力整理

 

まずFirewalldでの設定。

リッチルールでログを出す設定にしている。

 

rich rules:
 rule family="ipv4" forward-port port="XX" protocol="tcp" to-port="XX" to-addr="123.45.67.89" log prefix="hoge:"

 

コマンドはこんな感じで。

firewall-cmd --zone=hoge --permanent --add-rich-rule='※上記ruleと同じ文字列※'

 

という設定にするとmessagesにプレフィックスで設定した文字列を含んでログが出力される。

上記ルールは見ての通り、ポートフォワードの設定なんだけど、

リクエストが多いところに設定すると 凄まじい勢いでログが流れるw

messagesは他の色々な情報出力に使われているので埋もれる(ノ∀`)

 

firewalldでログの話といえば、「拒否したリクエストをログに出力する」ために

# firewall-cmd --set-log-denied=all

で出るようになりますよ という情報が多かった。

ちなみに許可/拒否に関係なくログが出る

この設定をした上で、前述のリッチルールの設定をすると

ログは倍 出るw(正確には ちょっと長いので倍以上)

 

用途的にはポートフォワードの部分に限ってログが欲しいので、リッチルールで設定する。

--set-log-deniedはoff。

 

ログを分けるためにはリッチルールで設定したプレフィックスで拾って

出力先を変える という方法を使う。

調べた感じでは/etc/rsyslog.confのRulesの部分を

#kern.* /dev/console
:msg, contains, "hoge:" /var/log/iptables

って書きなさいよ ということだ。

kernログ止めて良いのか・・・?

確かに見てもいないけど(何 なので今回はコメントアウトしなかった。

環境が違うから鵜呑みにしてはいけない。

俺の環境だとRulesに先客として8つのログが居る。どうすんのよコレw

 

まぁ良いや という事で

真ん中辺に居たkernログの次の行に記載した。

確かに新たに設定したログが出力されるようになって 目的は果たせたかのように見えた・・・が

件の怒濤のログ出力が発生するようになってしまったw

 

やはりキモはrsyslogで、

/var/log/syslog や /var/log/messages

もここで制御している。

 

syslogは

*.*;auth,authpriv.none  -/var/log/syslog

messagesは

*.=info;*.=notice;*.=warn;\
 auth,authpriv.none;\
 cron,daemon.none;\
 mail,news.none  -/var/log/messages

ってなっているので、

回避のしようがないw

 

これだとログレベルで回避はできないし、どうしたものかと あーだこーだ 数時間悩んで

あ。そーか。

Rulesの最初にもってきて、以降は出力しない とすれば良いのか。

 

:msg, contains, "hoge:" -/var/log/hoge_log
& ~


もしくは

:msg, contains, "hoge:" -/var/log/hoge_log
:msg, contains, "hoge:" ~


 

 

これにて一件落着!

 

 

結論

 

firewalldでゾーンやもっと細かい単位でログを分けて出力したい場合は

ログプレフィックス付きのリッチルールを作成する。

 

例)ポートフォワードの場合

firewall-cmd --zone=hoge --permanent --add-rich-rule='rule family="ipv4" forward-port port="XX" protocol="tcp" to-port="XX" to-addr="123.45.67.89" log prefix="pre_hoge:"'

 

リッチルールを作成した上で/etc/rsyslog.confに振り分けルールを追記する。

###############
#### RULES ####
###############
#
# First some standard log files. Log by facility.
#
:msg, contains, "pre_hoge:" -/var/log/hoge_log
& ~
・・・

 

ログローテに続きます(・∀・)

To Be Continued

 

 

カテゴリー: PC, Web, ソフトウェア, 技術的 タグ: , , , , ,  [パーマリンク]

コメントを残す

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