使用容器和Elasticsearch集群对Twitter进行监控
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用容器和Elasticsearch集群对Twitter进行监控相关的知识,希望对你有一定的参考价值。
介绍
Elasticsearch是ELK(Elasticsearch/Logstash/Kibana)的基石。在这篇文章中,我们将使用Rancher Catalog来部署stack,并将它用于追踪Twitter上的tag和brand。
追踪Twitter上的hashtag对于衡量基于Twitter的营销活动的影响力是非常有用的。你可以从中提取出诸如您的推文被转发的次数,你的营销活动为你带来了多少位新的关注者等有效信息。
安装ELK stack
Elasticsearch
若你已经有了一个正在工作中的Elasticsearch集群,现在只需要调整一些集群中的配置即可。我们将使用JSON创建一个索引模板,来调整相关配置。
在GitHub上获取JSON模板
在你的浏览器中输入http://[你的kopf在rancher主机上的路径]
在kopf中,点击“more”,然后在下拉菜单中选择“index templates”
现在我们给我们的索引模板起个名字,并且推动其配置。
使用twitter_elk_example作为模板名称
粘贴你之前下载的JSON文件中的内容
点击“save”按钮
Elasticsearch集群的配置就到这里。现在让我们接着往下走。
Logstash
Logstash让你能够分析所获得的数据并且将数据传输至你的Elasticsearch集群中。它原生支持很多数据源(如Twitter APIs、collectd、Apache日志等)。
在处理你的数据时,Logstash可以帮助你解压或格式化你数据中的正确部分。这样,你就不必推送一些不必要的或者(更糟的)错误数据,这些脏数据会使你的Kibana dashboard与实际情况不相符。
在我们开始之前,需要创建Twitter应用密钥
需要特别关注以下内容:
Consumer Key
Consumer Secret
Access Token
Access Token Secret
注意:确保你所有的Rancher主机的时钟均已同步,否则你将无法正确地使用Twitter证书。
现在跳转到目录页并选择Logstash(最好是最新的版本)。你需要在“Logstash inputs*”输入框中加入以下内容(用你自己的APIs认证密钥替换CAP文本):
twitter { consumer_key => "INSERT YOUR CONSUMER KEY" consumer_secret => "INSERT YOUR CONSUMER SECRET" oauth_token => "INSERT YOUR ACCESS TOKEN" oauth_token_secret => "INSERT YOUR ACCESS TOKEN SECRET" keywords => [ "docker", "rancher_labs", "rancher", "kubernetes" ] full_tweet => true }
注意:在关键字数组中,不要使用“@”或者“#”符号,否则Logstash将运行失败并报“unauthorized message”错误。
在“Logstash output*”这个输入框中,你需要加入以下内容 output { elasticsearch { host => "elasticsearch:9200" protocol => "http" cluster_name => "NAME OF YOUR ELASTICSEARCH CLUSTER" index => "twitter_elk_example" document_type => "tweets" }
最后,选择“elasticsearch-clients as the Elasticsearch stack/service”,点击“launch”按钮即可!
接下来的事情Rancher将会帮你做完,包括部署一个完全配置好的Logstash。如果一切顺利,在几分钟之内,你应该能看到数据已经被加入到了你的Elasticsearch主页中。你可以在http://[你的ElasticSearch主机地址]/#kopt 中查看。
Kibana
Kibana能帮助你根据Elasticsearch集群中的数据创建一个强大的dashboard。要部署Kibana,你只需要做两件事情:选择正确的Rancher Catalog版本,然后将它连接到elasticsearch-clients容器中。
这样,一个配置正确的Kibana已经准备好被使用了!后续我们还将会对它进行一些配置。
现在,整个ELK栈就部署好了。虽然Elasticsearch和Logstash已经部署好了,我们还是需要对Kibana进行一些操作。
在这个例子中,我们只需要在Kibana中导入一个JSON仪表盘即可。
点击这里获取JSON文件
进入Settings –> Object,然后点击“import”,接下来选择刚刚下载好的文件。你应该会看到类似于下图的界面。
剩下的就是在Kibana中创建一个适当的索引设置了。
前往“Indices”页面,然后点击“New”按钮。你应该能看到被创建好的索引和被选择了的@timestamp(时间戳)。
到目前位置,你已经有了一个帮助你监控Twitter上的hashtag和brand的Kibana dashboard。要加载被导入的dashboard,你只需要在这里点击它的名字即可。
几分钟后,重新查看dashboard,你会看到类似下图的界面:
至此,你就能成功监测Twitter上的tag和brand的情况啦!
本文出自 “12452495” 博客,请务必保留此出处http://12462495.blog.51cto.com/12452495/1924347
以上是关于使用容器和Elasticsearch集群对Twitter进行监控的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch-02-使用Docker在Mac系统上搭建两个节点的ElasticSearch集群(并同时创建kibana,cerebro两个容器)
ElasticSearch-02-使用Docker在Mac系统上搭建两个节点的ElasticSearch集群(并同时创建kibana,cerebro两个容器)
docker容器中elasticsearch配置跨域访问(elasticsearch-head插件访问不到es集群)