ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ELK平台学习笔记

2021-12-11 09:31:18  阅读:247  来源: 互联网

标签:opt ELK info 快照 9200 平台 笔记 mate logstash


一、ELK平台

1.1概念: ELK是由ElasticSearch、Logstash和Kiabana三个开源工具组成的开源实时日志分析平台

1.2 ELK的工作原理:

1.3解析:Logstash收集AppServer产生的Log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。

二、Elasticsearch

2.1概念:Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎

2.2存储数据结构:

         Elasticsearch ⇒ 索引(Index)   ⇒ 类型(type) ⇒ 文档(Docments) ⇒ 字段(Fields)

         一个 Elasticsearch 集群可以包含多个索引(数据库),也就是说其中包含了很多类型(表)。这些类型中包含了很多         的文档(行),然后每个文档中又包含了很多的字段(列)。

三、Logstash

3.1概念:Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。

四、Kibana

4.1概念:Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。

4.2作用:用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。

              可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。

              Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实               时显示Elasticsearch查询的变化。

五、Filebeat

5.1概念:采集数据,并上报到Logstash或Elasticsearch

六、需求:Elasticsearch 6.2版本的数据怎么备份,恢复有几种方式

备份群集的唯一可靠方法是使用快照和还原功能,必须先注册快照存储库,然后才能执行快照和还原操作,快照存储库使用共享文件系统存储库,快照存储库注册完成后,可在库中创建快照,默认情况下,会创建群集中所有打开和已启动索引的快照,快照以增量方式拍摄,这样可避免复制相同的数据。恢复快照时,默认情况下会恢复快照中的所有索引,并且不会还原群集状态。

七、从零开始搭建ELK平台:

7.1确定主机信息:     华为云主机ECS

7.2登录主机后,获取初始化脚本hec_init.sh到/root目录下:

    若/root目录下没有初始化脚本,则需要从其他远程主机拷贝:

7.3执行初始化脚本文件:

                   sh hec_init.sh

7.4将新添加的磁盘文件系统格式化为ext4:

                   mkfs.ext4 /dev/vdb

7.5查询磁盘分区的UUID:

                   blkid /dev/vdb

7.6执行 vim /etc./stab 命令打开配置文件,添加配置:

UUID=前面查询到的UUID  /opt/mateinfo  ext4  defaults   0 0

7.7执行mount –a命令,完成挂载

7.8跳转到/opt目录下:cd /opt

7.9下载logstash安装包:

wget https://wyktest.s3-eu-west-1.amazonaws.com/mateinfo-logstash.zip

7.10需要先安装unzip解压工具:yum install unzip

7.11解压logstash:unzip mateinfo-logstash.zip

7.12进入/mate info/maintenance目录:cd /mate info/maintenance

7.13下载elastic search和kibana包:

         wget https://wyktest.s3-eu-west-1.amazonaws.com/elasticsearch.zip

         wget https://wyktest.s3-eu-west-1.amazonaws.com/kibana.zip

7.14解压elastic search和kibana包:

         unzip elastic search

         unzip kibana

7.15修改kibana配置文件:

         vim /opt/mate info/maintenance/kibana/config/kibana.yml

         修改为:server.port: 5601

                     server.host: "0.0.0.0"

                     elasticsearch.url: http://elk1:9200

                     elk1为私网IP,可通过ifconfig命令查询

7.16修改elasticsearch配置文件:

         vim /opt/mate info/maintenance/elastic search/config/elasticsearch.yml

         修改为:cluster.name: my_es_cluster             //自定义集群名称

                     node.name: ${HOSTNAME}  

                     path.data: /opt/mate info/data/elastic search

                     path.logs: /opt/mate info/logs/elastic search

                     network.host: elk1        

                     http.port: 9200             //默认端口9200

                     discovery.zen.ping.unicast.hosts: [“elk1”]

                     elk1为私网IP,可通过ifconfig命令查询

7.17修改jvm.options文件,依据虚拟机内存大小,修改为适合大小,本节点为32G

     修改为:-Xms16g

                 -Xmx16g  

7.18修改logstash配置文件

vim /opt/mate info/maintenance/logstash/config/logstash.yml

修改为:path.logs: "/opt/mateinfo/logs/logstash"

             xpack.monitoring.elasticsearch.url: ["http://elk1:9200"]

            //其中elk1为私网IP,可通过ifconfig命令查询

7.19修改jvm.options文件,依据虚拟机内存大小,修改为适合大小,本节点为32G

修改为:-Xms8g

             -Xmx8g

7.20修改logstash-indexer.conf文件:

vim /opt/mateinfo/maintenance/logstash/customize/logstash-indexer.conf

修改为:hosts => "http://elk1:9200"    

             //其中elk1为私网IP,可通过ifconfig命令查询

7.21修改系统资源配置:

vim /etc./security/limits.conf

         修改如下:

         root     hard   nofile     65536

         root     soft    nofile     65536

 mateinfo     hard   nofile     65536

 mateinfo     soft    nofile     65536

            *       hard   nofile     65536

            *       soft   nofile     65536

            *       -       as         unlimited

            *       -       memlock     unlimited       

7.22修改/etc./sysctl.conf文件,修改如下:

     vm.max_map_count = 262144

     kernel.shmall = 4294967296

     net.ipv4.tcp_timestamps = 1

     net.ipv4.tcp_tw_recycle = 1

     然后 root执行 sysctl –p 使配置生效

