日志收集分析利器-ELK加FileBeat

9 篇文章 0 订阅
6 篇文章 0 订阅
本文详细介绍如何使用ELK堆栈进行日志分析,包括Docker环境下ELK组件的安装配置,日志采集流程,以及Kibana上的日志展示。通过实际操作,读者将学会如何搭建并运行ELK系统,实现对应用日志的有效监控。
摘要由CSDN通过智能技术生成

前言

依旧是上次的朋友, 项目搭建完后又想搞一手日志分析玩玩, 其实他的日志已经统一输出到一个文件里面了, 接elk属实没啥必要, 不过玩一玩还是可以的
在这里插入图片描述
下面就是具体的操作步骤了

安装docker-compose

pip install --upgrade pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U docker-compose

编写配置文件

别忘了把127.0.0.1 替换成自己的ip地址
创建挂载目录
mkdir -p /data/elk/es /data/elk/filebeat
cd /data/elk
小技巧

linux vim下粘贴文件可能会存在格式文件, 在粘贴前进入paste模式

:set paste

然后在插入模式下进行粘贴就好了

编写 filebeat配置

vim filebeat.yml

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /data/docker/logs/*/*.log   # 你的日志路径

#============================= Filebeat modules ===============================

filebeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml
  # Set to true to enable config reloading
  reload.enabled: true

output.logstash:
  # The Logstash hosts
  hosts: ["127.0.0.1:5044"]  # logstash 配置

编写 logstash 配置

vim logstash.conf

input {
    beats {
        port => 5044   # 端口配置
        host => "0.0.0.0"
    }
}

output {
    elasticsearch {
        hosts => ["127.0.0.1:9200"]  # es地址
    }
    stdout {
        codec => rubydebug
    }
}

vim logstash.yml

xpack.monitoring.elasticsearch.hosts: ["http://127.0.0.1:9100"]
#xpack.monitoring.elasticsearch.username: "" 
#xpack.monitoring.elasticsearch.password: ""
编写docker-compose

vim docker-compose.yml

version: "3.2"
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.2
    container_name: es
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ports:
      - 9200:9200
    networks:        # 保证同网络
      - "elk-net"
  filebeat:
    image: docker.elastic.co/beats/filebeat:7.4.2
    container_name: filebeat
    volumes:
      - type: bind
        source: "/data/elk/filebeat"
        target: "/data"
      - type: bind
        source: "/data/elk/filebeat.yml"
        target: "/usr/share/filebeat/filebeat.yml"
      - type: bind
        source: "/data/docker/logs"   # 替换成自己的docker日志路径/服务日志路径
        target: "/data/docker/logs"
      - type: bind
        source: "/etc/localtime"      # 同步时区
        target: "/etc/localtime"
    networks:
      - "elk-net"
    depends_on:      # 定义依赖关系
      - "logstash"
  logstash:
    image: docker.elastic.co/logstash/logstash:7.4.2
    container_name: logstash
    ports:
      - 5044:5044
    volumes:
      - type: bind
        source: "/data/elk/logstash.conf"
        target: "/usr/share/logstash/pipeline/logstash.conf"
      - type: bind
        source: "/data/elk/logstash.yml"
        target: "/usr/share/logstash/config/logstash.yml"
      - type: bind
        source: "/etc/localtime"
        target: "/etc/localtime"
    networks:
      - "elk-net"
  kibana:
    image: docker.elastic.co/kibana/kibana:7.4.2
    container_name: kibana
    ports:
      - 5601:5601
    networks:
      - "elk-net"
networks:
  elk-net:

服务启动

这样基础的配置文件就写完了, 生产环境上我们还需要考虑到es的高可用, 部署集群, 自定义 logstash 对日志数据的处理, 同步到es的索引库以及创建对应的mapping模板等等. 更多玩法敬请自行摸索

启动命令
docker-compose up --build -d
查看logstash日志
docker logs -f --tail=20 logstash

就能看到logstash采集的日志了

kibana配置discover

根据你的索引名配置规则
在这里插入图片描述
然后选择以时间为维度
在这里插入图片描述
这样你就能看见日志的采集情况了
在这里插入图片描述

容器删除
docker rm -f $(docker ps -a|grep "docker.elastic")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小僵尸打字员

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

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

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

打赏作者

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

抵扣说明:

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

余额充值