Linux 搭建ELK日志采集记录

架构

​ Logback ->Logstash ->elasticsearch -> kibana

​ 分布式环境,通过logback发送日志到logstash,再由logstash将采集到的日志发送到Elasticsearch,使用kibana进行查询采集到的日志。

安装

在这里插入图片描述

安装选用版本为最新的7.14.0版本

elasticsearch安装

​ 官网下载地址

​ https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-linux-x86_64.tar.gz

​ 1.解压

​ 解压完成为上图文件夹,进入config文件夹,打开jvm.options文件,如果服务器内存不足,需要修改以下字段,修改成合适的值。

在这里插入图片描述

打开elasticsearch.yml文件,在文件末尾增加如下配置

		# 节点配置
		cluster.name: myelasticsearch
		node.name: node-1
		# data文件和日志文件路径 如果没有文件夹 手动创建文件夹
		path.data: /usr/local/elk/elasticsearch-7.14.0/data        
		path.logs: /usr/local/elk/elasticsearch-7.14.0/logs        
		bootstrap.memory_lock: false
		#ip 端口
		network.host: 0.0.0.0
		http.port: 9203
		cluster.initial_master_nodes: ["node-1"]

由于elasticsearch不能用root用户启动, 创建elasticsearch用户。

# 添加elk组
groupadd elk
# 添加用户elasticsearch 密码为elasticsearch
useradd elasticsearch -g elk -p elasticsearch
# 将文件所有权修改为elasticsearch
chown -R elasticsearch:elk elasticsearch-7.14.0
# 切换用户  后台启动elasticsearch
su elasticsearch
nohup sh elasticsearch &

检验启动情况 因为本机9200端口冲突 故使用9203端口 如下启动成功

在这里插入图片描述

运行中可能出现内存不足的情况 max_map_count过小导致

 # 执行命令:
 sysctl -w vm.max_map_count=262144
 # 查看结果:
 sysctl -a|grep vm.max_map_count
 # 显示:
 vm.max_map_count = 262144
 
 # /etc/sysctl.conf文件最后添加一行 永久生效
 vm.max_map_count=262144
logstash安装配置 + logback配置

​ 官网下载地址

​ https://artifacts.elastic.co/downloads/logstash/logstash-7.14.0-linux-x86_64.tar.gz

logback.xml配置

根据tcp协议传递到对应的端口, logstash监听对应端口, 接收日志信息。

    <springProperty scope="context" name="serviceName" source="spring.application.name"/>
    <springProperty scope="context" name="profileActive" 		 source="spring.profiles.active"/>

    <property name="SERVICE_NAME" value="${serviceName}" />
    <property name="PROFILE_ACTIVE" value="${profileActive}" />

<appender name="LOGSTASH" 			     			class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <!-- 发送到本机7777端口 -->
    <destination>127.0.0.1:7777</destination>
    <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
        <providers>
            <pattern>
                <pattern>
                    <!--输出日志可自定义,可根据自己需要配置-->
                    {
                    <!--es索引名称 -->
                    "indexname":"${SERVICE_NAME} + %d{yyyy-MM-dd}",
                    <!--应用名称 -->
                    "appname":"${SERVICE_NAME}",
                    <!--服务器ip -->
                    <!--                        "host": "%ip",-->
                    <!--应用端口 -->
                    <!--                        "port": "${PORT}",-->
                    <!--打印时间 -->
                    "timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}",
                    <!--线程名称 -->
                    "thread": "%thread",
                    <!--日志级别 -->
                    "level": "%level",
                    <!--日志名称 -->
                    "logger_name": "%logger",
                    <!--日志信息 -->
                    "message": "%msg",
                    <!--日志堆栈 -->
                    "stack_trace": "%exception",
                    <!-- ENV -->
                    "env": "${PROFILE_ACTIVE}"
                    }
                </pattern>
            </pattern>
        </providers>
    </encoder>
    <keepAliveDuration>5 minutes</keepAliveDuration>
</appender>

logstash配置

进入config文件夹

修改logstash-sample.yml文件

input {
  # 监听7777端口,json类型接收
  tcp {
	port => 7777 
	codec => "json"
	}
}

output {
  # 输出为elasticsearch 索引名称为appname + 时间年月日类型
  elasticsearch {
    action => "index"
    hosts => ["http://localhost:9203"]
    index => "%{[appname]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

进入bin文件夹, 启动logstash

nohup sh logstash -f ../config/logstash-sample.yml &
kibana下载地址

​ 官网下载地址

​ https://artifacts.elastic.co/downloads/kibana/kibana-7.14.0-linux-x86_64.tar.gz

​ 1.解压

​ 2.进入config文件夹, 修改kibana.yml文件

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9203"]
kibana.index: ".kibana"

配置完成,启动kibana

nohup sh kibana &

访问5601端口即可看见kibana运行界面

在这里插入图片描述

选择左侧菜单栏->discover 进入筛选界面,通过添加添加filter进行搜索相应的值。

ana.index: “.kibana”


配置完成,启动kibana

```shell
nohup sh kibana &

访问5601端口即可看见kibana运行界面

在这里插入图片描述

选择左侧菜单栏->discover 进入筛选界面,通过添加添加filter进行搜索相应的值。

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