在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要求立即性)