ELK日志系统搭建完整详细步骤

前言

为什么需要引进这个ELK日志采集系统呢?在我管理团队的时候,部门还是比较齐全的,运维、测试、前端、后端都是具备的,在没有运维的时候,后端开发是有服务器全部权限的,完全可以直接操作服务器的,可以部署、配置、查看日志等等操作,后来运维部门建立之后,运维部门就全权负责了公司所有的组件平台,比如Gitlab、Nexus、SVN、禅道、Jenkins等等,不过这些大多数都是我搭建(在运维没成立之前),因为后端开发主要还是写服务接口为主要工作,对运维方面的工作也只能说是半吊子,论起专业肯定没有运维人员来得直接,所以开发也就丧失了很多权利,比如:自定义代理、自定义中间件配置等等,这些都需要跟运维解释清楚之后,运维人员帮忙调整,最难受的就是不能够直接看到实时的日志情况,每次都必须让运维把日志文件下载下来或者后端去找运维把日志调出来现场看,时间和效率方面大打折扣,所以这才引进了ELK日志采集系统

引进好处

  1. 关注集中,后端开发只需要关注自己负责的项目日志即可,如果是直接操作服务器,而且那个服务器还有其他服务,搞不好一个命令没处理好,导致服务器崩掉了,那可是灾难
  2. 查阅方便:有人说:我习惯了直接看日志文件,对,我们都习惯了看控制台打印出来的日志,但是对权限特别注重的企业,一般都会开放ELK,ELK会对日志进行区分,让我们在查阅的时候更加关注,只不过前提是要事先适应ELK系统
  3. 方便追溯历史:以往的查看历史日志,都需要把日志文件下载下来,ELK提供了时间范围的查询能够帮我们更好的查看历史日志
  4. 日志格式统一:通过 logback.xml文件的设置,可以对日志打印的格式等做统一处理
  5. 使用方便:ELK有Kibana平台直接查阅,如果是以往服务器直接查阅,还要先链接服务器,然后找到日志文件,如果要查看实时日志,还要清空当前控制台等等琐碎而且没必要的操作

一、ELK 是什么?

ELK 是三个开源框架的简写,分别是:ElasticsearchLogstashKibana

框架 简介 作用
Elasticsearch 开源分布式搜索引擎,提供存储、分析、搜索功能。特点:分布式、基于reasful风格、支持海量高并发的准实时搜索场景、稳定、可靠、快速、使用方便等。 接收搜集的海量结构化日志数据,并提供给Kibana查询分析。
Logstash 开源日志搜集、分析、过滤框架,支持多种数据输入输出方式。 用于收集日志,对日志进行过滤形成结构化数据,并转发到Elasticsearch中。
Kibana 开源日志报表系统,对Elasticsearch以及Logstash有良好的web页面支持。 对Elasticsearch提供的数据进行分析展示。

在这里插入图片描述

二、安装部署 Elasticsearch

1、下载

官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch

国内镜像源(华为):https://mirrors.huaweicloud.com/elasticsearch/

推荐使用国内的下载地址,官网下载太慢了。

选择合适的版本下载(推荐下载自带 JDK 的版本,否者自己配置的 JDK 可能不符合版本要求。注意:Elasticsearch 会优先使用系统配置的 JDK 。可将 Elasticsearch 自带的 JDK 配置到系统的环境变量中,如果不这样做的话,在安装 Logstash 时,启动会报没有配置 JDK 环境变量的错误。)

[root@localhost ~]# wget https://mirrors.huaweicloud.com/elasticsearch/7.8.0/elasticsearch-7.8.0-linux-x86_64.tar.gz

2、解压到指定目录

# 新建文件夹
[root@localhost ~]# mkdir /usr/local/elasticsearch

# 解压到指定文件夹
[root@localhost ~]# tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /usr/local/elasticsearch/

3、修改配置文件

# 进入安装目录
[root@localhost ~]# cd /usr/local/elasticsearch/elasticsearch-7.8.0/

# 修改config/elasticsearch.yml
[root@localhost elasticsearch-7.8.0]# vim ./config/elasticsearch.yml

# 修改以下几项:
node.name: node-1 # 设置节点名
network.host: 0.0.0.0 # 允许外部 ip 访问
cluster.initial_master_nodes: ["node-1"] # 设置集群初始主节点

4、新建用户并赋权

ES为了安全考虑不允许使用root用户启动ElasticSearch,所以需要新建一个普通用户启动程序。

# 添加用户 es
[root@localhost elasticsearch-7.8.0]# adduser es

# 设置用户 es 的密码(需要输入两遍密码)
# (如果设置密码过于简单可能会提示 BAD PASSWORD: XXX ,如果是用 root 用户操作可忽略提示继续输入第二遍密码强制设置密码)
[root@localhost elasticsearch-7.8.0]# passwd es
Changing password for user es.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

# 将对应的文件夹权限赋予用户 es
[root@localhost elasticsearch-7.8.0]# chown -R es /usr/local/elasticsearch

5、切换至新建的用户并启动 Elasticsearch

# 切换至用户 es
[root@localhost elasticsearch-7.8.0]# su es

# 启动 ElasticSearch (-d 表示在后台启动)
[es@localhost elasticsearch-7.8.0]$ ./bin/elasticsearch -d

错误处理

启动之后可能会报以下三个错误:

ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max number of threads [3795] for user [es] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方式:
需切换到root用户解决错误:

# 切换到 root 用户
[es@localhost elasticsearch-7.8.0]$ su root

[1] 和 [2] 的解决方法:

# 修改 /etc/security/limits.conf 文件
[root@localhost elasticsearch-7.8.0]# vim /etc/security/limits.conf
# 添加以下四行
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

[3] 的解决方法:

# 修改 /etc/sysctl.conf 文件
[root@localhost elasticsearch-7.8.0]# vim /etc/sysctl.conf
# 添加下面一行
vm.max_map_count=655360

# 执行命令
[root@localhost elasticsearch-7.8.0
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值