前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ELK 环境搭建

ELK 环境搭建

作者头像
默存
发布于 2022-12-03 04:08:00
发布于 2022-12-03 04:08:00
71500
代码可运行
举报
文章被收录于专栏:默存默存
运行总次数:0
代码可运行

ELK 简介

ELK 其实是ElasticsearchLogstashKibana三个产品的首字母缩写,这三款都是开源产品。

  • ElasticSearch (简称 ES),是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析;
  • Logstash 是一个数据收集引擎,主要用于进行数据收集、解析,并将数据发送给 ES。支持的数据源包括本地文件、ElasticSearch、MySQLKafka 等等;
  • Kibana 则是作为Elasticsearch分析数据的页面展示,可以进行对日志的分析、汇总、监控和搜索日志用。

搭建版本:

  • elasticsearch-7.16.2
  • kibana-7.16.2
  • logstash-7.16.2

准备环境

1.安装 java 环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建目录 
mkdir /usr/local/java/ 
 
# 解压 
tar -zxvf jdk-8u333-linux-x64.tar.gz -C /usr/local/java/ 
 
# 配置环境变量 
vim /etc/profile 
  
export export JAVA_HOME=/usr/local/java/jdk1.8.0_211 
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH 
 
# 环境变量生效 
source /etc/profile 
 
# 添加软连接 
ln -sf /usr/local/java/jdk1.8.0_211/bin/java /usr/bin/java 
 
# 检查java版本 
java -version 

2.创建用户组及用户

由于 elasticsearch 不允许使用 root 启动,创建以下用户及用户组以备用。

创建用户组名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
groupadd elsearch  #【添加组】【用户组名】 

创建用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
useradd elsearch -g elsearch -p elsearch #【添加用户】【用户名】-g【用户组名】-p【密码值】 

安装 Elasticsearch

1.安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 下载 
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz 
 
# 解压 
tar -zxvf elasticsearch-7.16.2-linux-x86_64.tar.gz 
 
# 设置权限到elsearch用户 
chown -R elsearch:elsearch /usr/local/elasticsearch-7.16.2 

2.修改配置

修改配置文件 elasticsearch.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/elasticsearch-7.16.2/config 
 
vim elasticsearch.yml 
 
# ========== 修改内容如下 ================== 
 
# 集群名称(按实际需要配置名称) 
cluster.name: my-elasticsearch 
# 节点名称 
node.name: node-1 
# 数据路径(按实际需要配置日志地址) 
path.data: /usr/local/elasticsearch-7.16.2/data 
# 日志路径(按实际需要配置日志地址) 
path.logs: /usr/local/elasticsearch-7.16.2/logs 
# 地址(通常使用内网进行配置) 
network.host: 127.0.0.1 
# 端口号 
http.port: 19200 
# 节点地址 
discovery.seed_hosts: ["127.0.0.1", "[::1]"] 
# 集群master 
cluster.initial_master_nodes: ["node-1"] 
# 跨域(这两项配置手动添加一下) 
http.cors.enabled: true  
http.cors.allow-origin: "*" 

3.修改 Elasticsearch 启动脚本

7.x 版本以上的 Elasticsearch 需要的 jdk11 及以上,我们的项目大多数都是使用的 jdk8 ,但是 7.x 版本以上的 Elasticsearch 自带了 jdk,此时我们需要把 Elasticsearch 的启动环境 jdk 进行配置。

修改 bin 目录下的elasticsearch文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim bin/elasticsearch 
 
# ========== 修改内容如下 ================== 
# 配置jdk 
export JAVA_HOME=JAVA_HOME=/usr/local/java/jdk1.8.0_211/ 
export PATH=$JAVA_HOME/bin:$PATH 
 
# 添加jdk判断 
if [ -x "$JAVA_HOME/bin/java" ]; then 
   JAVA="/usr/local/java/jdk1.8.0_211/bin/java" 
else 
   JAVA=`which java` 
fi 

4.启动

切换到 elsearch 用户,启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su elsearch 
 
# 后台方式启动 
./elasticsearch -d  
 
# 查看日志,是否启动成功 
cd /usr/local/elasticsearch-7.16.2/logs 
tail -fn 100 /usr/local/elasticsearch-7.16.2/logs/my-elasticsearch.log 

