在Twitter中收集数据,通过Fluentd传输到Elasticsearch,并使用ElastAlert进行监控,最终将结果推送到Slack,这就是一种想要进行自我检索的生活方式

前提

作业还没有完成!!

这是相当个人化的作业步骤备忘录。

我一边初次接触Fluentd和Elasticsearch,一边进行尝试。

我在 Amazon Linux 进行工作。
顺便一提,我是一个完全不懂 Linux 的人。

流畅的日志录入工具

流畅的记录器

根据预安装指南进行操作。

请不要忘记以下内容。

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

流利插件-推特

安装步骤如下。

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

推特的令牌和其他相关事项可以随意生成。

流利的插件-弹性搜索

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

弹性搜索

ElasticSearch的核心

首先安装Java8。

调整JVM堆大小

如果将AWS的EC2实例设置为微型实例,不更改配置的话,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

弹性警报

请按照下列参考进行安装

因为看起来真的很糟糕,所以随便加了一些。

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

规则和警报文本的撰写方式

我完全不知道如何编写查询,尝试了很多次,可能不太成功。

(我对于是否还需要使用kuromoji_analyzer并不太清楚)

请以下为准

请问这个菜单有什么特色菜?
所以你能给我推荐一道特别好吃的?
我今天想尝试一下你们的招牌菜。

...ルール名とか省略...
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"]

因为英语单词的部分匹配没有成功,所以我强行用正则表达式进行了处理。(因为设置索引等很麻烦)

暂时先试试看吧。。

在测试规则时一切都很顺利,但是随着userstream数据的增加,获取查询结果变得非常耗时。

唉唉唉…

不使用fluent-plugin-slack,而是通过elasticsearch进行通知的原因,除了为了自我搜索外,还考虑到每天汇总并通知信息,不喜欢设置重复的原因。

如果很慢的话,那就用那个吧。
(我也觉得不应该对Elasticsearch要求立即性)

广告
将在 10 秒后关闭
bannerAds