一、ELK简介

在传统项目中,如果在生产环境中,有多台不同的服务器集群,如果生产环境需要通过日志定位项目的Bug的话,需要在每台节点上使用传统的命令方式查询,这样效率非常低下。因此我们需要集中化的管理日志,ELK则应运而生。ELK=ElasticSeach+Logstash+Kibana,日志收集原理如下所示。

1、每台服务器集群节点安装Logstash日志收集系统插件

2、每台服务器节点将日志输入到Logstash中

3、Logstash将该日志格式化为json格式,根据每天创建不同的索引,输出到ElasticSearch中

4、浏览器使用安装Kibana查询日志信息

二、Elastic Search

2.1 简介

ElasticSearch是一个分布式搜索服务,提供的是一组Restful API,底层基于Lucene,采用多shard(分片)的方式保证数据安全,并且提供自动resharding的功能。是目前全文搜索引擎的首选,可以快速的存储、搜索和分析海量数据。

2.2 安装

1.官网下载最新版本,地址是:https://www.elastic.co/cn/downloads/elasticsearch,下载下来的最新版本是:elasticsearch-7.4.2-linux-x86_64.tar.gz;

2.解压:# tar zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz

3. # cd elasticsearch-7.4.2,配置config里的elasticsearch.yml文件,配置如下。

 cluster.name: es-application
node.name: es-node-1
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["192.168.1.169"]
cluster.initial_master_nodes: ["es-node-1"]
path.data: /var/data/es
path.logs: /var/log/es

4.常见问题

(1)can not run elasticsearch as root

解决思路:为了安全不允许使用root用户启动,需要新建一个es的账户,如下所示。

# adduser es
# passwd es
# chown -R es elasticsearch-7.4.2
# su elasticsearch
启动ES:
# ./bin/elasticsearch

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

解决思路: 切换到root用户修改   # vim /etc/security/limits.conf,在最后面追加下面内容,其中es 是启动ES的用户,不是root。

es hard nofile 65536
es soft nofile 65536

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

解决思路:切换到root用户修改配置sysctl.conf

#vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p

2.3 启动

后台启动:./elasticsearch -d
停止命令:./elasticsearch -stop

2.4 验证

访问 ip:9200,成功显示如下json信息

2.5 ES Head

推荐安装chrome插件,也可以下载安装包进行安装。

三、Logstash

3.1 简介

Logstash 是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。

3.2 安装与配置

1.解压logstash-7.4.2,修改logstash-7.4.2/config的logstash.conf文件;
    2.logstash.conf文件配置如下:

input {
tcp {
mode => "server"
host => "192.168.1.169"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => "192.168.1.169:9200"
index => "springboot-logstash-%{+YYYY.MM.dd}"
}
}

3.执行命令:# ../bin/logstash -f logstash.conf

3.3 Spring boot集成Logstash

1.pom文件里引入jar包

<!--logstash-->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.2</version>
</dependency>

2.修改logback-spring.xml