安装 Elasticsearch-head 插件

1.下载

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 下载 
wget https://github.com/mobz/elasticsearch-head/archive/master.zip 
 
# 解压 
unzip master.zip 

2.安装 grunt

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/elasticsearch-head 
 
npm install -g grunt-cli 

修改所有域名访问,添加 hostname:“*”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 进入elasticsearch-head目录 
cd elasticsearch-head 
 
# 修改Gruntfile.js 
vim Gruntfile.js 
 
# ========== 修改内容如下 ================== 
connect: { 
    server: { 
        options: { 
            hostname: '*', 
            port: 9100, 
            base: '.', 
            keepalive: true 
        } 
    } 
} 

3.启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 下载依赖 
npm install 
 
# 启动 
cnpm run start 
 
# 后台启动 
nohup ./grunt server >/dev/null 2>&1 & 

浏览器访问:http://{IP}:9100

安装 Logstash

1.安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 下载 
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.16.2-linux-x86_64.tar.gz 
 
# 解压 
tar -zxvf filebeat-7.9.3-linux-x86_64.tar.gz 

2.修改配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 修改配置文件logstash-sample.conf 
cd /usr/local/logstash-7.16.2/config 
 
# 将logstash-sample.conf文件复制一份,并命名为logstash.conf 
cp logstash-sample.conf logstash.conf 
 
# 修改配置 
vim logstash.conf 
 
# ========== 修改内容如下 ================== 
input { 
  tcp{ 
    mode => "server" 
    host => "0.0.0.0" 
    port => 5701 
    codec => json_lines 
  } 
} 
 
# 以下配置为创建用户索引及默认索引情况 
output { 
    elasticsearch { 
      hosts => ["http://127.0.0.1:19200"] 
      index => "tmk-log-%{+YYYY.MM.dd}" 
    } 
} 

注意:为了方便解释含义,包含注释‘#’的行请手动去除。

3.启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/logstash-7.16.2/bin 
 
# 启动命令 
nohup ./logstash -f /usr/local/logstash-7.16.2/config/logstash.conf >../logs/logstash.log & 
 
# 使用jps命令查看运行的进程 
jps 

安装 Kibana

1.安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 下载 
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.16.2-linux-x86_64.tar.gz 
 
# 解压 
tar -zxvf kibana-7.16.2-linux-x86_64.tar.gz 
 
# 权限 
chown -R elsearch:elsearch /usr/local/kibana-7.16.2-linux-x86_64 

2.修改配置

修改config目录下的kibana.yml文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/kibana-7.16.2-linux-x86_64/config 
vim kibana.yml 
 
# ========== 修改内容如下 ================== 
 
# 服务端口(按实际需求) 
server.port: 15601 
# 服务主机(这里是服务器内网地址) 
server.host: "0.0.0.0" 
# 服务名(按实际需求) 
server.name: "kibana" 
# elasticsearch地址 
elasticsearch.hosts: ["http://127.0.0.1:19200"] 
# 设置简体中文 
i18n.locale: "zh-CN" 

3.启动

Kibana 和 Elasticsearch 一样,不能使用 root 用户启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/kibana-7.16.2-linux-x86_64/bin 
 
# 切换用户 
su elsearch 
 
#非后台启动,关闭shell窗口即退出 
./bin/kibana 
 
# 后台启动 
nohup ./kibana & 
 
# 查看进程 
netstat -tunlp | grep 15601 

浏览器打开:http://{IP}:15601/app/home

项目测试(Springboot)

1.添加 logstash 依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency> 
    <groupId>net.logstash.logback</groupId> 
    <artifactId>logstash-logback-encoder</artifactId> 
    <version>7.0.1</version> 
</dependency> 

2.添加 logback-spring.xml 配置

