使用容器和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的情况啦!

时间: 2024-07-29 13:43:57

使用容器和Elasticsearch集群对Twitter进行监控的相关文章

ElasticSearch集群配置

elasticsearch集群搭建,可以把索引进行分片存储,一个索引可以分成若干个片,分别存储到集群里面,而对于集群里面的负载均衡,副本分配,索引动态均衡(根据节点的增加或者减少)都是elasticsearch自己内部完成的,一有情况就会重新进行分配. 下面先是介绍几个关于elasticsearch的几个名词 1.cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是去中心化,字面上理解就是无中心节点,

elasticsearch集群介绍及优化【转】

elasticsearch用于构建高可用和可扩展的系统.扩展的方式可以是购买更好的服务器(纵向扩展)或者购买更多的服务器(横向扩展),Elasticsearch能从更强大的硬件中获得更好的性能,但是纵向扩展也有一定的局限性.真正的扩展应该是横向的,它通过增加节点来传播负载和增加可靠性.对于大多数数据库而言,横向扩展意味着你的程序将做非常大的改动来利用这些新添加的设备.对比来说,Elasticsearch天生是分布式的:它知道如何管理节点来提供高扩展和高可用.这意味着你的程序不需要关心这些.对于大

Elasticsearch集群中处理大型日志流的几个常用概念

之前对于CDN的日志处理模型是从logstash agent==>>redis==>>logstash index==>>elasticsearch==>>kibana3,对于elasticsearch集群搭建,可以把索引进行分片存储,一个索引可以分成若干个片,分别存储到集群里面,而对于集群里面的负载均衡,副本分配,索引动态均衡(根据节点的增加或者减少)都是elasticsearch自己内部完成的,一有情况就会重新进行分配.下面先是介绍几个关于elastic

elasticsearch集群&&IK分词器&&同义词

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.3/elasticsearch-2.3.3.tar.gz 集群安装: 三个节点:master,slave1,slvae2 vi elasticsearch.yml cluster.name: my-application node.name: node-3(节点独有的名称,注意唯一性

手把手教你搭建一个Elasticsearch集群

一.为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? (1)高可用性 Elasticsearch 作为一个搜索引擎,我们对它的基本要求就是存储海量数据并且可以在非常短的时间内查询到我们想要的信息.所以第一步我们需要保证的就是 Elasticsearch 的高可用性,什么是高可用性呢?它通常是指,通过设计减少系统不能提供服务的时间.假设系统一直能够提供服务,我们说系统的可用性是 100%.如果系统在某个时

Elasticsearch 集群分配多少分片合理

https://www.jianshu.com/p/297e13045605 Elasticsearch 是一个非常通用的平台,支持各种用户实例,并为组织数据和复制策略提供了极大的灵活性.但是,这种灵活性有时会使我们很难在早期确定如何很好地将数据组织成索引和分片,尤其是不熟悉 Elastic Stack.虽然不一定会在首次启动时引起问题,但随着数据量的增长,它们可能会导致性能问题.群集拥有的数据越多,纠正问题也越困难,因为有时可能需要重新索引大量数据.      因此,当我们遇到性能问题时,往往

手把手教你搭建一个 Elasticsearch 集群

为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? 高可用性 Elasticsearch 作为一个搜索引擎,我们对它的基本要求就是存储海量数据并且可以在非常短的时间内查询到我们想要的信息.所以第一步我们需要保证的就是 Elasticsearch 的高可用性,什么是高可用性呢?它通常是指,通过设计减少系统不能提供服务的时间.假设系统一直能够提供服务,我们说系统的可用性是 100%.如果系统在某个时刻宕掉了,

搭建一个Elasticsearch集群

一.为何要搭建 Elasticsearch 集群 凡事都要讲究个为什么.在搭建集群之前,我们首先先问一句,为什么我们需要搭建集群?它有什么优势呢? (1)高可用性 Elasticsearch 作为一个搜索引擎,我们对它的基本要求就是存储海量数据并且可以在非常短的时间内查询到我们想要的信息.所以第一步我们需要保证的就是 Elasticsearch 的高可用性,什么是高可用性呢?它通常是指,通过设计减少系统不能提供服务的时间.假设系统一直能够提供服务,我们说系统的可用性是 100%.如果系统在某个时

ElasticSearch集群服务器配置

一.安装 简单的安装与启动于前文ElasticSearch初探(一)已有讲述,这里不再重复说明. 二.启动 1.自带脚本启动 1)bin/elasticsearch,不太任何参数,默认在前端启动 2)bin/elasticsearch-d,带参-d,表示在后台作为服务线程启动 还可以设置更多的参数:bin/elasticsearch-Xmx2g-Xms2g-Des.index.store.type=memory--node.name=my-node 注意:如果是在局域网中运行elasticsea