使用Docker搭建ELK日志系统的方法示例
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,以下安装都是以 ~/ 目录作为安装根目录。ElasticSearch下载镜像:$ sudo docker pull elasticsearch:5.5.0运行ElasticSearch容器:$ sud
千家信息网最后更新 2025年12月02日使用Docker搭建ELK日志系统的方法示例
以下安装都是以 ~/ 目录作为安装根目录。
ElasticSearch
下载镜像:
$ sudo docker pull elasticsearch:5.5.0
运行ElasticSearch容器:
$ sudo docker run -it -d -p 9200:9200 -p 9300:9300 \-v ~/elasticsearch/data:/usr/share/elasticsearch/data \--name myes elasticsearch:5.5.0
特别注意的是如果使用v6以上版本会出现jdk的错误,我们查看日志
$ docker logs -f myes
查看日志:
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
网上找到大概的意思是:
jdk9对elasticSearch不太友好(版本太新),必须使用JDK8,本人使用的是JDK8u152(jdk-8u152-windows-x64.exe)。如果使用JDK9,使用elasticSearch-rtf(v5.1.1),会出现下面的错误,请特别注意,elasticSearch7.0的版本则必须使用JDK9,否则官网下载的msi不能安装成功,原因还没有去仔细检查。
所以也是一个很坑爹的问题,所以我干脆直接就安装v5.5.0稳定版本吧。
Logstash
下载镜像:
$ sudo docker pull logstash:5.5.0
新建配置文件:
$ mkdir ~/logstash/conf.d && cd logstash/conf.d$ vim logstash.conf
logstash.conf:
input { beats { port => 5044 # 此端口需要与 filebeat.yml 中的端口相同 } file { path => "/data/logs" # start_position => "beginning" }}filter { #grok { # match => { "message" => "%{COMBINEDAPACHELOG}" } #} #date { # match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"] #} grok { patterns_dir => "/etc/logstash/conf.d/patterns" match => {"message" => "%{TIMESTAMP_ISO8601:time}\S%{MYSELF:msgid}%{MYSELF:method}%{MYDATA:data}%{MYSELF:UserInfo}\S%{LOGLEVEL:level}\S%{MYSELF:thread}%{MYSELF:application}%{MYSELF:ip}"}}date { #match => [ "time", "YYYY-MM-dd HH:mm:ss,SSS" ] match => [ "time", "ISO8601" ] target => "@timestamp" timezone => "Asia/Phnom_Penh" }}output { stdout { codec => rubydebug } elasticsearch { action => "index" hosts => ["172.17.10.114:9200"] index => "%{[fields][indexname]}-%{+YYYY.MM.dd}" }}运行Logstash容器:
$ sudo docker run -it -d -p 5044:5044 \-v ~/logstash/conf.d:/etc/logstash/conf.d \-v ~/logstash/data/logs:/data/logs \--name logstash logstash:5.5.0 \-f /etc/logstash/conf.d/logstash.conf
Kibana
下载镜像:
$ sudo docker pull kibana:5.5.0
新建配置文件:
$ mkdir ~/kibana && cd ~/kibana$ vim kibana.yml
kibana.yml:
server.port: 5601server.host: "0.0.0.0"elasticsearch.url: "http://172.17.10.114:9200"
运行Kibana容器:
$ sudo docker run -it -d -p 5601:5601 \-v ~/kibana:/etc/kibana \--name kibana kibana:5.5.0
Filebeat
Filebeat需要部署在需要收集日志的服务器上。
下载镜像:
$ sudo docker pull docker.elastic.co/beats/filebeat:5.5.0
新建配置文件:
filebeat.prospectors:- type: log paths: - ~/filebeat/logs # 指定需要收集的日志文件的路径fields: indexname: xxx # 这里填写项目名称,对应index => "%{[fields][indexname]}-%{+YYYY.MM.dd}"output.logstash: hosts: ["172.17.10.114:5044"]运行Filebeat容器:
$ sudo docker run -it -d \-v ~/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \--name filebeat docker.elastic.co/beats/filebeat:5.5.0
附上一张ELK结构流程图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
日志
容器
文件
版本
镜像
运行
配置
端口
错误
相同
成功
内容
原因
名称
就是
意思
服务器
根目录
流程
流程图
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
珠海物联网软件开发有哪些
迅成服务器
测试软件开发工程师求职信
android数据库加密
常熟网络技术咨询电话
coca数据库
mfc上传数据库
桐乡互联网科技园
白兔商标查询软件开发商
数据库相容性
请问网络安全教育的知识有哪些
网络安全法对IDC
qt加载数据库表格
sql数据库如何导入
网络安全的结束语怎么写
杭州恒生软件开发实习生待遇
颛桥服务器两边都有厕所吗
中英文对应的数据库
数据库select偶数
中国有几家做软件开发的公司
税务局网络安全管理办法
脉冲神经网络技术snn
正规网络技术开发口碑推荐
芝麻开门网络技术公司
淘宝是什么软件开发出来的
计算机网络技术考试试题拓展题
网络技术工程师是干什么的
网络安全 三授权
魂斗罗连接不了服务器
宣传网络安全的人