配置中destination标签是定义logstash传输日志的ip端口,有两种方式:

  • 直接写在标签里面;
  • spring配置中读取,再如下图中通过${**}方式引入。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/> 
 
    <springProperty scope="context" name="springAppName" source="spring.application.name"/> 
    <springProperty scope="context" name="logstashUrl" source="logstash.url"/> 
 
    <property name="LOG_FILE" value="/data/logs/${springAppName}/${springAppName}"/> 
 
    <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr([${springAppName:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-B3-ParentSpanId:-},%X{X-Span-Export:-}]){yellow} %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/> 
 
    <!--  console  --> 
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
            <!-- Minimum logging level to be presented in the console logs --> 
            <level>DEBUG</level> 
        </filter> 
        <encoder> 
            <pattern>${CONSOLE_LOG_PATTERN}</pattern> 
            <charset>utf8</charset> 
        </encoder> 
    </appender> 
 
    <!-- logstash --> 
    <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> 
        <!-- <destination>127.0.0.1:5701</destination> --> 
        <destination>${logstashUrl}</destination> 
 
        <!-- 日志输出编码 --> 
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> 
            <providers> 
                <timestamp> 
                    <timeZone>UTC</timeZone> 
                </timestamp> 
                <pattern> 
                    <pattern> 
                        { 
                        "logLevel": "%level", 
                        "serviceName": "${springAppName:-}", 
                        "pid": "${PID:-}", 
                        "thread": "%thread", 
                        "class": "%logger{40}", 
                        "rest": "%message" 
                        } 
                    </pattern> 
                </pattern> 
            </providers> 
        </encoder> 
    </appender> 
 
    <root level="INFO"> 
        <appender-ref ref="console"/> 
        <appender-ref ref="logstash"/> 
    </root> 
</configuration> 

改进优化

上面只是用到了核心的三个组件简单搭建的 ELK,实际上是有缺陷的。

如果 Logstash 需要添加插件,那就全部服务器的 Logstash 都要添加插件,扩展性差。所以就有了 FileBeat,占用资源少,只负责采集日志,不做其他的事情,这样就轻量级,把 Logstash 抽出来,做一些滤处理之类的工作。

安装 Filebeat

1.安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 下载 
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.3-linux-x86_64.tar.gz 
 
# 解压 
tar -zxvf logstash-7.16.2-linux-x86_64.tar.gz 

