使用Docker搭建ELK日志系统的方法示例
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,以下安装都是以 ~/ 目录作为安装根目录。ElasticSearch下载镜像:$ sudo docker pull elasticsearch:5.5.0运行ElasticSearch容器:$ sud
千家信息网最后更新 2025年02月22日使用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安全错误
数据库的锁怎样保障安全
三级网络技术南开100题
如何对数据库表重命名
计算机软件开发好学吗
嵌入式软件开发年薪
江苏大数据软件开发服务
网络安全工作实施方案
数据库的了解和认识
软件开发到使用
64位服务器
网络服务器为什么这么多
无人机测绘软件开发
威海智慧城管软件开发系统
南洋股份网络安全业务
数据库表只能有一个自增吗
网络技术对人们影响
上海测试软件开发联系人
网络安全 德育实践课教案
数据库知识体系
软件开发都是英语吗
网络技术岗位薪资
成都陶云网络技术有限公司
数据库数据量有多大
特定创建数据库怎么授权
中国人民银行网络安全展板
智慧校园网络安全与学习
看软件服务器
创建数据库的五个属性
怎样通过ip查对应的服务器
软件开发过程的保密协议
在非洲玩和平精英用什么服务器