ELK教程4 - filebeat

目录

约定

下载安装

服务操作

读取配置

输出配置

 重启filebeat服务

项目配置

 配置logstash

重启logstash服务


约定

查看用户列表:
# cat /etc/passwd

查看用户组列表:
# cat /etc/group

# 创建 filebeat用户和组
groupadd filebeat
useradd filebeat -m -s /sbin/nologin -d /home/filebeat -g filebeat


# useradd 参数
-s /sbin/nologin 设置不能登陆
-d 设置用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 
-g 用户组 
-m 创建用户目录

下载安装

URL:Download Filebeat • Lightweight Log Analysis | Elastic

选择elasticsearch相同的版本

​#切换目录
cd  /home/filebeat

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.12.1-x86_64.rpm

yum -y localinstall filebeat-7.12.1-x86_64.rpm

rpm -qc filebeat

whereis filebeat

find / -name filebeat.yml
filebeat的配置文件默认为/etc/filebeat/filebeat.yml

服务操作

# 设置服务开机启动
systemctl enable filebeat.service

# 启动服务
systemctl start filebeat.service

#查询服务状态
systemctl status filebeat.service

#重启服务
systemctl restart filebeat.service

查看服务日志
journalctl -u filebeat.service

查看服务端口
netstat -nltp

日志配置

默认日志输出到了/var/log/messages里面,修改为/var/log/filebeat

vi /etc/filebeat/filebeat.yml

logging.level: info
logging.to_files: true
logging.files:
  path: /var/log/filebeat
  name: filebeat
  keepfiles: 7
  permissions: 0644

读取配置

  vi /etc/filebeat/filebeat.yml



# 修改为
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/messages
  
  # 变量,给elasticsearch使用
  fields:
    servername: 192.168.112.89
    servicename: xxx-service
  
  # 多行合并,用于错误日志堆栈,匹配日期开始的行,将后面的合并到这一行
  multiline.type: pattern
  multiline.pattern: '^[[:space:]]+(at|\.{3})\b|^Caused by:'
  multiline.negate: false
  multiline.match: after

输出配置

  vi /etc/filebeat/filebeat.yml



# 修改为logstash的端口,默认5044
output.logstash:
  hosts: ["localhost:5044"]

 重启filebeat服务

systemctl restart filebeat.service

项目配置

更新logback-spring.xml

<property name="FILE_LOG_PATTERN" value="[${PID:- }] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [TRACE_ID:%X{traceId}] [ORDER_NO:%X{orderNo}] %logger{64}#%method:%L => %msg%n"/>
<!-- 
[${PID:- }]:进程号
%d{yyyy-MM-dd HH:mm:ss.SSS}: 记录时间
[%thread]:线程名称
%-5level:日志等级
[TRACE_ID:%X{traceId}]:MdcKey.TRACE_ID 追踪号
[ORDER_NO:%X{orderNo}]:MdcKey.ORDER_NO 业务订单号(可选)
[自定义属性:%X{自定义属性}]:MdcKey,可以自定义其它业务属性,比如任务号、托盘号等
%logger{64}#%method:%L: 记录类、方法、行数
=> %msg%n:日志内容
-->

<!-- 日志文件的格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
	<pattern>${FILE_LOG_PATTERN}</pattern>
	<charset>utf-8</charset>
</encoder>

 配置logstash

  vi /etc/logstash/conf.d/log-system.conf



input{
  #配置输入源是filebeat
  beats {
    port => 5044
    client_inactivity_timeout => 3000
  }
  tcp {
    mode => "server"
    host => "127.0.0.1"
    port => 4560
    codec => json_lines
  }
}

# Adding the filters
filter {
  
 grok {
   match => ["message", "(?m)^\[%{INT:pid}\]%{SPACE}%{TIMESTAMP_ISO8601:createTime}%{SPACE}\[%{DATA:threadName}\]%{SPACE}%{LOGLEVEL:LEVEL}%{SPACE}\[TRACE_ID:(?<traceId>\w*)\]%{SPACE}\[ORDER_NO:(?<orderNo>\w*)\]%{SPACE}%{JAVACLASS:javaClass}#(?<methodName>[\w*]+):%{INT:linenumber}%{SPACE}=>%{SPACE}%{GREEDYDATA:msg}"]
 }


 mutate {
    replace => { "[host]" => "%{[host][name]}" }
    remove_field => ["agent","@version", "tags", "ecs", "input", "[log][offset]"]
  }
}

output{

    elasticsearch{
      hosts => ["localhost:9200"]
      #引用filebeat中的变量创建索引
      index => "%{[fields][servername]}-%{[fields][servicename]}-%{+yyyy.MM.dd}"
    }

}

重启logstash服务

systemctl restart logstash.service

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值