2.修改配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 输入源 
filebeat.inputs: 
- type: log 
  enabled: true 
  paths: 
    - /app/demo/*.log  # 配置项目日志路径 
 
# 输出:Logstash的服务器地址 
output.logstash: 
  hosts: ["127.0.0.1:5701"] 
 
# 输出:如果直接输出到ElasticSearch  
#output.elasticsearch: 
  #hosts: ["127.0.0.1:19200"] 
  #protocol: "https" 

3.修改Logstash配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 修改配置 
vim logstash.conf 
 
# ========== 修改内容如下 ================== 
input { 
  beats { 
    port => 5701 
    codec => "json" 
  } 
} 

4.启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 后台启动命令 
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 & 

5.重启Logstash

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/logstash-7.16.2/bin 
 
# 启动命令 
nohup ./logstash -f /usr/local/logstash-7.16.2/config/logstash.conf >../logs/logstash.log & 

6.修改 logback-spring.xml 配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/> 
 
    <springProperty scope="context" name="springAppName" source="spring.application.name"/> 
    <springProperty scope="context" name="logstashUrl" source="logstash.url"/> 
 
    <property name="LOG_FILE" value="/data/logs/${springAppName}/${springAppName}"/> 
 
    <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr([${springAppName:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-B3-ParentSpanId:-},%X{X-Span-Export:-}]){yellow} %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/> 
 
    <!--  console  --> 
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
            <!-- Minimum logging level to be presented in the console logs --> 
            <level>DEBUG</level> 
        </filter> 
        <encoder> 
            <pattern>${CONSOLE_LOG_PATTERN}</pattern> 
            <charset>utf8</charset> 
        </encoder> 
    </appender> 
 
    <appender name="flatfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
        <file>${LOG_FILE}</file> 
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern> 
            <maxHistory>7</maxHistory> 
        </rollingPolicy> 
        <encoder> 
            <pattern>${CONSOLE_LOG_PATTERN}</pattern> 
            <charset>utf8</charset> 
        </encoder> 
    </appender> 
 
    <!-- <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> 
        <destination>${logstashUrl}</destination> 
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> 
            <providers> 
                <timestamp> 
                    <timeZone>UTC</timeZone> 
                </timestamp> 
                <pattern> 
                    <pattern> 
                        { 
                        "logLevel": "%level", 
                        "serviceName": "${springAppName:-}", 
                        "pid": "${PID:-}", 
                        "thread": "%thread", 
                        "class": "%logger{40}", 
                        "rest": "%message" 
                        } 
                    </pattern> 
                </pattern> 
            </providers> 
        </encoder> 
    </appender> --> 
 
    <root level="INFO"> 
        <appender-ref ref="console"/> 
        <!-- <appender-ref ref="logstash"/> --> 
        <appender-ref ref="flatfile"/> 
    </root> 
</configuration> 
 

ELK 基本搭建完成,能够满足正常使用。因安全性 Elasticsearch 与 Kibana 默认是没有密码的。

Elasticsearch、Kibana、Logstash 配置密码

Elasticsearch 设置密码

1.x-pack插件

x-pack 是 Elasticsearch 的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,可以轻松启用或者关闭一些功能。

默认我们的 ELK 部署后,可以直接就进入 web 管理界面,这样会带来极大的安全隐患。

Elasticsearch 是借助 x-pack 插件的密码配置,6.3.0 之前的版本需要下载插件,6.3.0 以后都不需要下载。

6.3.0 版以下需要下载:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 在es的目录下进行下载 ./elasticsearch-plugin install x-pack 

2.修改配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/elasticsearch-7.16.2/config 
 
vim elasticsearch.yml 
 
# ========== 修改内容如下 ================== 
  
# 开启xpack 
xpack.security.enabled: true 


xpack.license.self_generated.type:basic

xpack.security.transport.ssl.enabled: true

3.重启

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 切换到 elsearch 用户 
su elsearch 
 
# 后台方式启动 
./elasticsearch -d  

4.设置密码

设置六个账号的密码:elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 在bin目录下以交互的方式设置密码 
./bin/elasticsearch-setup-passwords interactive 
 
# 以下步骤配置密码elasticsearch、kibana、logstash密码 
 
Initiating the setup of passwords for reserved users elastic,kibana,logstash_system,beats_system. 
You will be prompted to enter passwords as the process progresses. 
Please confirm that you would like to continue [y/N]y 
Enter password for [elastic]:  
passwords must be at least [6] characters long 
Try again. 
Enter password for [elastic]:  
Reenter password for [elastic]:  
Passwords do not match. 
Try again. 
Enter password for [elastic]:  
Reenter password for [elastic]:  
Enter password for [kibana]:  
Reenter password for [kibana]:  
Enter password for [logstash_system]:  
Reenter password for [logstash_system]:  
Enter password for [beats_system]:  
Reenter password for [beats_system]:  
Changed password for user [kibana] 
Changed password for user [logstash_system] 
Changed password for user [beats_system] 
Changed password for user [elastic] 

5.修改Logstash配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
output { 
    elasticsearch { 
      hosts => ["http://127.0.0.1:19200"] 
      index => "tmk-log-%{+YYYY.MM.dd}" 
      user  => elastic 
      password => 123456 
    } 
} 

Kibana 设置密码

由于 Elasticsearch 已经设置好了密码,此时如果 Kibana 想要从 Elasticsearch 中获取数据就必须进行账号密码配置,在 Kibana 配置账号密码即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/kibana-7.16.2-linux-x86_64/config 
vim kibana.yml 
 
# 默认用户为elastic 
elasticsearch.username: "elastic" 
elasticsearch.password: "123456" 

修改Elasticsearch密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 修改es密码
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://127.0.0.1:19200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'

修改成功后需重启 Elasticsearch、Kibaba、Logstash。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Logback+ELK+SpringMVC搭建日志收集服务器
今天给大家带来的是logback+ELK+SpringMVC 日志收集服务器搭建。接下来我会介绍ELK是什么?logback是什么?以及搭建的流程。 1.ELK是什么? ELK是由Elasticsearch、Logstash、Kibana这3个软件的缩写。 Elasticsearch是一个分布式搜索分析引擎,稳定、可水平扩展、易于管理是它的主要设计初衷 Logstash是一个灵活的数据收集、加工和传输的管道软件 Kibana是一个数据可视化平台,可以通过将数据转化为酷炫而强大的图像而实现与数据的交互将三者的
程序猿DD
2018/03/26
2.1K0
Logback+ELK+SpringMVC搭建日志收集服务器
Spring Cloud + ELK 统一日志系统搭建
ELK 是 Elasticsearch、Logstash、Kibana 的简称,这三者是核心套件,但并非全部。
大数据真好玩
2021/01/26
3.4K0
Spring Cloud Sleuth使用ELK收集&分析日志
注意, logstash-logback-encoder 的版本务必和Logback兼容,否则会导致应用启动不起来,而且不会打印任何日志!可前往 https://github.com/logstash/logstash-logback-encoder 查看和Logback的兼容性。
用户1516716
2019/09/02
1.9K0
Spring Cloud Sleuth使用ELK收集&分析日志
Docker安装ELK并实现JSON格式日志分析
ELK是elastic公司提供的一套完整的日志收集以及前端展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch、Logstash和Kibana。
我的小熊不见了丶
2019/10/25
1.5K0
Docker安装ELK并实现JSON格式日志分析
SpringCloud——Sleuth、ELK、Zipkin
【解释】INFO [simple-demo-2,ddfe378c0a8ec7cc,d4f2e63ad9bc890b,true]
爪哇缪斯
2023/05/10
9180
SpringCloud——Sleuth、ELK、Zipkin
Spring Boot 整合 elk
进入容器后,修改 /etc/logstash/conf.d/02-beats-input.conf
程序员果果
2019/05/16
8680
SpringBoot 整合 ELK
进入容器后,修改 /etc/logstash/conf.d/02-beats-input.conf
jwangkun
2021/12/23
3620
SpringBoot 整合 ELK
Elasticsearch Logstash Kibana Filebeat 搭建
ELK+Filebeat的流程应该是这样的:Filebeat->Logstash->(Elasticsearch<->Kibana)由我们自己的程序产生出日志,由Filebeat进行处理,将日志数据输出到Logstash中,Logstash再将数据输出到Elasticsearch中,Elasticsearch再与Kibana相结合展示给用户。
BUG弄潮儿
2020/06/15
1.7K0
Elasticsearch Logstash Kibana Filebeat 搭建
使用Docker快速搭建ELK日志分析平台
Docker是目前非常主流的容器化的虚拟技术,这个虚拟又与VMware或者是Hyper-v搭建的虚拟机不同,虚拟机是在宿主机的内核已经操作系统系统之上在虚拟出一套操作系统,而Docker这种容器化的技术是基于操作系统的namespace直接使用宿主机的操作系统去构建需要隔离的应用,中间省去了再去虚拟化一套操作系统的过程,或许有人会担心使用如果Docker的容器挂掉了之后,数据会丢失的问题,这你大可不必的过多担心,Docker本身实现了数据卷的工程,可以将容器内部的目录挂载到宿主机之上,只要你的宿主机还健康,那么上面的数据就不会丢失.甚至是当你重新创建一个容器之后你将新容器的数据目录也挂载到了之前容器的目录上,数据都可以复用,但我不建议你这样哦~
姜同学
2022/10/27
2.2K0
使用Docker快速搭建ELK日志分析平台
SpringBoot集成ELK实现日志收集实践
Elasticsearch默认使用mmapfs目录来存储索引。操作系统默认的mmap计数太低可能导致内存不足,我们可以使用下面这条命令来增加内存:
gang_luo
2020/08/17
1.4K0
springcloud集成elk
springcloud是一个应用很广的微服务全家桶,阿里开发了自己的springcloud alibaba分支,elk是一款不错的监控工具,尤其是日志分析,可以将springcloud微服务项目的日志通过logstash-logback-encoder传送到elk的logstash上,好了废话不多少了,直接进入环境搭建流程:
johnhuster的分享
2022/03/29
6800
springcloud集成elk
Docker 入门到实战教程(十二)ELK+Filebeat搭建日志分析系统
一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
小东啊
2020/07/23
4.8K1
Docker 入门到实战教程(十二)ELK+Filebeat搭建日志分析系统
Spring Cloud构建微服务架构:分布式服务跟踪(整合logstash)【Dalston版】
通过之前的《入门示例》,我们已经为两个由SpringCloud构建的微服务项目 trace-1和 trace-2引入了Spring Cloud Sleuth的基础模块 spring-cloud-starter-sleuth,实现了为各微服务的日志信息中添加跟踪信息的功能。但是,由于日志文件都离散的存储在各个服务实例的文件系统之上,仅仅通过查看日志文件来分析我们的请求链路依然是一件相当麻烦的差事,所以我们还需要一些工具来帮助我们集中的收集、存储和搜索这些跟踪信息。引入基于日志的分析系统是一个不错的选择,比如:
程序猿DD
2018/03/20
1.4K0
Spring Cloud构建微服务架构:分布式服务跟踪(整合logstash)【Dalston版】
ELK实战(Springboot日志输出查找)
需求 把分布式系统,集群日志集中处理快速查询 搭建ELK并与springboot日志输出结合 搭建ELK 基于我前面的elasticsearch搭建博客文档docker-compose.yml基础上进行添加修改 新建docker-compose.yml文件,内容如下 version: '2' services: elasticsearch-central: image: elasticsearch:5.6.4 container_name: es1 volumes:
老梁
2019/09/10
1.8K0
ELK实战(Springboot日志输出查找)
​既生瑜,何生亮,SkyWalking 和 ELK 实现链路追踪的实践
最近在给项目搭建日志平台的时候,采用的方案是 SkyWalking + ELK 日志平台,但发现 ELK 日志平台中的日志没有 Trace ID,导致无法追踪代码报错的整体链路。
悟空聊架构
2024/08/12
2.7K2
​既生瑜,何生亮,SkyWalking 和 ELK 实现链路追踪的实践
ELK+logback+kafka+nginx 搭建分布式日志分析平台
ELK(Elasticsearch , Logstash, Kibana)是一套开源的日志收集、存储和分析软件组合。而且不只是java能用,其他的开发语言也可以使用,今天给大家带来的是elk+logback+kafka搭建分布式日志分析平台。本文主要讲解一下两种流程,全程linux环境(模拟现实环境,可用内存一定要大于2G,当然也可以使用windows),至于elk这些组件的原理,百度太多了,我就不重复了,重在整合。
码农笔录
2022/01/21
1.1K0
ELK+logback+kafka+nginx 搭建分布式日志分析平台
ElasticSearch6.5白金版本从构建ELK、集群搭建到和Mybatis结合操作详细讲解
还有一种可能是当磁盘的使用率超过95%时,Elasticsearch为了防止节点耗尽磁盘空间,自动将索引设置为只读模式。
Dream城堡
2020/06/10
2.5K0
ElasticSearch6.5白金版本从构建ELK、集群搭建到和Mybatis结合操作详细讲解
ELK+logback+kafka+nginx 搭建分布式日志分析平台
ELK(Elasticsearch , Logstash, Kibana)是一套开源的日志收集、存储和分析软件组合。而且不只是java能用,其他的开发语言也可以使用,今天给大家带来的是elk+logback+kafka搭建分布式日志分析平台。本文主要讲解一下两种流程,全程linux环境(模拟现实环境,可用内存一定要大于2G,当然也可以使用windows),至于elk这些组件的原理,百度太多了,我就不重复了,重在整合。
用户2235302
2018/08/22
1.5K0
ELK+logback+kafka+nginx 搭建分布式日志分析平台
走进Java接口测试之整合ELK实现日志收集
启动时会发现 /usr/share/elasticsearch/data 目录没有访问权限,只需要修改 /mydata/elasticsearch/data 目录的权限,再重新启动即可;
高楼Zee
2020/09/24
1.7K0
走进Java接口测试之整合ELK实现日志收集
ELK+redis搭建
2.安装logstash 解压后是没有logstash的配置文件的,需要手动创建一个,上面截图的log.conf就是我手动创建的,为了测试,只是配置了简单的标准输入和标准输出,内容如下:
@凌晨
2020/05/28
3730
ELK+redis搭建
相关推荐
Logback+ELK+SpringMVC搭建日志收集服务器
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • ELK 简介
    • 准备环境
    • 安装 Elasticsearch
    • 安装 Elasticsearch-head 插件
    • 安装 Logstash
    • 安装 Kibana
    • 项目测试(Springboot)
  • 改进优化
    • 安装 Filebeat
  • Elasticsearch、Kibana、Logstash 配置密码
    • Elasticsearch 设置密码
    • Kibana 设置密码
    • 修改Elasticsearch密码
  • 修改成功后需重启 Elasticsearch、Kibaba、Logstash。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档