ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件
公众号 : 倔强小狮子
文章目录
1. 所需准备
- JDK8.+
- 4 核 8G 服务器(甚至最低)
- 安装 wget
1. ELK 架构
PS : 多个web可以被同一个 logstash 采集, 并推送至 ElasticSearch最终由 Kibana 展示
PS : ElasticSearch Loastash Kibana 版本号必须一致
2. 安装 ElasticSearch
-
下载地址: https://www.elastic.co/cn/downloads/elasticsearch
-
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.3-linux-x86_64.tar.gz
-
/config/jvm.options elasticsearch 启动所需内存等, 配置 JVM内存大小等, 根据自己服务器配置调试
-Xms, -Xmx 配置
-
启动 ElasticSearch
注意: 禁止使用 root 用户启动 elasticsearch
4.1 新建用户 及 修改配置文件
adduser es passwd es chown -R es:es elasticsearch-7.16.3 chmod 770 elasticsearch-7.16.3 vim ./config/elasticsearch.yml 内 network地址 vim ./config/elasticsearch.yml cluster.initial_master_nodes: ["master"] # 启动命令 su es ./bin/elasticsearch
-
校验 elasticsearch 安装成功
访问 localhost:9200
-
错误查看距离配置文件
3. 安装 logstash
-
下载地址: https://www.elastic.co/cn/downloads/logstash
-
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.16.3-linux-aarch64.tar.gz
-
jvm.options JVM 启动参数配置, pipelines.yml 配置多个管道时使用
-
注意: logstash-sample.conf 配置文件, 配置日志采集源
cp logstash-sample.conf logstash-global_log.conf
input { # 采用TCP采集模式 tcp { #模式选择为server mode => "server" #ip和端口根据自己情况填写,端口默认4560,对应下文logback.xml里appender中的destination, 日志上报地址 host => "127.0.0.1" port => 4560 #格式json codec => json_lines } } filter { #过滤器,根据需要填写 } output { elasticsearch { action => "index" #这里是es的地址,多个es要写成数组的形式 hosts => "127.0.0.1:9200" #用于kibana过滤,可以填项目名称 index => "global_log" } }
-
修改配置文件
vim logstash.yml api.http.host: 0.0.0.0 api.http.port: 9600
-
启动 Logstash
../bin/logstash -f ./global_log.conf
-
校验 安装 logstash 成功
4. 配置项目pom
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.2</version>
</dependency>
5. 配置 logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<!--应用名称-->
<property name="APP_NAME" value="ccos-upms"/>
<!--日志文件保存路径-->
<property name="LOG_FILE_PATH" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/logs}"/>
<contextName>${APP_NAME}</contextName>
<!--每天记录日志到文件appender-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!--输出到logstash的appender-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--可以访问的logstash日志收集端口-->
<!-- logstash-global_log.conf tcp标签配置 host 地址 -->
<destination>127.0.0.1:4560</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
<root>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
5. 安装 Kibana
- 下载地址: https://www.elastic.co/cn/downloads/kibana
- wget https://artifacts.elastic.co/downloads/kibana/kibana-7.16.3-linux-x86_64.tar.gz
- 配置 index
6. 总结
1. logstash 可以采集多个项目, 使用 pipelines.yml 配置
2. 可以使用 filebeat 方式进行搭建日志采集系统(后续出案例)
3. 本文采集 TCP采集方式, 可使用 file, 及 kafka消息中间件方式进行采集
期待你的关注,和我一起学习
转载说明:转载携带原文链接