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 1月06 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评论