linux安装filebeat并收集日志到elasticsearch

摘要:

通过filebeat收集服务器上各个应用的日志到elasticsearch,通过tags区分不同的应用创建不同的索引保存日志。

官网地址:

https://www.elastic.co/cn/downloads/past-releases#filebeat

安装步骤:

1:下载并解压(以7.9.3版本为例)

bash 复制代码
cd /usr/local/src
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.3-linux-x86_64.tar.gz
tar -zxvf filebeat-7.9.3-linux-x86_64.tar.gz

2:修改配置文件filebeat.yml

bash 复制代码
cd filebeat-7.9.3-linux-x86_64
vi filebeat.yml

filebeat.inputs:

  • type: log

enabled: true

paths:

  • /logs/app1*.log

tags: "app1"

  • type: log

enabled: true

paths:

  • /logs/app2*.log

tags: "app2"

output.elasticsearch:

hosts: "172.19.12.3:9200"

protocol: "http"

username: "elastic"

password: "123456"

indices:

  • index: "app1-%{+yyyy-MM-dd}"

when.contains:

tags: "app1"

  • index: "app2-%{+yyyy-MM-dd}"

when.contains:

tags: "app2"

3:启动filebeat

bash 复制代码
./filebeat -e -c filebeat.yml
#后台运行
nohup  ./filebeat  -c  filebeat.yml  -e  >/dev/null  2>&1  &

问题与解决:

问题一:runtime/cgo: pthread_create failed: Operation not permitted

解决:

在filebeat.yml配置文件添加如下配置,重启filebeat

bash 复制代码
seccomp:
  default_action: allow 
  syscalls:
  - action: allow
    names:
    - rseq

参考文档:

Filebeat and GLIBC Errors on Ubuntu 22.04 - Beats - Discuss the Elastic Stack

问题二:错误日志分行显示

解决:添加正则表达式多行合并,以时间开头的放在一起

bash 复制代码
  multiline:  
    pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'  
    negate: true 
    match: after

pattern:正则表达式

negate:true 或 false;默认是false,匹配pattern的行合并到上一行;true,不匹配pattern的行合并到上一行

match:after 或 before,合并到上一行的末尾或开头

max_lines:合并最大行,默认500

timeout:一次合并事件的超时时间,默认5s,防止合并消耗太多时间甚至卡死

参考文档:(八)Filebeat收集日志方法_filebeat按日期收集-CSDN博客

问题三:Filebeat运行一段时间后自动关闭问题解决

问题解决:

3.1:在 /etc/systemd/system目录下创建一个filebeat.service文件,写入如下内容

bash 复制代码
[Unit]
Description=Filebeat is a lightweight shipper for metrics.
Documentation=https://www.elastic.co/products/beats/filebeat
Wants=network-online.target
After=network-online.target
 
[Service]
Environment="LOG_OPTS=-e"
Environment="CONFIG_OPTS=-c /usr/local/src/filebeat-7.9.3-linux-x86_64/filebeat.yml"
Environment="PATH_OPTS=-path.home /usr/local/src/filebeat-7.9.3-linux-x86_64/filebeat -path.config /usr/local/src/filebeat-7.9.3-linux-x86_64 -path.data /usr/local/src/filebeat-7.9.3-linux-x86_64/data -path.logs /usr/local/src/filebeat-7.9.3-linux-x86_64/logs"
ExecStart=/usr/local/src/filebeat-7.9.3-linux-x86_64/filebeat $LOG_OPTS $CONFIG_OPTS $PATH_OPTS
Restart=always
 
[Install]
WantedBy=multi-user.target

3.2:给文件授权限

bash 复制代码
chmod +x /etc/systemd/system/filebeat.service

3.3:启动并查看状态

启动:

systemctl daemon-reload

systemctl enable filebeat

systemctl start filebeat

查看状态

systemctl status filebeat

相关推荐
不像程序员的程序媛18 分钟前
linux常见文本操作命令
linux·运维·服务器
wangbing112541 分钟前
开发指南149-IotDB-常用命令
linux·运维·iotdb
Dovis(誓平步青云)41 分钟前
常用命令藏得太深?怎么做一个快捷命令坞
运维·前端·自动化·音视频·prometheus
看着博客敲代码1 小时前
WorkBuddy 接上 Kali MCP 做自动化渗透:信息收集到初步验证的落地记录
linux·人工智能·安全·网络安全·自动化
志栋智能1 小时前
运维超自动化的知识管理与传承
运维·自动化
蜗牛互联网2 小时前
Python Agent工具调用的白名单、参数校验与审批门禁
java·服务器·前端·人工智能·后端·python
jack186892 小时前
OpenClaw 数据采集与自动化应用场景指南
运维·自动化
小HANN2 小时前
华为云企业网站上云实战|从零搭建高可用WordPress全站架构(ECS+RDS+ELB+弹性伸缩+云监控闭环)
linux·运维·服务器·经验分享
奈落243 小时前
规则引擎还是大模型?AI 工作流与传统自动化的分工边界:确定性流程照旧,‘每次都不太一样‘的知识型工作才交给 AI
运维·人工智能·自动化·大模型·工作流·ai 办公
星恒随风3 小时前
Linux库的底层原理:ELF文件格式、静态链接、程序加载、虚拟地址空间与GOT/PLT详解
linux·运维·笔记·学习·状态模式