LoginSignup
0
2

More than 5 years have passed since last update.

twitter -> fluentd -> elasticsearch -> elastalert -> slackで、エゴサをしたい人生だった。

Posted at

前提

作業未完です!!

かなり個人的な作業手順メモです。

fluentdとかelasticsearchを初めて触りながらやってみた。

amazon linuxで作業。
ちなみにlinux全く分からないマンです。

fluentd

fluentd本体

preinstallガイドにしたがって作業

以下忘れずに。

ulimit -n
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536

このへんも適当にやっとく。

http://qiita.com/ayaniimi213/items/4197a295c13b59166e8c

インストール

curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

fluent-plugin-twitter

インストール手順は以下。

# for td-agent2
sudo td-agent-gem install eventmachine
sudo td-agent-gem install fluent-plugin-twitter

twitterのtokenとかは適当に発行。

fluent-plugin-elasticsearch

sudo td-agent-gem install fluent-plugin-elasticsearch

ElasticSearch

ElasticSearch本体

まずJava8をいれる。

jvmのヒープサイズ変更

awsのec2をmicroにしてると、設定を変更しないと、elasticsearchが起動しないため。

sudo vi /etc/elasticsearch/jvm.options
-Xms768m
-Xmx768m

上記のサイズがベストなのかはわからん。

参考:
http://fujitora.hatenablog.jp/entry/2016/10/31/180411

日本語検索

sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji

ElastAlert

下記参照しながらインストール

やらかしたっぽくてパスが通らなかったので適当に追加。

which pip
export PATH=/usr/local/bin:$PATH

ruleとalert文面の書き方

クエリの書き方が全く分からずすごい試行錯誤した。たぶんイケてない。

(kuromoji_analyzerも必要かどうかよくわかってない)

下記参照

例:

rule.yaml
...ルール名とか省略...
filter:
- query:
    query_string:
      query: "じゅみ OR (/.*jumit.*/)"
      fields: ["text"]
      default_operator: "and"
  analyzer:
    kuromoji_analyzer:
      type: "custom"
      tokenizer: "kuromoji_tokenizer"
...slack_webhook_urlとかは省略...
alert_subject: "{0} <https://twitter.com/{1}/status/{2}|Tweet>"
alert_subject_args: ["text","user.screen_name", "id"]
alert_text: "{0} <https://twitter.com/{1}/status/{2}|Tweet>"
alert_text_type: exclude_fields
alert_text_args: ["text","user.screen_name", "id"]

なんか英単語系の部分一致がうまくいかなかったので、むりやり正規表現にした。(indexの設定とかめんどかったため)

とりあえず動かしてみるが。。

ルールのテストではうまく行ったけども、userstreamのデータが増えてくるとクエリの結果取得がすごい時間かかってるっぽい。

ぐぬぬ。。。

fluent-plugin-slackを使わずにelasticsearch通して通知しようとしてるのは、エゴサ以外に、1日周期ぐらいで集約して情報を通知するのも考えてて、設定が二重になるのがイヤだったから。

でも、遅いのであればそっちにしようかな。。
(Elasticsearchに即時性求めちゃいけない気もしてるし)

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2