So-net無料ブログ作成
  • ブログをはじめる
  • ログイン

Elasticsearchでチャレンジ その1 (FreeBSD 11.2R、2018/07/04) [ports]

せっかくElasticsearchが動くようになったのですが、良いログのサンプルがなく、ちょっとしたことを考えてみました。それは私のVPSで動いているipfwのログを、logstashで加工し、Elasticsearchに読み込ませるのです。

 Elasticsearch + Kibana:ローカルFreeBSD
  ↑
 logstash:VPS上のFreeBSD

logstashからElasticsearchへは、TCP/IP上でデータを飛ばせるようですが、私のローカルFreeBSDとVPSは直接接続ができないため、OpenVPNを使用し一時的にダイレクト通信できるようにしました。(OpenVPN導入の話はまた今度)

ただlogstashの設定構文は難解で、かなり苦戦しています。(Web上にもサンプルは少ない)
基本的には正規表現等のパターンマッチングを駆使して、ログを切り出していくイメージです。例えば以下のようなFWログだと、<時間>+<ホスト名>+<プログラム名>+<行番号>+<アクション>+<送信元>+<送信先>+<インタフェース>に細分化することができますね。
Jul  4 04:27:22 vpshost kernel: ipfw: 2400 Deny TCP 192.168.A.B:6300 10.0.C.D:445 in via em0

https://qiita.com/tuneyukkie/items/75cbb4d44f901fec2188
上記を見ていると、logstashで解析・細分化したデータをテキスト形式でデバッグ出力できる方法があるようなので、まずはそちらで試してみます。試したコンフィグはおそらく間違っているので、敢えてアップロードしません。(ちゃんと動くようになってから)

結果は以下のようなログがどばっと30行ほど出て大失敗です。まぁ、ちゃんと理解できていないのでしょうね…
[2018-07-04T09:39:02,407][ERROR][logstash.agent           ] Failed to execute action {:id=>:main, :action_type=>LogStash::ConvergeResult::FailedAction, :message=>"Could not execute action: LogStash::PipelineAction::Create/pipeline_id:main, action_result: false", :backtrace=>nil}

もう一つ大問題があって、私のVPSはメモリが1GBしかありません。(貧乏なので)
Javaを動かすということで、すごくイヤな予感がしていたのですが、logstashだけならなんとかなるかも、という甘い考えは儚くも崩れ去りました。話にならないほどリソースが足りません。
Mem: 578M Active, 10M Inact, 131M Laundry, 228M Wired, 96M Buf, 16M Free
Swap: 3072M Total, 436M Used, 2636M Free, 14% Inuse, 224K In, 108K Out

  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
77437 logstash     14  52    0  2489M   357M uwait   0   0:29 103.55% java
78254 root         14  52    0  2483M   336M uwait   1   0:22  95.49% java

sshのキーレスポンスが悪化するほど、ダメダメな状態でした。ちょっと他の方法を考えますかねぇ。

タグ:elasticsearch
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。