Docker搭建ELK日志系统

 2023-12-24  阅读 4  评论 0

摘要:ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。目前主流的一种日志系统。 以下安装都是以 ~/ 目录作为安装根目录。 Ela

Docker搭建ELK日志系统

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。目前主流的一种日志系统。

以下安装都是以 ~/ 目录作为安装根目录。

ElasticSearch

下载镜像:

$ sudo  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),会出现下面的错误,请特别注意,elasticSearch6.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: 5601  server.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结构流程图:

提示:现在腾讯云新人点击注册然后实名认证后,可以点此一键领取2860元代金券,然后点此进入腾讯云活动页面参加优惠力度非常大的腾讯云3年和5年时长服务器活动,一次性买多年,免得续费贵,这样就可以获得最大的优惠折扣,省钱。

版权声明:xxxxxxxxx;

原文链接:https://lecms.nxtedu.cn/yunzhuji/130966.html

发表评论:

验证码

管理员

  • 内容1196553
  • 积分0
  • 金币0
关于我们
lecms主程序为免费提供使用,使用者不得将本系统应用于任何形式的非法用途,由此产生的一切法律风险,需由使用者自行承担,与本站和开发者无关。一旦使用lecms,表示您即承认您已阅读、理解并同意受此条款的约束,并遵守所有相应法律和法规。
联系方式
电话:
地址:广东省中山市
Email:admin@qq.com
注册登录
注册帐号
登录帐号

Copyright © 2022 LECMS Inc. 保留所有权利。 Powered by LECMS 3.0.3

页面耗时0.0106秒, 内存占用360.53 KB, 访问数据库18次

  • 我要关灯
    我要开灯
  • 客户电话
    lecms

    工作时间:8:00-18:00

    客服电话

    电子邮件

    admin@qq.com

  • 官方微信

    扫码二维码

    获取最新动态

  • 返回顶部