log4j 集成 ELK环境搭建

一、前言

1.需要准备一台linux服务器(最好是CentOS7),内存至少4g以上(三个组件都比较占用内存)

2.需要有docker使用经验

  1. 三个软件的版本要一致

二、安装ElasticSearch

这里先创建一个网络:因为我们还需要部署kibana容器、logstash容器,需要让这些容器互联,也可以让ELK环境于其他容器的在网络上隔离。

1.创建一个自定义网络
bash 复制代码
docker network  create --driver bridge  --subnet 192.168.0.0/16 --gateway 192.168.0.1 my_elk_net

2.创建ES 容器

bash 复制代码
#搜索镜像
docker search elasticsearch
#下载镜像
docker pull elasticsearch:7.12.1

docker run -d \
        --name es \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v /soft/es/data:/usr/share/elasticsearch/data \
    -v /soft/es/plugins:/usr/share/elasticsearch/plugins \
    --privileged \
    --network my_elk_net \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:7.12.1
3 验证es容器
bash 复制代码
curl localhost:9200

三 docker安装kibana

1.安装kibana

docker run -d \

--name kibana \

-e ELASTICSEARCH_HOSTS=http://es:9200 \

-e "I18N_LOCALE=zh-CN" \

--network=my_elk_net \

-p 5601:5601 \

kibana:7.12.1

四 docker安装logstash

bash 复制代码
docker run -d -p 5044:5044 -p 9600:9600 --name logstash --network=my_elk_net logstash:7.12.1

三个容器创建完成

查看在自定一网络下三个容器的ip地址

1 设置ES的地址
bash 复制代码
#进入容器
docker exec -it logstash /bin/bash
1.1 进入 /usr/share/logstash/config 配置目录 修改 logstash.yml 文件
bash 复制代码
cd /usr/share/logstash/config
1.2 注意此处是ES 容器的ip地址
bash 复制代码
http.host: "0.0.0.0"
#设置跟es的服务地址
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.0.2:9200" ] 

(2) 设置logstash收集日志的输入和输出

2.1 进入到 目录 /usr/share/logstash/pipeline 下面 修改 logstash.conf
bash 复制代码
input {
  tcp {
    mode => "server"
    host => "0.0.0.0"  # 允许任意主机发送日志
    port => 5044
    codec => json_lines    # 数据格式
  }
}

output {
  elasticsearch {
      # ElasticSearch 的地址和端口
      hosts  => ["http://192.168.0.2:9200"]
     # 指定索引名,可以根据自己的需求指定命名
      index  => "log-%{+YYYY.MM.dd}"         
      codec  => "json"
  }
  stdout {
    codec => rubydebug
  }
}
2.2 修改完所有的配置后,需要重启logstash容器
bash 复制代码
docker restart logstash

五 应用系统对接logstash

1 进入logstash jar包
bash 复制代码
            <dependency>
                <groupId>biz.paluch.logging</groupId>
                <artifactId>logstash-gelf</artifactId>
                <version>1.12.0</version>
            </dependency>
2 在log4j的xml配置文件中 加入logstash的配置
bash 复制代码
            </DefaultRolloverStrategy>
        </RollingFile>
        <Socket name="logstash" remoteHost="115.29.200.225" port="5044" protocol="TCP">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
        </Socket>
    </Appenders>
3 然后打包项目部署 然后打开kibana

点击索引模式

创建索引

按照索引搜索

日志集成成功

相关推荐
泡沫·2 天前
ELK 企业日志分析系统核心总结
elk
我爱学习好爱好爱2 天前
ELK 7.17.10 收集Docker Compose部署的SpringBoot2+Vue3项目日志(Rockylinux9.6)
elk·docker·容器
我爱学习好爱好爱9 天前
ELK 7.17.10 + Redis 5.0.7 构建高可用 Nginx 日志收集系统(Rocky Linux 9.6 实战)
redis·nginx·elk
我爱学习好爱好爱13 天前
ELK日志分析平台(五):Filebeat 部署与 Nginx 日志采集(输出至 Logstash)(基于Rocky Linux 9.6)
linux·nginx·elk
我爱学习好爱好爱15 天前
ELK日志分析平台(三):Logstash 7.17.10 独立节点部署与基础测试(基于Rocky Linux 9.6)
linux·python·elk
我爱学习好爱好爱15 天前
ELK日志分析平台(四):Kibana 7.17.10 部署与基本配置(与ES01同机,基于Rocky Linux 9.6)
linux·运维·elk
七夜zippoe16 天前
[特殊字符] Python日志系统革命:Loguru结构化日志与ELK Stack集中管理实战指南
大数据·python·elk·loguru·logstash
来一杯龙舌兰17 天前
【ELK】Filebeat+Redis+双Logstash架构解析与部署教程(图文)
redis·elk·架构·日志监控
A 糖醋排骨17 天前
小型项目elk搭建
elk
昱宸星光1 个月前
ELK日志收集平台搭建
elk