设为首页 收藏本站
查看: 3776|回复: 2

[经验分享] ELKStack 实战之 Elasticsearch [一]

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-20 10:47:19 | 显示全部楼层 |阅读模式
ELKStack 实战之 Elasticsearch [一]    ELKStack 实战之 Elasticsearch [一]    ELKStack
    ELKStack简介    ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。
    ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,ELK Stack 具有如下几个优点:
             处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;  
   配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;  
   检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;  
   集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;  
   前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。   
    ELK地址:https://www.elastic.co/
Logstash 最佳实践:http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html
Elasticsearch 权威指南:http://www.learnes.net/index.html
ELKStack中文社区:https://kibana.logstash.es/content/
      对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch(java)、Logstash(jruby)、Kibana技术栈的结合,一个通 用的架构如下图所示:
image_1bb3edvi17us1nkvaokvi5arv9.png
图片解释:elk 前面主要靠logstash来进行收集日志,logstash将日志上传到broker上,后面还有一个logstash用来读取broker中的日志,在将日志存储到es里面,最后用kibana练到es上进行展示
  提示:我们可以将Elasticsearch简称为es
Elasticsearch介绍

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
Elasticsearch部署

  Elasticsearch首先需要Java环境,所以需要提前安装好JDK,可以直接使用yum安装。也可以从Oracle官网下载JDK进行安装。开始之前要确保JDK正常安装并且环境变量也配置正确:

环境介绍

[iyunv@abcdocker ~]#
[iyunv@abcdocker ~]# df -hFilesystem      Size  Used Avail Use% Mounted on/dev/sda1        20G  2.4G   18G  12% /devtmpfs        903M     0  903M   0% /devtmpfs           912M     0  912M   0% /dev/shmtmpfs           912M  8.6M  904M   1% /runtmpfs           912M     0  912M   0% /sys/fs/cgrouptmpfs           183M     0  183M   0% /run/user/0
[iyunv@abcdocker ~]# free -m              total        used        free      shared  buff/cache   availableMem:           1823         328        1113           8         381        1322Swap:             0           0           0[iyunv@abcdocker ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 本次使用2台服务器来进行模拟集群,所以请准备2台服务器

安装JDK

[iyunv@linux-node1 ~]# yum install -y java
[iyunv@linux-node1 ~]# java -versionopenjdk version "1.8.0_65"OpenJDK Runtime Environment (build 1.8.0_65-b17)OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

源码安装JDK

下载安装http://www.oracle.com/technetwor ... nloads-2133151.html配置Java环境# tar zxf jdk-8u91-linux-x64.tar.gz -C /usr/local/# ln –s /usr/local/jdk1.8.0_91 /usr/local/jdk# vim /etc/profileexport JAVA_HOME=/usr/local/jdkexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin# source /etc/profile看到如下信息,java环境配置成功# java -versionjava version "1.8.0_91"Java(TM) SE Runtime Environment (build 1.8.0_91-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

配置安装ElasticSearch

可以使用源码,或者yum
一、yum安装

