快速掌握源码部署Filebeat

文章目录

  • [1. 裸金属安装](#1. 裸金属安装)
    • [1.1 压缩包方式安装](#1.1 压缩包方式安装)
    • [1.2 yum方式安装](#1.2 yum方式安装)
  • [2. docker安装](#2. docker安装)
  • [3. K8s安装](#3. K8s安装)

项目使用了Filebeat,现在需要运行在ARM架构的服务器上,但是Filebeat官方没有提供,需要自己编译一份
filebeat等组件的源码地址 https://github.com/elastic/beats ,可以选择需要的版本,然后下载ZIP包来使用,也可以按照下面步骤直接git下载
编译filebeat需要go语言环境,先安装go环境

#创建工作目录
mkdir -p /opt/gowork
 
#安装go和git  命令
yum install -y go git
 
#设置环境变量
echo "export GOROOT=/usr/lib/golang" >> /etc/profile
echo "export GOBIN=\$GOROOT/bin" >> /etc/profile
echo "export GOPATH=/opt/gowork" >> /etc/profile
echo "export PATH=\$PATH:\$GOROOT:\$GOBIN:\$GOPATH" >> /etc/profile
 
#刷新环境变量
. /etc/profile
 
#测试go是否成功,查看env中GOPATH是否生效
go version
go env

mkdir -p ${GOPATH}/src/github.com/elastic
cd ${GOPATH}/src/github.com/elastic
# 我需要的6.8版本,根据实际情况确定分支
git clone -b 6.8 https://github.com/elastic/beats.git

下载完之后进入filebeat目录,如果编译其他组件就进其他目录,然后执行编译命令

cd beats/filebeatmake

我们启动一下试试,正常使用会根据需要修改filebeat.yml,我们现在只试试能不能正常启动,简单改了,将log的enabled改成true,其他都默认了

K8s部署filebeat

1. 裸金属安装

注:以linux系统为例,filebeat版本为7.17

1.1 压缩包方式安装

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.5-linux-x86_64.tar.gz
tar xzvf filebeat-7.17.5-linux-x86_64.tar.gz -C /root/
mv /root/filebeat-7.17.5 /usr/local/filebeat

启动
/usr/local/filebeat/bin/filebeat -e -c filebeat.yml

1.2 yum方式安装

导入KEY
sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
创建elastic.repo文件
cd /etc/yum.repo.d/

vim elastic.repo
[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

安装
sudo yum install filebeat -y

启动
systemctl start filebeat

2. docker安装

拉取filebeat镜像
docker pull docker.elastic.co/beats/filebeat:7.13.3

下载filebeat配置文件
curl -L -O https://raw.githubusercontent.com/elastic/beats/7.13/deploy/docker/filebeat.docker.yml

启动容器
docker run  docker.elastic.co/beats/filebeat:7.13.3 \ 
setup -E setup.kibana.host=x.x.x.x:5601 \ 
-E output.elasticsearch.hosts=["x.x.x.x:9200"]
说明:执行setup命令,安装filebeat的index

docker run -d --name=filebeat \ 
--user=root \ 
-v /filebeat/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro \ 
-v /var/run/docker.sock:/var/run/docker.sock:ro \ 
-v /data/log:/logs/tomcat \ 
docker.elastic.co/beats/filebeat:7.13.3 filebeat -e -strict.perms=false

说明:一定要映射日志文件路径,区分宿主机日志路径(/data/log)和容器日志路径(/logs/tomcat)

3. K8s安装

下载manifest file
curl -L -O https://raw.githubusercontent.com/elastic/beats/7.17/deploy/kubernetes/filebeat-kubernetes.yaml

修改文件
Filebeat的输出为es,将以下es地址修改为你的es集群地址

- name: ELASTICSEARCH_HOST
  value: elasticsearch
- name: ELASTICSEARCH_PORT
  value: "9200"
- name: ELASTICSEARCH_USERNAME
  value: elastic
- name: ELASTICSEARCH_PASSWORD
  value: changeme

以root用户运行容器
  securityContext:
    runAsUser: 0
    privileged: true

Filebeat账户授权
oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:filebeat

部署
kubectl create -f filebeat-kubernetes.yaml

查看状态
$ kubectl --namespace=kube-system get ds/filebeat

NAME       DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE-SELECTOR   AGE
filebeat   32        32        0         32           0           <none> 
相关推荐
运维小文10 天前
filestream安装使用全套+filebeat的模块用法
linux·elk·日志·kibana·efk·filebeat
运维&陈同学25 天前
【Beats02】企业级日志分析系统ELK之Filebeat 收集日志及案例一
大数据·linux·运维·elk·elasticsearch·devops·filebeat
CNAHYZ3 个月前
Elastic Stack - FileBeat 入门浅体验
java·大数据·elasticsearch·es·filebeat
小韩加油呀3 个月前
filebeat收集日志直接输出到elasticsearch
elasticsearch·filebeat
极客先躯3 个月前
分布式日志有哪些?
kafka·fluentd·logstash·filebeat·1024程序员节·分布式日志·elk stack
萧曵 丶3 个月前
docker 部署 filebeat 采集日志导入到elasticsearch 设置pipeline
elasticsearch·docker·jenkins·filebeat
闲人编程4 个月前
Python实现日志采集功能
开发语言·python·fluentd·filebeat·日志采集
龙门吹雪5 个月前
Docker 安装FileBeat、Elasticsearch及Kibana详细步骤
elasticsearch·docker·kibana·filebeat·日志监控平台
Re_Virtual6 个月前
filebeat + logstash使用笔记
logstash·filebeat