大企业都在用的ELK

栏目: 后端 · 发布时间: 7年前

内容简介:ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。1、安装Java环境

大企业都在用的ELK

  什么是ELFK

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

  • Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

  • Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

  • Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

  • Filebeat隶属于Beats。目前Beats包含四种工具:

    1、Packetbeat(搜集网络流量数据)

    2、Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)

    3、Filebeat(搜集文件数据)

    4、Winlogbeat(搜集 Windows 事件日志数据)

  为什么要用ELFK

一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。

一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。

一个完整的集中式日志系统,需要包含以下几个主要特点:收集、传输、存储、分析、警告,而ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。并且是目前主流的一种日志系统。

  官方文档知识库

  准备Elasticsearch

1、安装 Java 环境

yum -y install java-1.8.0-openjdk
export JAVA_HOME=/usr/java

2、编写Elasticearch的yum仓库文件

rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch

vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

yum clean all

3、安装Elasticsearch

yum -y install elasticsearch

4、配置Elasticsearch

vim /etc/elasticsearch/elasticsearch.yml
cluster.name: KJ-Cloud    #配置集群名称
node.name: node.kemin-cloud.com    #配置节点名称
path.data: /var/lib/elasticsearch    #配置data存放的路径
path.logs: /var/log/elasticsearch    #配置日志存放的路径
bootstrap.memory_lock: false    #配置是否使用内存交换分区
bootstrap.system_call_filter: false    #配置是否启用检测
network.host: 0.0.0.0    #配置监听地址
http.port: 9200    #配置监听端口
discovery.zen.ping.multicast.enabled: false    #配置是否启用广播地址
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]    #配置指定节点

5、增加vm.max_map_count项到sysctl.conf文件中

vim /etc/sysctl.conf
vm.max_map_count = 655360

sysctl -p

6、修改用户文件最大数量

vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

vim /etc/security/limits.d/90-nproc.conf
* soft nproc 1024    #修改为* soft nproc 2048

7、验证Elasticsearch是否正常

curl http://127.0.0.1:9200/

大企业都在用的ELK

努力爬坑。。。。   

报错 :system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

原因 :这是在因为操作系统不支持SecComp,而ES5.2.2默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。

解决vim /etc/elasticsearch/elasticsearch.yml

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

报错 :max virtual memory areas vm.max_map_count [65536] is too low, increase to at least [262144]

原因 :最大虚拟内存区域设置过小

解决vim /etc/sysctl.conf

vm.max_map_count = 655360

报错 :max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536],max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]

原因 :最大文件描述符和最大线程数设置过小

解决vi /etc/security/limits.conf

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

报错 :max number of threads [1024] for user [lish] likely too low, increase to at least [2048]

原因 :用户最大线程数设置过小

解决vi /etc/security/limits.d/90-nproc.conf

* soft nproc 1024    #修改为* soft nproc 2048

  准备Logstash

1、编写Logstash的yum仓库文件

rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch

vim /etc/yum.repos.d/logstash.repo
[logstash-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

yum clean all

2、安装Logstash

yum -y install logstash

3、测试Logstash

/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["127.0.0.1:9200"] } stdout { codec => rubydebug }}'

大企业都在用的ELK

  图形化Kibana

1、编写Kibana的yum仓库文件

rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch

vim /etc/yum.repos.d/kibana.repo
[kibana-6.x]
name=Kibana repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

yum clean all

2、安装Kibana

yum install kibana

3 、配置Kibana

vim /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://127.0.0.1:9200"
kibana.index: ".kibana"

4、启动Kibana

service kibana start

5、测试访问Kibana

http://127.0.0.1:5601

大企业都在用的ELK

  最后总结

总的来说,ELK日志搜集分析平台搭建是遇到的问题还是会有的,和服务器有关,所以在服务起不来,报错的情况下莫慌,稳住,想看报错,然后分析,报错说哪里有问题就调整哪里,一步一步来,这仅仅是部署搭建而已,真正的运用搜集日志还没开始呢,后面还会更新有关Logstash的更多知识,如果小伙伴们在搭建的过程中有什么问题还可以在下方留言,我们可以一起探讨探讨~~


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Introduction to the Design and Analysis of Algorithms

Introduction to the Design and Analysis of Algorithms

Anany Levitin / Addison Wesley / 2011-10-10 / USD 117.00

Based on a new classification of algorithm design techniques and a clear delineation of analysis methods, Introduction to the Design and Analysis of Algorithms presents the subject in a coherent a......一起来看看 《Introduction to the Design and Analysis of Algorithms》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具