搭建ELK-Filebeat采集系统日志

1、解压到/data/elk/filebeat

复制代码
mkdir -p /data/elk/filebeat
tar -zxf filebeat-7.17.7-linux-x86_64.tar.gz -C /data/elk/filebeat --strip-components=1 #--strip-components选项表示从目录级别上去除指定的前缀,以实现更加控制解压的效果

2、修改配置文件

复制代码
vi /data/elk/filebeat/filebeat.yml
# ============================== Filebeat inputs ===============================
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /data/nginx/*.log

  ### 添加字段
  # 添加一些字段以识别项目和主机环境
  fields:
    hostenv: "production"  # 主机环境
    project: "nginx"  # 所属项目

  ### 多行选项
  # 多行选项,期望输出连续的多行日志,比如Java日志。
  multiline.type: pattern
  multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
  # 使用正则表达匹配行。
  multiline.negate: true
  # 定义行是否被否定,若被否定,则执行"multiline.match"。
  multiline.match: after
  # 设置将匹配行与上一行(before)合并为一个事件输出,还是将匹配行与下一行(after)合并为一个事件输出。

# ================================== Outputs ===================================
# ...
# ------------------------------ Kafka Output -------------------------------
output.kafka:
  hosts: ["192.168.0.193:9092"]
  # 指定Kafka服务器连接地址,我这边由于网络环境问题,所以使用Kafka服务器的公网主机IP地址。
 
  username: "admin"
  # 设置连接Kafka所使用的的用户名
  password: "admin888"
  # 设置连接Kafka所使用的的用户密码

  topic: '%{[fields.hostenv]}-%{[fields.project]}'
  # 设置主题名称
  partition.round_robin:
    group_events: 1
    reachable_only: false
  # 设置消息写入主题的分区策略:默认使用hash方法。
  # random.group_events, 随机写入主题的任意一个分区,并设置写入分区时消息事件的数量,默认为1。
  # round_robin.group_events,有序的轮询的写入主题分区,并设置写入分区时消息时间的数量,默认为1。
  # hash.hash,通过哈希计算分区中的字段列表,将匹配的字段写入到同一个分区中,如果没有配置字段,则使用事件键值。
  # - hash.random,如果无法计算哈希或键值,则随机分发事件。
  # reachable_only: 默认分区都尝试向所有分区发布事件,如果一个分区的leader在这个beat下变得不可用,输出可能会阻塞,则开启该项表示允许将事件发送到可用分区。
  required_acks: 1
  # 设置Kafka代理要求的ACK可靠性级别:
  # 0,无响应。
  # 1,等待本地提交。
  # -1,等待所有副本提交。
  # 注:如果设置为0,则Kafka不会返回任何ACK。出现错误时,消息可能会自动丢失。
  compression: gzip
  # 设置输出压缩编解码器,默认为gzip。支持none、snappy、lz4和zip压缩方式。
  compression_level: 4
  # 设置压缩级别,默认为4。如果设置为0,则表示不压缩。
  max_message_bytes: 10000000
  # JSON编码消息最大允许大小。更大的信息将被删除。默认是1M。该值应该小于或等于Kafka代理服务器
  # 的"message.max.bytes"。

3、设置开机启动

复制代码
vi /lib/systemd/system/filebeat.service
[Unit]
Description=filebeat
Wants=network-online.target
After=network-online.target
[Service]
User=root
ExecStart=/data/elk/filebeat/filebeat -c /data/elk/filebeat/filebeat.yml
Restart=always
[Install]
WantedBy=multi-user.target
#加入开机启动
systemctl daemon-reload
systemctl enable filebeat

4、常用命令

复制代码
systemctl start filebeat.service #启动
systemctl stop filebeat.service #停止
systemctl status filebeat.service #状态

启动后,filebeat会直接把对应的文件里面的日志自动发送到kafka对应的主题。如果不会安装kafka,请点击链接

相关推荐
TDengine (老段)几秒前
TDengine IDMP 工业数据建模 —— 数据情景化
大数据·数据库·人工智能·时序数据库·iot·tdengine·涛思数据
Omics Pro1 分钟前
端到端单细胞空间组学数据分析
大数据·数据库·人工智能·算法·数据挖掘·数据分析·aigc
wangjialelele3 分钟前
一文读懂 Redis 持久化与事务
linux·数据库·redis·bootstrap
武子康6 分钟前
大数据-258 离线数仓 - Livy与Griffin编译安装指南:大数据环境配置实战
大数据·hadoop·后端
Linux蓝魔7 分钟前
麒麟官方yum源配置V10SP2-V10SP3-V10SP3-2403
大数据·linux·运维
helloliyh8 分钟前
linux 删除指定日期目录(包括目录下文件)
linux·运维·服务器
半个俗人19 分钟前
06.Linux用户权限相关命令
linux·运维·服务器
小宇的天下20 分钟前
Calibre LVS Circuit Comparison(1)
linux·数据库·lvs
涛声依旧3931622 分钟前
构建部署kubernetes所需主机
linux·运维·云原生·容器·kubernetes
源码之家23 分钟前
大数据毕业设计汽车推荐系统 Django框架 可视化 协同过滤算法 数据分析 大数据 机器学习(建议收藏)✅
大数据·python·算法·django·汽车·课程设计·美食