Easysearch、Elasticsearch 还是 Opensearch,是个问题

慕名而来,向前辈们请教k8s中的日志解决方案

Beats | 作者 reckless | 发布于2020年11月01日 | 阅读数:1894

各位老师,我现在在k8s上部署了es和kibana,收集打算用filebeat,但是filebeat一直Non-zero metrics in the last 30s这种错误,我可以确保我的日志文件是在更新的,她好像没法检测到这个变化,另外也没能在es中创建索引
filebeat的配置文件是这样的:
filebeat.inputs:
- type: log
paths:
- /opt/log/*.log
fields:
type: test
fields_under_root: true
output.elasticsearch:
hosts: ["10.110.231.223:9200"]
index: "filebeat-testindex-%{+yyyy.MM.dd}"
setup.template.name: "filebeattest"
setup.template.pattern: "filebeattest-*"

k8s资源清单
[root@citydo04 filebeat111]# cat test2.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
name: filebeattest1
labels:
app: filebeattest1
spec:
replicas: 1
selector:
matchLabels:
app: filebeattest1
template:
metadata:
name: filebeattest1
labels:
app: filebeattest1
spec:
imagePullSecrets:
- name: yybtest
containers:
- name: count
image: busybox
args:
- /bin/sh
- -c
- >
i=0;
while true;
do
echo "$i: $(date)" >> /var/log/1.log;
echo "$(date) INFO $i" >> /var/log/2.log;
i=$((i+1));
sleep 10;
done
# 容器内文件日志路径需要配置emptyDir。
volumeMounts:
- name: logdata
mountPath: /var/log

- name: filebeat-for-smc-gateway # 指定 Filebeat 容器的名称
image: docker.elastic.co/beats/filebeat:7.3.0 # filebeat 镜像下载地址,这里使用的官方镜像仓库
args: [ # 指定服务启动时的参数
"-c", "/opt/filebeat/filebeat.yml", # 注意这里,文件的路径和名称要和 Configmap 传入的路径和名称一致
"-e",
]
env:
- name: POD_IP # 这里是将 pod 的 IP 地址赋值给这个变量传入容器中,便于后面 Filebeat 在日志中添加自定义的字段信息
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: pod_name # 这里是将 pod 的名称赋值给这个变量,便于后面 Filebeat 在日志中添加自定义的字段信息
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
securityContext: # 这里用于设置 Pod 的安全上下文
runAsUser: 0 # 指定容器内的服务以 ID 为 0 的用户运行(也就是root)
volumeMounts:
- name: config # 指定 filebeat 配置文件要挂载的路径
mountPath: /opt/filebeat/
- name: logdata # 指定卷的名称,这个名称要和前面业务容器指定的日志路径的卷名称一致,这样后面才会挂载同一个 emptyDir
mountPath: /opt/logs/ # 指定要将业务的日志挂载在 filebeat 容器中的路径,这个路径要和 Configmap 中指定的日志路径一致
volumes:
- name: logdata # 为前面声明名称为 logdata 的卷挂载一个 emptyDir 卷(filebeat 和业务容器都会挂载这个卷)
emptyDir: {}
- name: config # 为前面声明名称为 config 的卷(filebeat 配置文件)挂载一个 configmap,并指定configmap 的名称
configMap:
name: filebeatconfigmap
items:
- key: filebeat.yml
path: filebeat.yml
已邀请:

要回复问题请先登录注册