[英]Zabbix 6.0 Agent doesn't collect metrics in Kubernetes and can't talk with server
在过去的几天里,我一直在 kubernetes 中设置 Zabbix Agent,但我一直坚持我认为最基本的事情。 我已经创建了一个全新的命名空间,在那里设置了 MySQL 并对其进行了配置,具有 zabbixUser、pass 和所有内容,我已经从这个Helm Chart 设置了 Zabbix Server。
这是它的值文件
zabbixserver:
image:
#repository: zabbix/zabbix-server-pgsql
repository: "zabbix/zabbix-server-mysql" #https://hub.docker.com/r/zabbix/zabbix-server-pgsql
tag: "ubuntu-6.0.3"
DB_SERVER_HOST: "zabbix-mysql"
DB_SERVER_PORT: "3306"
# -- Extra environment variables. A list of additional environment variables. See example: https://github.com/cetic/helm-zabbix/blob/master/docs/example/kind/values.yaml
# taken from mysql config
extraEnv:
- name: "MYSQL_USER"
value: "zabbixUser"
- name: "MYSQL_PASSWORD"
value: "zabbixPass"
- name: "MYSQL_ROOT_PASSWORD"
value: "dyEMnUK69d"
- name: "MYSQL_DATABASE"
value: "zabbix"
postgresql:
enabled: false
zabbixproxy:
enabled: false
# # The variable is used to specify debug level, from 0 to 5
# ZBX_DEBUGLEVEL: 3
# ZBX_PROXYMODE: 1
# ZBX_SERVER_HOST: 10.190.8.122
# Installs zabbix agent next on the same pod as server
zabbixagent:
enabled: true
env:
- name: ZBX_DEBUGLEVEL
value: 4
zabbixweb:
image:
repository: "zabbix/zabbix-web-nginx-mysql" #https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql
#repository: zabbix/zabbix-web-nginx-psql #https://hub.docker.com/r/zabbix/zabbix-web-nginx-pgsql
tag: "ubuntu-6.0.3"
# kubectl get services
ZBX_SERVER_HOST: zabbix-server-zabbix-server
DB_SERVER_HOST: zabbix-mysql
DB_SERVER_PORT: 3306
extraEnv:
- name: "MYSQL_USER"
value: "zabbixUser"
- name: "MYSQL_PASSWORD"
value: "zabbixPass"
- name: "MYSQL_ROOT_PASSWORD"
value: "dyEMnUK69d"
- name: "MYSQL_DATABASE"
value: "zabbix"
ingress:
enabled: true
hosts:
- host: better-zabbix.genesis
paths:
- path: /
pathType: Prefix
ingressClassName: nginx-internal
注意:它托管在我公司的内部域中,MySQL 也用于测试目的,因此没有产品凭据。
我也配置了 DNS,所以一切如您所见。
现在我想从这个官方 helm chart 设置 Zabbix agent。
这里还有一个有用的链接,显示准备好的模板以帮助从 GKE 集群获取指标——但是,请注意,当您从 helm chart 设置 Zabbix 服务器时,他会内置它们。 所以我想如果你有一个旧版本并且在 VM 上,它会很有用。
这是代理的values.yaml
zabbixAgent:
image:
repository: zabbix/zabbix-agent
tag: alpine-6.0.3
env:
- name: ZBX_SERVER_HOST
value: 10.190.40.58 # after zabbix server was created, this is the IP of his pod
#value: 127.0.0.1
#value: "better-zabbix.genesis"
zabbixProxy:
enabled: false
rbac:
create: false
serviceAccount:
create: false
现在我们来解决我遇到的问题
Every 2.0s: kubectl get pods -o wide colgate.local: Sat Apr 16 15:54:05 2022
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
potato 1/1 Running 0 5h26m 10.190.4.102 gke-tools-single-nat-35d661ab-sf1c <none> <none>
zabbix-agent-7d4xv 1/1 Running 0 3h49m 10.222.0.59 gke-tools-single-nat-d4ec251a-hp7k <none> <none>
zabbix-agent-856lm 1/1 Running 0 3h46m 10.222.0.39 gke-tools-main-tools-bc42e123-6fpq <none> <none>
zabbix-agent-c5xtp 1/1 Running 0 3h47m 10.222.0.9 gke-tools-main-tools-bc42e123-ycgx <none> <none>
zabbix-agent-dn78k 1/1 Running 0 3h49m 10.222.0.98 gke-tools-single-nat-d4ec251a-i0a1 <none> <none>
zabbix-agent-fbpzn 1/1 Running 0 3h49m 10.222.0.54 gke-tools-single-nat-d4ec251a-kxwn <none> <none>
zabbix-agent-gsvgt 1/1 Running 0 3h47m 10.222.0.51 gke-tools-main-tools-bc42e123-oc1i <none> <none>
zabbix-agent-h4bkn 1/1 Running 0 3h49m 10.222.0.50 gke-tools-single-nat-2dc0d382-1uv1 <none> <none>
zabbix-agent-kube-state-metrics-5968c76968-6jb98 1/1 Running 0 3h59m 10.190.1.48 gke-tools-single-nat-d4ec251a-i0a1 <none> <none>
zabbix-agent-pfs5s 1/1 Running 0 3h47m 10.222.0.55 gke-tools-single-nat-d4ec251a-4o43 <none> <none>
zabbix-agent-plk7s 1/1 Running 0 3h46m 10.222.0.49 gke-tools-single-nat-35d661ab-xxsw <none> <none>
zabbix-agent-qm5c5 1/1 Running 0 3h48m 10.222.0.41 gke-tools-single-nat-35d661ab-m4ct <none> <none>
zabbix-agent-wk59p 1/1 Running 0 3h48m 10.222.0.5 gke-tools-single-nat-2dc0d382-zp2s <none> <none>
zabbix-agent-wl97k 1/1 Running 0 3h48m 10.222.0.88 gke-tools-main-tools-89255868-mxfl <none> <none>
zabbix-agent-z6vxh 1/1 Running 0 3h49m 10.222.0.46 gke-tools-single-nat-35d661ab-sf1c <none> <none>
zabbix-mysql-0 1/1 Running 0 3h59m 10.190.1.49 gke-tools-single-nat-d4ec251a-i0a1 <none> <none>
zabbix-mysql-client 1/1 Running 0 5h7m 10.190.0.215 gke-tools-single-nat-2dc0d382-zp2s <none> <none>
zabbix-server-zabbix-server-0 2/2 Running 0 3h59m 10.190.2.99 gke-tools-single-nat-2dc0d382-1uv1 <none> <none>
zabbix-server-zabbix-web-665c9b767-ssdt6 1/1 Running 0 3h59m 10.190.4.113 gke-tools-single-nat-35d661ab-sf1c <none> <none>
来自 zabbix-agent pod 的日志是这样的
3438519:20220416:135248.449 failed to accept an incoming connection: connection from "10.222.0.54" rejected, allowed hosts: "10.190.40.58"
那是什么意思呢? 在 zabbix-agent values.yaml
我写到 zabbix server host 是
- name: ZBX_SERVER_HOST
value: 10.190.40.58
但是 zabbix-agent 字面上说它自己的 IP 不能被列入白名单? 这是什么意思呢?
另外,这些是来自 zabbix 服务器的日志
208:20220416:135600.044 [ Kubernetes discovery ] ERROR: Incorrect JSON. Check debug log for more information.
208:20220416:135600.045 [ Kubernetes discovery ] ERROR: Incorrect JSON. Check debug log for more information.
226:20220416:135600.045 [ Kubernetes ] ERROR: Error: cannot get URL: Couldn't connect to server.
208:20220416:135600.047 [ Kubernetes discovery ] ERROR: Incorrect JSON. Check debug log for more information.
208:20220416:135600.048 [ Kubernetes discovery ] ERROR: Incorrect JSON. Check debug log for more information.
226:20220416:135600.049 [ Kubernetes ] ERROR: Error: cannot get URL: Couldn't connect to server.
208:20220416:135600.051 [ Kubernetes discovery ] ERROR: Incorrect JSON. Check debug log for more information.
208:20220416:135600.052 [ Kubernetes discovery ] ERROR: Incorrect JSON. Check debug log for more information.
正如在页面底部的 Zabbix Setup 中的说明中所写的那样。 另外,我更不知道的是这里的 Zabbix 配置部分 所有这些 {$KUBE.API.ENDPOINT.URL}
它们应该指向什么?
你们会给我任何提示让我开心,比如为什么看不到节点,为什么代理显然不能与服务器对话,以及我是否应该更改{$KUBE.API.ENDPOINT.URL}
或保留它具有默认值。
{$KUBE.API.ENDPOINT.URL}
这应该指向https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT
。
我从正在运行的 pod 中获取值。 但是,我没有尝试在 Zabbix 中作为 env 值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.