7.23先切换到mate info用户:su – mate info

7.24可以使用ll命令查看当前路径下的文件的权限

7.25如果出现权限不允许的错误,需要转到root用户下修改mateinfo文件的属主:

执行命令 chown -R mateinfo:inoc mateinfo

             修改mateinfo文件的属主为mateinfo用户,属组为inoc

7.26启动elastic search服务:

     su到 mate info 用户下,cd到/opt/mate info/maintenance/elastic search/bin/目录下,

     执行 sh ./elasticsearch-admin.sh start 命令启动,查看9200端口是否开启

7.27启动kibana服务:

         su 到 mate info 用户下,cd到/opt/mate info/maintenance/kibana/bin/目录下,

         执行sh ./kibana-admin.sh start 命令,查看5601端口是否开启

7.28启动logstash服务:

         su 到 mate info 用户下,cd到/opt/mate info/maintenance/logstash/bin/目录下,

         执行sh ./logstash-admin.sh start 命令启动服务,查看9092端口是否开启

7.29执行netstat -ntlp命令可查看所有开启的端口

八、项目实战——数据迁移

8.1需求:将6.2版本的ELK平台上的数据迁移到7.2版本的ELK平台

注意点:数据量很大,传输过程较消耗时间且容易造成数据丢失,同时要注意扩充服务器磁盘容量来存储数据

8.2准备:搭建了6.2版本ELK平台的服务器A,搭建了7.2版本ELK平台的服务器B

8.3在服务器A配置快照存储仓库的路径:

cd到/opt/mate info/maintenance/elastic search/config/目录下,修改elasticsearch.yml文件

     path.repo: ["/opt/mate info/my_backup"]

8.4在服务器A注册快照存储仓库:

命令行输入:

         curl –XPUT http://192.168.254.32:9200/_snapshot/backup -H

         'Content-Type: application/json' -d '{

                "type": "fs",

                "settings": {

                    "location": "/opt/mate info/my_backup"

                }

           }' 

8.5注册完成后可查看存储仓库信息:

     curl -XGET http://192.168.254.32:9200/_snapshot/backup 

8.6在服务器A创建快照备份:

    curl -XPUT http://192.168.254.32:9200/_snapshot/backup/snapshot_1

    由于数据量较大,备份时间会很长,耐心等待!

8.7在服务器B创建和注册快照存储仓库,方法步骤同上

8.8将服务器A中备份好的快照传输到服务器B中的存储仓库中:

   scp -r /opt/mateinfo1/my_backup/* root@139.9.192.44:/opt/mateinfo/my_backup

   这一步是耗时最久的操作,耐心等待!应该还有更好的传输方法,不过时间有限,只能先用这种方法了

8.9可在服务器B中查看传输的快照状态:

curl -XGET http://192.168.254.240:9200/_snapshot/backup/snapshot_1 /_status

8.10在服务器B恢复快照数据:

curl -XPOST http://192.168.254.240:9200/_snapshot/backup/snapshot_1/_restore

-H 'Content-Type: application/json' -d '{

"indices":"*",

"partial":"true",

"ignore_unavailable":"true"

}' 

8.11至此,数据迁移的步骤已完成,但实际开发中会遇到很多问题,下面总结一下遇到的问题及解决方案

8.12首先就是传输过程中的数据丢失问题,这会导致执行快照恢复操作时报错,并且整个ES集群的状态会变红,因为有未分配的分片。

8.13可通过执行命令来查看当前集群的状态:

curl -XGET 'http://192.168.254.240:9200/_cluster/health?pretty' 

8.14可通过执行命令来查看当前集群分片的状态,来定位未分配的分片:

     curl -X GET "http://192.168.254.240:9200/_cat/shards"      

8.15针对数据丢失问题,解决方案有简单粗暴和天衣无缝两种。

     简单粗暴:直接执行命令:

          curl -XPUT "http://192.168.254.240:9200/_settings" -H 'Content-Type: application/json' -d'{               "number_of_replicas" : 0 }' 

          该命令强行将所有未分配的分片进行分配,优点是方便快捷,可快速让集群恢复健康,缺点是治标不治本,无法定           位缺失的数据。

    天衣无缝:查询出快照包含的所有索引,然后逐个索引进行快照恢复,这样就可定位出现数据丢失的索引,缺点就是                     比较麻烦,耗时较长。

8.16由于我们的数据迁移是跨版本迁移(6.2到7.2)所以在数据恢复过程中会出现重名的索引,比如.secrity索引,该索引是用来存储用户信息的,而在快照恢复过程中,6.2版的.secrity就会跟7.2版的.secrity索引重名,造成数据错乱。最终导致用户信息丢失,无法连接到ELK平台。

8.17针对上述问题,解决方案十分简单,只需删除旧版的.secrity索引即可解决。

8.18数据迁移完成后,会出现ES无法识别Logstash收集的日志信息的问题,该问题出现的原因是Kibana的匹配规则匹配不上新的索引,只需修改匹配规则就可解决该问题

标签:opt,ELK,info,快照,9200,平台,笔记,mate,logstash
来源: https://blog.csdn.net/qq_40652101/article/details/121868799

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有