Zabbix 服务器端口 10051 在防火墙中被阻止,只能使用 80 端口

Zabbix 服务器端口 10051 在防火墙中被阻止,只能使用 80 端口

我已经安装了 zabbix 服务器Ubuntu 18.04在 AWS 云中并设置域名和 SSL。

AWS 服务器有一个nginxWeb 服务器运行于端口 80 和 443阿帕奇2配置在7526。出于安全原因,AWS 安全组中仅启用了端口 80 和 443。因此,外部世界也无法访问 apache2。

我已经在 apache2 中配置了 zabbix 服务器,并且有一个nginx 代理从外部世界连接到 zabbix 服务器。Zabbix 前端在 nginx 中使用此代理后运行良好。

我的系统位于不同的地方,因此决定通过 Active check 将其连接到 zabbix 服务器。在 Active check 中,zabbix 代理连接到 zabbix 服务器通过10051端口默认情况下。我无法打开新端口由于安全原因,在 AWS 防火墙中。

如何连接 zabbix 服务器和 zabbix 代理进行主动检查?

笔记 :为了测试,我在 AWS 防火墙中启用了 10051 端口,并且 zabbix 代理可以连接到服务器

已编辑

请参阅我的zabbix_agentd配置文件包含以下配置的文件服务器活动范围。

在此处输入图片描述

正如你现在所看到的app.myoffice.com现已启用,zabbix 尝试连接到默认10051端口因此无法连接到服务器,因为防火墙中只有端口 80 和 443 处于活动状态

我可以给serverActive=https://example.mydomain.com/zabbixserver/app像这样吗?如果是的话那怎么样?

答案1

zabbix server和zabbix agent都不支持监听低于1024的端口。

官方文档服务器代理人明确说明支持的端口范围。

服务器:

范围 强制的 范围 默认 描述
监听端口 1024-32767 10051 监听捕获器的端口。

代理人:

范围 强制的 范围 默认 描述
监听端口 1024-32767 10050 代理将在此端口上监听来自服务器的连接。

还,低于 1024 的端口是特权端口,因此不允许普通用户在其上运行服务器。
此外,端口 80 和 443 分别保留用于 HTTP 和 HTTPS。Zabbix 代理使用自己的基于 JSON 的协议[来源]。虽然技术上可行,但在同一个端口上监听两种不同的协议会导致很多问题。


最好的,也可能是唯一的解决方案是在端口 10050 和 10051 上开放流量。

答案2

我用哈普罗西公开我的服务并生成服务特定的 TLS 证书(使用 SNI),我喜欢它,因为我只需连接到https://someservice.example.com/并且不再关心我的任何服务实际使用哪些端口。

对于 zabbix,我认为以下内容应该是您需要配置的最低限度:

frontend hafrontend
    bind *:443 ssl crt /etc/haproxy/certs_and_keys
    mode http
    default_backend zabbix_backend
    use_backend zabbix_backend if { ssl_fc_sni zabbix.example.com }

backend zabbix_backend
    mode http
    server zabbix_server 127.0.0.1:10051

尽管如果您需要使用类似的 urlhttps://example.mydomain.com/zabbixserver/app而不仅仅是https://example.mydomain.com/(以上是我所了解的有关配置 haproxy 的全部内容,也是我所需要的全部内容),可能还需要更多的魔法。


通过 Makefile 生成的证书(文件位置可能是 Centos 特定的):


# Root CA

example.com.key:
    openssl genrsa -out $@ 4096
    openssl rsa -in $@ -noout -text

example.com.crt: example.com.key
    openssl req -new -x509 -days 7500 -key $^ -out $@ -subj '/C=XX/L=Example/CN=example.com'

/etc/pki/ca-trust/source/anchors/example.com.pem: example.com.crt example.com.key
    cat $^ > $@
    update-ca-trust

/etc/haproxy/certs_and_keys/example.com.pem: example.com.crt example.com.key
    cat $^ > $@


# Host cert

zabbix.example.com.key:
    openssl genrsa -out $@ 4096
    openssl rsa -in $@ -noout -text

zabbix.example.com.csr: zabbix.example.com.key
    bash -c "openssl req -new -key $^ -out $@ -extensions san -config <(echo '[req]'; echo 'distinguished_name=req'; echo '[san]'; echo 'subjectAltName=DNS:zabbix.example.com') -subj '/C=XX/L=Example/CN=zabbix.example.com'"
    openssl req -in $@ -noout -text

zabbix.example.com.crt: zabbix.example.com.csr
    openssl x509 -days 365 -req -in $^ -out $@ -CA example.com.crt -CAkey example.com.key -CAcreateserial

/etc/haproxy/certs_and_keys/zabbix.example.com.pem: zabbix.example.com.crt zabbix.example.com.key
    cat $^ > $@

相关内容