文章目录
- 1. 裸金属安装
- 1.1 压缩包方式安装
- 1.2 yum方式安装
- 2. docker安装
- 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>