1.下载并安装GPG key[iyunv@linux-node1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch2.添加yum仓库[iyunv@linux-node1 ~]# cat /etc/yum.repos.d/elasticsearch.repo[elasticsearch-2.x]name=Elasticsearch repository for 2.x packagesbaseurl=http://packages.elastic.co/elasticsearch/2.x/centosgpgcheck=1gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearchenabled=13.安装elasticsearch[iyunv@hadoop-node1 ~]# yum install -y elasticsearch

二、源码安装

[iyunv@CentOS6 home]# wget https://download.elastic.co/elas ... search-1.7.2.tar.gz   #下载elasticsearch[iyunv@CentOS6 home]# tar xf elasticsearch-1.7.2.tar.gz -C /usr/local/    #解压elasticsearch[iyunv@CentOS6 home]# ln -s /usr/local/elasticsearch-1.7.2 /usr/local/elasticsearch    #创建软连接

三、配置elasticsearch

修改配置文件[iyunv@abcdocker ~]# vim /etc/elasticsearch/elasticsearch.ymlcluster.name: myes             #ES集群名称node.name: abcdocker-node-1   #节点名称path.data: /data/es-date       #数据存储的目录(多个目录使用逗号分隔)path.logs: /var/log/elasticsearch #日志格式bootstrap.memory_lock: true   #锁住es内存,保证内存不分配至交换分区network.host: 192.168.56.11   #设置本机IP地址http.port: 9200            #端口默认9200

四、设置数据目录权限

[iyunv@abcdocker ~]# chown -R elasticsearch:elasticsearch /data/es-date/#这个是我们存放数据的目录,手动创建

es默认发现有组播和单播,组播就是都加入到一个组里面,单播就是一对一通信

提示: yum安装时会少了许多配置,如果编译安装就会产生很多。

五、启动

启动es[iyunv@abcdocker ~]# systemctl start elasticsearch.service[iyunv@abcdocker ~]# netstat -lntupActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      532/sshd            tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      724/master          tcp6       0      0 192.168.56.11:9200      :::*                    LISTEN      2125/java           tcp6       0      0 192.168.56.11:9300      :::*                    LISTEN      2125/java           tcp6       0      0 :::22                   :::*                    LISTEN      532/sshd            tcp6       0      0 ::1:25                  :::*                    LISTEN      724/master   端口默认:9200

本次环境我们使用2台服务器,这2台服务器的服务搭建可以跟上面的步骤相同即可

访问测试:http://IP:9200
image_1bb3et6fe649jq01520iad1deum.png
    Elasticsearch提供了非常多的插件,还可以使用curl进行通讯
    我们可以使用curl来查看es里面有什么内容
[iyunv@abcdocker ~]# curl  -i -XGET 'http://192.168.56.11:9200/_count?'HTTP/1.1 200 OKContent-Type: application/json; charset=UTF-8Content-Length: 59{"count":0,"_shards":{"total":0,"successful":0,"failed":0}}[解释:返回头部200,执行成功0个,返回0个    Elasticsearch有很多插件,但是有的插件好用但是收费
    Elasticsearch插件介绍    一、Haed插件
插件作用:主要是做es集群管理的插件
Github下载地址:https://github.com/mobz/elasticsearch-head
下载方式:[iyunv@abcdocker ~]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head-> Installing mobz/elasticsearch-head...Trying https://github.com/mobz/elasticsearch-head/archive/master.zip ...Downloading ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................DONEVerifying https://github.com/mobz/elasticsearch-head/archive/master.zip checksums if available ...NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify)Installed head into /usr/share/elasticsearch/plugins/head下载完会在/usr/share/elasticsearch/plugins/目录下产生插件目录    访问:http://ip地址:9200/_plugin/head/
image_1bb3f1s51128mt2hhk41ip51gdq13.png
    二、Bigdesk插件
插件作用:性能监控
Github下载:https://github.com/lukas-vlcek/bigdesk
    提示:因为我们使用yum安装的最新版本,bigdesk暂时不支持最新版本
[iyunv@abcdocker ~]# /usr/share/elasticsearch/bin/elasticsearch -VOpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=NVersion: 2.4.4, Build: fcbb46d/2017-01-03T11:33:16Z, JVM: 1.8.0_121    image_1bb3f3q6h1vo217aa5vkbgu2rr1g.png
    正常访问地址:http://localhost:9200/_plugin/bigdesk/
    Bigdesk 1.x
image_1bb3f4gl21t6i5th1lr8it21mv1t.png
    Bigdesk 2.X
image_1bb3f4qkpofg1rli17eq1tu4100j2a.png
    三、Kopf插件
插件作用:kopf是一个简单的网络管理工具
Kopf不再维护。已经开发了替代品(cerebro),目前维护在https://github.com/lmenezes/cerebro。在这一点上,cerebro应该有相当于kopf的功能,顶部有一些新的功能。
    Github地址:https://github.com/lmenezes/elasticsearch-kopf
安装[iyunv@abcdocker ~]# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf-> Installing lmenezes/elasticsearch-kopf...Trying https://github.com/lmenezes/elasticsearch-kopf/archive/master.zip ...Downloading ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................DONEVerifying https://github.com/lmenezes/elasticsearch-kopf/archive/master.zip checksums if available ...NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify)Installed kopf into /usr/share/elasticsearch/plugins/kopf    访问地址:http://192.168.56.11:9200/_plugin/kopf/
image_1bb3fm4pn10s960c1gaoajcfg62n.png
    插件使用    1、Head插件使用介绍
现在我们已经将插件安装完成,这时候里面还没有数据。我们现在往里面写一些数据
image_1bb3fnf4r1249aaa7qs1b731akn34.png
点击提交
    image_1bb3fnnu11948d611p4v2q3ptg3h.png
_index:创建了一个索引index-demo
_type:创建了一个类型test
total:分片2个
Successful:成功1个
Failed:失败0个
Created:状态成功
    我们点击概览,点击连接
image_1bb3fo72lpkl58qib5b9k1e483u.png
我们写一篇文档会帮我们分成5片(0-4,可以修改成多个),粗线代表主分片细线代表副本分片(可以理解为一主一备)正常情况下会将主分片和副本分片放在2台机器上
    集群健康值介绍:
黄色代表没有主分片数据丢失,但是现在不是健康的状态(警告)应该有10个分片,现在只有5个。
红色代表有数据丢失
绿色代表正常
    提示:es支持一个类似于快照的功能,方便我们用于数据备份
    Es索引信息
image_1bb3fpc8vt6jjpjo3ssoiu274b.png
    这里索引信息是open代表我们可以将它给关闭掉,这样就不会继续使用这个索引进行搜索
image_1bb3fpmi3sv1p3r1rlq1kft1s6g4o.png
关闭索引
image_1bb3fpu4e14ucj2bsn311471uss55.png
image_1bb3fq30112ukudi77kiii1ad05i.png
    除了支持关闭和开启索引,同样也支持删除
image_1bb3fqdvp8h51p7f2441vtj6df5v.png
提示:删除之后索引数据是无法恢复的
            Head插件小缺点: 当我们索引特别多的时候,打开head至少需要五分钟。因为它要把所有的索引都扫描一遍进行展示,这时候打开使用的带宽也会特别大(不会出现超时,一直等待就可以)   
    2、kopf插件使用介绍
访问地址:http://192.168.56.11:9200/_plugin/kopf/
image_1bb3frrl31ltrl1c1d5g1mm71ot56c.png
我们可以看到索引、分片、文档数量、大小以及jvm使用情况、disk、cpu、load等
image_1bb3fs3bqjqf82m1h9j1v9s1d3l6p.png
我们点击节点,就可以看到更详细的硬件信息(实时变化)
image_1bb3fsbd31ipaf781ksk1e662dn76.png
    同样kopf也支持head的插件,支持请求
(生产场景这个信息主要给开发使用)
image_1bb3fspfir7v141i1frnf9r19g67j.png
提示:es是有自己的查询语言,可以写的很复杂。
    其他功能
image_1bb3fte4ooub13n8eci1k0crc80.png
            ▲ Create index:   创建索引:  
  ▲ Cluster settings: 集群设置:  
  ▲ Aliases:          别名:
  ▲ Analysis:     分析:  
  ▲ Percolator:       过滤器:  
  ▲ Snapshot:         快照
  ▲ Index templates:  索引模板:  
  ▲ Cat apis:             api  
  ▲ Hot threads:      热线程:   
    ES介绍完成


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-352219-1-1.html 上篇帖子: 华为内部的Web安全原则 下篇帖子: Elasticsearch 修改内存配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表