日志收集分析利器-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日志并进行多维度分析。
目录
相关文章
|
20天前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
|
1月前
|
存储 SQL 监控
|
1月前
|
运维 监控 安全
|
1月前
|
存储 监控 安全
|
1月前
|
监控 关系型数据库 MySQL
分析慢查询日志
【10月更文挑战第29天】分析慢查询日志
43 3
|
1月前
|
监控 关系型数据库 数据库
怎样分析慢查询日志?
【10月更文挑战第29天】怎样分析慢查询日志?
43 2
|
2月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1700 14
|
2月前
|
存储 消息中间件 大数据
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
49 4
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
53 2
08-06-06>pe_xscan 精简log分析代码 速度提升一倍
08-06-06>pe_xscan 精简log分析代码 速度提升一倍