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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 日志收集分析利器-ELK加FileBeat

前言


依旧是上次的朋友, 项目搭建完后又想搞一手日志分析玩玩, 其实他的日志已经统一输出到一个文件里面了, 接elk属实没啥必要, 不过玩一玩还是可以的

20200630224101386.png


下面就是具体的操作步骤了


安装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


根据你的索引名配置规则


20200624110200846.png

然后选择以时间为维度


20200624110259383.png

这样你就能看见日志的采集情况了


20200628093956314.png

容器删除


docker rm -f $(docker ps -a|grep "docker.elastic")


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5天前
|
消息中间件 监控 Kafka
Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
【8月更文挑战第13天】Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
24 3
|
10天前
|
运维 监控 Ubuntu
一键启动日志魔法:揭秘ELK自动安装脚本的神秘面纱!
【8月更文挑战第9天】在数据驱动时代,高效处理日志至关重要。ELK Stack(Elasticsearch、Logstash、Kibana)是强大的日志分析工具,但其复杂的安装配置常让初学者望而却步。本文介绍如何编写ELK自动安装脚本,简化部署流程。脚本适用于Ubuntu系统,自动完成ELK下载、安装及基本配置,包括依赖项安装、服务启动及自启设置,极大降低了使用门槛,助力运维人员和开发者轻松构建日志分析平台。
46 6
|
12天前
|
存储 应用服务中间件 nginx
部署ELK+filebeat收集nginx日志
部署ELK+filebeat收集nginx日志
部署ELK+filebeat收集nginx日志
|
24天前
|
消息中间件 Kubernetes Kafka
日志采集/分析
日志采集/分析
36 7
|
3天前
|
数据可视化 Java API
如何在项目中快速引入Logback日志并搭配ELK使用
如何在项目中快速引入Logback日志并搭配ELK使用
|
6天前
|
存储 监控 Ubuntu
一键搞定:用脚本轻松部署ELK,让日志分析变得简单又高效
【8月更文挑战第13天】ELK栈由Elasticsearch、Logstash和Kibana组成,用于日志存储、解析及展示,是大数据领域广泛采用的日志解决方案。鉴于其安装配置复杂,本文提供了一个适用于Ubuntu 16.04的ELK自动安装Shell脚本示例。脚本首先确保Java环境安装,接着添加Elastic.co的APT仓库并安装ELK组件,最后启动所有服务。通过自动化流程,简化部署工作,减少人为错误,提升效率。实际应用中还需根据具体需求调整配置和服务设置。
11 0
|
12天前
|
应用服务中间件 Shell nginx
shell分析nginx日志的一些指令
shell分析nginx日志的一些指令
|
29天前
|
存储 大数据 数据库
MySQL设计规约问题之为什么要利用pt-query-digest定期分析slow query log并进行优化
MySQL设计规约问题之为什么要利用pt-query-digest定期分析slow query log并进行优化
系统分析与设计问题之日志的主要作用是什么
系统分析与设计问题之日志的主要作用是什么
|
1月前
|
应用服务中间件 Linux 开发工具
Nginx14---目录结构分析,查看Ngnix访问日志命令的写法​
Nginx14---目录结构分析,查看Ngnix访问日志命令的写法​

热门文章

最新文章