<!--logstash地址-->
<springProperty scope="context" name="LOGSTASH_ADDRESS" source="logstash.address"/> <!--输出到logstash的appender-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--可以访问的logstash日志收集端口-->
<destination>${LOGSTASH_ADDRESS}</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>UTC</timeZone>
</timestamp>
<pattern>
<pattern>
{
"app": "java-study",
"level": "%-5level",
"thread": "%thread",
"logger": "%logger{50} %M %L ",
"message": "%msg"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender> <root level="INFO">
<appender-ref ref="LOGSTASH"/>
</root>

3.yml添加配置

logstash:
address: 192.168.1.169:4560

四、Kibana

4.1 简介

Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

4.2 安装与配置

1.解压kibana-7.4.2-linux-x86_64.tar.gz,并修改配置文件kibana.yml

server.port: 5601
server.host: "192.168.1.169"
server.name: "kibana"
elasticsearch.hosts: ["http://192.168.1.169:9200"]
xpack.reporting.encryptionKey: "a_random_string"
xpack.security.encryptionKey: "something_at_least_32_characters"

2.执行命令 # ./kibana --allow-root

3.配置日期格式

4.create index pattern

5.保存自定义筛选字段,供后续筛选

日志收集系统ELK搭建的更多相关文章

  1. 日志收集系统elk

    目录 elk简介 官方帮助 rsyslog rsyslog日志采集介绍与使用 综合实验 案例一: 单机ELK部署 案例二. JAVA环境配置,部署 filebeat+Elasticsearch apa ...

  2. ELK+kafka构建日志收集系统

    ELK+kafka构建日志收集系统   原文  http://lx.wxqrcode.com/index.php/post/101.html   背景: 最近线上上了ELK,但是只用了一台Redis在 ...

  3. 快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana)

    快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana) 概要说明 需求场景,系统环境是CentOS,多个应用部署在多台服务器上,平时查看应用日志及排查问题十 ...

  4. 用ElasticSearch,LogStash,Kibana搭建实时日志收集系统

    用ElasticSearch,LogStash,Kibana搭建实时日志收集系统 介绍 这套系统,logstash负责收集处理日志文件内容存储到elasticsearch搜索引擎数据库中.kibana ...

  5. ELK 日志收集系统

    传统系统日志收集的问题 在传统项目中,如果在生产环境中,有多台不同的服务器集群,如果生产环境需要通过日志定位项目的Bug的话,需要在每台节点上使用传统的命令方式查询,这样效率非常底下. 通常,日志被分 ...

  6. 搭建日志收集系统时使用客户端连接etcd遇到的问题

    问题: 在做日志收集系统时使用到etcd,其中server端在linux上,首先安装第三方包(windows)(安装过程可能会有问题,我遇到的是连接谷歌官网请求超时,如果已经出现下面的两个文件夹并且文 ...

  7. [转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

    原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务 ...

  8. 基于Flume的美团日志收集系统(一)架构和设计

    美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...

  9. 基于Flume的美团日志收集系统(一)架构和设计【转】

    美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...

随机推荐

  1. 网络基础知识(http请求)

    http请求的过程 域名解析----TCP连接 ----发送请求-----响应请求----获取html代码----浏览器渲染 TCP是主机对主机层的控制传输协议,提供可靠的连接服务 TCP的三次握手 ...

  2. Djiango-建立模型抽象基类

    创建一个抽象模型基类 ‘ 然后 ’base_model.py from django.db import models from datetime import date class BaseMode ...

  3. 学习Spring-Data-Jpa(十六)---@Version与@Lock

    1.问题场景 以用户账户为例,如果允许同时对某个用户的账户进行修改的话,会导致某些修改被覆盖,使最后的结果不正确. 如:1.1.张三的账户中有100元. 1.2.张三的账户消费了50元. 1.3.张三 ...

  4. 10.31-11.1Test(未完)

    10.31-11.1Test 题目 描述 做法 \(BSOJ5177\) 求在\(n\)个数里选\(K\)个的所有方案的异或和之和 按位讨论,组合数算 \(BSOJ5178\) 化简\(\displa ...

  5. Linux 系统管理——引导过程与服务控制

    一. 系统引导流程 1.开机自检(BIOS)(基本的输入输出系统) 2.MBR引导1.2. MBRIS 当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR (Master Boot Record ...

  6. 02-线性结构4 Pop Sequence (25 分)

    Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...

  7. Python 元类使用讲解

    我要一大群的类都具有一种特点,我怎么给他们加上呢?模板嘛,我从这个模板创建一群类不就OK了?那就需要元类了. 定义一个元类(就是一个类的模板!莫多想,还要记住这是类级别的,不是对象级别的!):代码如下 ...

  8. 树莓派从烧录系统到通过wifi远程访问(新树莓派配置,无显示器、网线、键盘)

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/raspberry_from_install_to_remote_ ...

  9. nRF51822 主从断开连接Reason,HCI ERROR CODE :0x003E

    最近在给一个客户调主从一体的模块,基于S130,距离稍微远一点就会出现连接上后立马又断开连接的现象, 追踪了一下原因,给出的 HCI Error code 是 0x003E,暂且不知道这是什么鬼,查了 ...

  10. flowable表简要说明

    1. Flowable数据库表命名规则 ACT_RE_* ’RE’表示repository(存储).RepositoryService接口操作的表.带此前缀的表包含的是静态信息,如,流程定义,流程的资 ...