原创

ELK部署-filebeat安装调试(二)

一、介绍

Filebeat 是使用 Golang 实现的轻量型日志采集器,也是 Elasticsearch stack 里面的一员。本质上是一个 agent ,可以安装在各个节点上,根据配置读取对应位置的日志,并上报到相应的地方去。

Filebeat 的可靠性很强,可以保证日志 At least once 的上报,同时也考虑了日志搜集中的各类问题,例如日志断点续读、文件名更改、日志 Truncated 等。

Filebeat 并不依赖于 ElasticSearch,可以单独存在。我们可以单独使用Filebeat进行日志的上报和搜集。filebeat 内置了常用的 Output 组件, 例如 kafka、ElasticSearch、redis 等,出于调试考虑,也可以输出到 console 和 file 。我们可以利用现有的 Output 组件,将日志进行上报。

二、安装

安装前建议先配置一个Redis服务器

安装版本:filebeat-7.16.2

下载filebeat

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.16.2-linux-x86_64.tar.gz

解压文件(个人习惯应用均安装在data的数据分区下)

tar xf filebeat-7.16.2-linux-x86_64.tar.gz -C /data/env/

修改配置文件

[root@bogon]# cd /data/env/filebeat-7.16.2-linux-x86_64/
[root@bogon filebeat-7.16.2-linux-x86_64]# vim filebeat.yml
filebeat.inputs:
- type: log
  enable: true
  paths:
    - /data/logs/nginx/*.access.log
  fields:
    list: FliebeatTest-filebeat-nginx-access
  tags: ["FliebeatTest-filebeat-nginx-access"]
  scan_frequency: 10s
  tail_files: true

output.redis:
  hosts: ["192.168.30.132:6379"]
  key: "FliebeatTest-nginx-log"
  db: 0

解释:

  • filebeat.inputs:采集数据源
  • - type:log    # 数据类型,log日志类型
  • paths           # 日志存放目录  我的Nginx日志文件存放在/data/logs/nginx目录下面
  • fields           # 起个名
  • tags             # 标签
  • scan_frequency   #  扫描频率
  • output.redis  # 输入到redis
  • hosts             # redis地址和端口
  • key               # 存入redis的key
  • db                 #存入哪个库

配置软链

ln -s /data/env/filebeat-7.16.2-linux-x86_64 /data/soft/filebeat

三、配置启动文件

vim /etc/init.d/filebeat

# 启动文件内容如下:
#!/bin/sh
#
# description: Auto-starts filebeat

# Source function library.
. /etc/rc.d/init.d/functions
# 启动文件
exec="/data/soft/filebeat/filebeat"# 指定配置文件
FILEBEAT_CONFIG="/data/soft/filebeat/filebeat.yml"
FILEBEAT_DATA="/data/soft/filebeat/data" FILEBEAT_LOG="/data/soft/filebeat/logs" start() { [ -f $FILEBEAT_CONFIG ] || exit 6 [ -x $exec ] || exit 5 echo -n $"Starting filebeat: " if $exec -c $FILEBEAT_CONFIG -path.data $FILEBEAT_DATA -path.logs $FILEBEAT_LOG & then echo -e "OK" else echo -e "failed" fi } stop() { PID=$(ps -ef | grep -v grep | grep filebeat.yml | awk -F" " '{print $2}') if [ "$PID" != "" ]; then echo "kill filebeat process" kill -9 "$PID" else echo "filebeat is stopped" fi } restart() { stop start } status() { PID=$(ps -ef | grep -v grep | grep filebeat.yml | awk -F" " '{print $2}') #echo "$PID" if [ "$PID" != "" ]; then echo "filebeat is running,pid is $PID"

启动

/etc/init.d/filebeat start

# 查看是否正常启动

[root@bogon filebeat-7.16.2-linux-x86_64]# ps -aux | grep filebeat
root      89547  0.0  5.8 1027092 109336 ?      Sl   106   0:48 /data/soft/filebeat/filebeat -c /data/soft/filebeat/filebeat.yml -path.data /data/soft/filebeat/data -path.logs /data/soft/filebeat/logs
root     120922  0.0  0.0 112824   988 pts/0    S+   13:43   0:00 grep --color=auto filebeat

# 有问题查日志

tail -f /data/env/filebeat-7.16.2-linux-x86_64/logs/filebeat
正文到此结束
评论

登录后才能发表评论 登录/注册

0评论
  • 还没有评论,快来抢沙发吧!