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

点击索引模式

创建索引

按照索引搜索

日志集成成功

相关推荐
必叫你大败而归17 小时前
ELK日志分析系统
elk
確定饿的猫18 小时前
ELK环境部署
elk
YCyjs18 小时前
ELK 企业级日志分析系统
elk
码农郁郁久居人下18 小时前
ELK 企业级日志分析系统
elk
史努比.3 天前
ELK 企业级日志分析系统
elk
檀越剑指大厂3 天前
【Elasticsearch系列四】ELK Stack
大数据·elk·elasticsearch
2401_840192273 天前
ELFK日志分析平台,架构和通信
elk·elasticsearch·架构
ygqygq26 天前
ElK 8 收集 Nginx 日志
nginx·elk
纪佰伦8 天前
ELK在Linux服务器下使用docker快速部署(超详细)
linux·服务器·elk
写....写个大西瓜9 天前
【Docker部署ELK】(7.15)
elk·docker