ELK-01 elk初体验

╰半夏微凉° 2022-05-16 00:05 678阅读 0赞

elk是什么

在项目初期的时候,大家都是赶着上线,一般来说对日志没有过多的考虑,当然日志量也不大,所以用log4j就够了,随着应用的越来越多,日志散落在各个服务器的logs文件夹下,确实有点不大方便。

当我们需要日志分析的时候你大概会这么做:直接在日志文件中 grep、awk 就可以获得自己想要的信息。

那你们想过这种方式的问题吗?

  1. 日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询
  2. 应用太多,面临数十上百台应用时你该怎么办
  3. 随意登录服务器查询log对系统的稳定性及安全性肯定有影响
  4. 如果使用人员对Linux不太熟练那面对庞大的日志简直要命

ELK因此就应运而生,那么为什么要用ELK呢?ELK又能给我们解决哪些问题呢?

  1. 日志统一收集,管理,访问。查找问题方便安全
  2. 使用简单,可以大大提高定位问题的效率
  3. 可以对收集起来的log进行分析
  4. 能够提供错误报告,监控机制

ELK架构设计

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。

  • LogStash

    它可以流放到各自的服务器上收集Log日志,通过内置的ElasticSearch插件解析后输出到ES中

  • ElasticSearch

    这是一个基于Lucene的分布式全文搜索框架,可以对logs进行分布式存储,有点像hdfs。此为ELK的核心组件,日志的分析以及存储全部由es完成,因此在后面的课程中我们还会对此进行重点讲解。

  • Kibana

    它可以多维度的展示es中的数据。这也解决了用mysql存储带来了难以可视化的问题。他提供了丰富的UI组件,简化了使用难度,数据在es中的展示是比较让人蛋疼的,后面再讲es的时候让大家看看。

目前ELK主要两种框架

  • 普通框架

70

  • 个性化扩展框架(针对日志数据需要二次处理以及多方使用的场景)

70 1

补充:

FileBeat:轻量级收集日志系统,速度快,稳定,不占资源。

Es集群:一片数据不要超过10G,一台上面不要超过50G。

如何快速搭建一套稳定的ELK环境

1.官方下载 :https://www.elastic.co/cn/products

2.版本:elasticsearch 5.6.4,kibana5.2.0 ,logstash5.6.3三个版本(注意 JDK需要1.8)

3.安装logstash

(1)解压,在config目录建:logstash.conf

(2)做好input ,filter,output三大块, 其中input是吸取logs文件下的所有log后缀的日志文件,filter是一个过滤函数,这里不用配置,output配置了导入到hosts为127.0.0.1:9200的elasticsearch中,每天一个索引

  1. input {
  2. file {
  3. type => "log"
  4. path => "/logs/*.log"
  5. start_position => "beginning"
  6. }
  7. }
  8. output {
  9. stdout {
  10. codec => rubydebug { }
  11. }
  12. elasticsearch {
  13. hosts => "127.0.0.1"
  14. index => "log-%{+YYYY.MM.dd}"
  15. }
  16. }

(3)bin目录下启动logstash了,配置文件设置为conf/logstash.conf ,启动命令:./logstash -f ../config/logstash.conf

4.安装elasticSearch(具体安装步骤以后介绍)

ELK中的核心,启动的时候一定要注意,因为es不可以进行root账户启动,所以你还需要重新添加一个账户,我这里是apps。在安装过程中大家会遇到以下几个问题:

(1)max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

  1. 解决方法:vi /etc/security/limits.conf
  2. \[用户名\] hard nofile 65536
  3. \[用户名\] soft nofile 65536

(2)max number of threads [1024] for user [apps] is too low, increase to at least [2048]

  1. 解决办法:vi /etc/security/limits.d/90-nproc.conf
  2. 修改如下内容:
  3. \* soft nproc 1024
  4. \#修改为
  5. \* soft nproc 2048

(3)max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

  1. 解决办法:vi /etc/sysctl.conf
  2. 添加下面配置:
  3. vm.max\_map\_count=655360
  4. 并执行命令:
  5. sysctl -p

安装kibana

这个安装比较简单,解压后在kibana.yml文件中指定一下你需要读取的elasticSearch地址和可供外网访问的bind地址就可以了

elasticsearch.url: “http://localhost:9200“
server.host: 0.0.0.0

启动命令:./kibana

发表评论

表情:
评论列表 (有 0 条评论,678人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java开发 - ELK体验

    前言 前面我们讲过消息队列,曾提到消息队列也具有保存消息日志的能力,今天要说的EL看也具备这个能力,不过还是要区分一下功能的。消息队列的日志主要指的是Redis的AOF,

    相关 ELK-01 elk体验

    elk是什么 在项目初期的时候,大家都是赶着上线,一般来说对日志没有过多的考虑,当然日志量也不大,所以用log4j就够了,随着应用的越来越多,日志散落在各个服务器的log

    相关 ELK

    ELK简介 1. ElasticSearch: 分布式数据搜索引擎,用于全文搜索 //存储+搜索 2. Logstach : 数据收集引擎 3.

    相关 ELK

    \- ELK构建MySQL慢日志收集平台详解:https://mp.weixin.qq.com/s/umH7ImZZVhdfgMdZ3Hz5fA \- ELK日志系统之使用R

    相关 ELK

    E:Elasticsearch 基于开源分布式搜索引擎Lucene实现,接近实时(NRT,Near Realtime)的搜索平台 基本概念 Cluster -