快速掌握源码部署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> 
相关推荐
戏神18 天前
ELK+Filebeat+Kafka+Zookeeper安装部署
nginx·elk·zookeeper·kafka·filebeat·集群部署·分布式系统
运维小文3 个月前
filestream安装使用全套+filebeat的模块用法
linux·elk·日志·kibana·efk·filebeat
运维&陈同学3 个月前
【Beats02】企业级日志分析系统ELK之Filebeat 收集日志及案例一
大数据·linux·运维·elk·elasticsearch·devops·filebeat
CNAHYZ5 个月前
Elastic Stack - FileBeat 入门浅体验
java·大数据·elasticsearch·es·filebeat
小韩加油呀5 个月前
filebeat收集日志直接输出到elasticsearch
elasticsearch·filebeat
极客先躯5 个月前
分布式日志有哪些?
kafka·fluentd·logstash·filebeat·1024程序员节·分布式日志·elk stack
萧曵 丶6 个月前
docker 部署 filebeat 采集日志导入到elasticsearch 设置pipeline
elasticsearch·docker·jenkins·filebeat
闲人编程6 个月前
Python实现日志采集功能
开发语言·python·fluentd·filebeat·日志采集
龙门吹雪7 个月前
Docker 安装FileBeat、Elasticsearch及Kibana详细步骤
elasticsearch·docker·kibana·filebeat·日志监控平台