続オレオレFortiAnalyzer

Fluentd + Kibana3 で FortiAnalyzer いらず の続きです。 前回、CSVフォーマットに対応しようと書いたので対応させてみました。Parser はまたベンチマークとってみたところ、CSVじゃないバージョンよりも軽くなってました。 これも Gist に置いてあります。 https://gist.github.com/yteraoka/7043113 ただ、 CSV フォーマットにも罠がありました! strptime になぜかコケる…

Oct 19 00:00:00 fortigate date=2013-10-18,time=23: 59:59,...

ん?んんん?時と分の間に謎の空白が!!

FortiGate の Syslog 設定について

Webインターフェースでは Syslog に traffic ログや webfilter ログを出力する設定が無いのですが、CLI で操作することで出力することができます。 Syslog も FortiAnalyzer 用出力もそれぞれ3つの出力設定が可能です。 fortigate-cli-40-mr3.pdf

  • syslogd
  • syslogd2
  • syslogd3
  • fortianalyzer
  • fortianalyzer2
  • fortianalyzer3

2,3 は GUI からアクセスできません。GUI からアクセスできる syslogd も traffic ログなどを設定する項目は GUI に無いので、これは触らないことにしておいて syslogd2 を使ってこれらのログを出力することにします。

$ show log syslogd2 setting
config log syslogd2 setting
    set status enable
    set server "10.20.30.40"
    set csv enable
    set facility local6
end

syslog (2じゃない) の出力項目の確認をしてみます。

$ show log syslogd filter
config log syslogd filter
    set email disable
    set traffic disable
    set web disable
    set infected disable
end

email, traffic, web, infected が disable にされています。だから syslog2 では filter は空っぽにしておけば全部出せます。

strptime の cache

strptime って実は結構重い処理だったということで、最近、Fluentd の TextParser には strptime の結果を cache する仕組みが入りました。FortiGate のログも traffic ログや webfilter ログを出してると秒間そこそこの量のログが吐き出されます。こういう場合は cache が欲しいです。追加してみよう。

パフォーマンス面

30,000〜50,000 lines / min くらいでは特に問題は発生していないですね。 不要な項目は ElasticSearch に送らないようにしているので 5GB のログファイルから生成される ElasticSearch のインデックスファイルは 1GB 程度。 ElasticSearch のサーバーは KVM Guest で 2GB RAM、 JVM の heap は 1GB. KVM Host の Storage は RAID5 でそんなに速くない。CPU は Xeon 5570 で 2 vCPU 割り当てている。でも CPU はあまり使われていない。 特に困ったこともないのでチューニングもしていない。 syslog サーバーでの Fluentd の CPU 使用率は高い。

Built with Hugo
テーマ StackJimmy によって設計されています。