Docker 实践:快速搭建 ELK 日志分析系统

一、为什么需要日志分析系统

通常我们的系统在运行期间,会输出各种日志,以便于我们定位问题、探查系统运行时状态等等。

当我们需要查看日志时,传统方式是登录到目标服务器上,通过 Linux相关的工具命令,查看日志文件内容。当然对于小型系统(几台服务器以内的)的偶尔查询,姑且可以忍受,如果规模再大点,或频繁需要检索日志,那酸爽无以言表......

另外,传统的日志查找方式弊端也非常明显,比如:

  • 如果后端是服务集群,那么经过负载均衡,日志落在哪个节点上就是不确定的,一个一个节点去找,那就太低效了

  • 当需要根据某些关键词把相关的日志聚合起来查阅,常规方式就很麻烦

  • 微服务流行后,对服务调用的链路追踪和分析更是离不开日志系统

等等

因此我们需要一个日志分析解决方案。

二、简介 ELK 日志分析系统

        日志分析系统主要解决以下几个问题:

  • 日志的收集

  • 日志的存储

  • 日志的分析

不同公司或团队对于日志分析解决方案各不相同,有技术实力的大厂一般自研,本文介绍的 ELK是著名的社区解决方案。

ELK 官网(https://www.elastic.co/what-is/elk-stack)

具体理论性知识,可自行查阅,下面开始实操搭建。

三、快速搭建 ELK 日志分析系统

前提条件:先准备好docker 环境(不再赘述)


Step 1: 下载docker镜像

docker pull elasticsearch:7.8.1docker pull kibana:7.8.1docker pull logstash:7.8.1

Step 2: 运行ELK(单机版)

# 启动 elasticsearchdocker run \    --name docker-es \    -d \    -p 9200:9200 \    -p 9300:9300 \    -e "discovery.type=single-node" \    -e ES_JAVA_OPTS="-Xms256m -Xmx512m" \    elasticsearch:7.8.1

# 启动 kibanadocker run \  --name docker-kibana \  -d \  -p 5601:5601 \  kibana:7.8.1
# 进入docker-kibana容器  docker exec -it docker-kibana /bin/bash# 进入kibana容器后,主要是去修改下 es的服务地址cd config          // 切换到config目录vi kibana.yml      // 编辑 kibana配置文件-- 注意:http://192.168.6.6:9200 换成实际es服务的 ip:port --elasticsearch.hosts: [ "http://192.168.6.6:9200" ]
# 重启 kibanadocker restart docker-kibana# 启动 logstash
docker run --name=docker-logstash -d -p 9601:9601 logstash:7.8.1
# 进入容器docker exec -it docker-logstash /bin/bash
cd config
# 新增 logstash-tcp2es.conftouch logstash-tcp2es.conf
# 配置 logstash-tcp2es.confinput {  tcp {    port => 9601    codec => json_lines  }}
output {  elasticsearch {    hosts => ["http://192.168.6.6:9200"]    index => "access_log-%{+YYYY.MM.dd}"  }
  stdout {    codec => rubydebug  }}
# 编辑 logstash.yml,内容如下 path.config: /usr/share/logstash/config/logstash-tcp2es.confvi logstash.ymlpath.config: /usr/share/logstash/config/logstash-tcp2es.conf

# 重启 logstashdocker restart docker-logstash

Step 3: 验证(各服务是否启动正常)

# es 服务http://localhost:9200/
# kibana 服务http://localhost:5601/

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A cup of Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值