AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 885459
Accepted
nagylzs
nagylzs
Asked: 2017-11-28 23:28:05 +0800 CST2017-11-28 23:28:05 +0800 CST 2017-11-28 23:28:05 +0800 CST

为什么我的主机在 zabbix 服务器上显示为不可访问?

  • 772

我在两台不同的计算机上有一个 zabbix 服务器和一个代理。代理在活动模式下运行,例如我在配置文件中有这个:

StartAgents=0
ServerActive=my.zabbix.server.com
Hostname=my.zabbix.agent.com

zabbix server 可以从带有代理的机器上访问,例如:

telnet my.zabbix.server.com 10051
Trying 111.111.111.111...
Connected to my.zabbix.server.com.
Escape character is '^]'.
Connection closed by foreign host.

而且服务器开启了主机自动注册,我刚启动的时候代理已经成功注册了主机。所以连接必须是活动的。这是我在启动它时在代理日志中看到的内容:

83074:20171128:082440.324 Starting Zabbix Agent [my.zabbix.agent.com]. Zabbix 3.4.1 (revision 71734).
83074:20171128:082440.324 **** Enabled features ****
83074:20171128:082440.324 IPv6 support:          YES
83074:20171128:082440.324 TLS support:           YES
83074:20171128:082440.324 **************************
83074:20171128:082440.324 using configuration file: /usr/local/etc/zabbix34/zabbix_agentd.conf
83074:20171128:082440.324 agent #0 started [main process]
83076:20171128:082440.325 agent #1 started [collector]
83077:20171128:082440.326 agent #2 started [active checks #1]

换句话说,代理可以连接到服务器,它甚至可以识别它的版本。代理日志中没有其他任何事情发生。

在服务器上,它仍然说主机不可达!

可能是什么问题呢?

更新:在前端,我看到这条消息:

ZBX红色错误提示

我不确定它为什么要连接到 10050?它用于被动代理。我的代理应该是活跃的。

UPDATE2:如果我从 zabbix 服务器中删除主机,然后重新启动代理,则会发生以下情况:

主机再次在服务器上自动注册。代理日志:

14551:20171128:193954.483 Starting Zabbix Agent [my.zabbix.server.com]. Zabbix 3.4.1 (revision 71734).
14551:20171128:193954.484 **** Enabled features ****
14551:20171128:193954.484 IPv6 support:          YES
14551:20171128:193954.484 TLS support:           YES
14551:20171128:193954.484 **************************
14551:20171128:193954.484 using configuration file: /usr/local/etc/zabbix34/zabbix_agentd.conf
14551:20171128:193954.484 agent #0 started [main process]
14553:20171128:193954.485 agent #1 started [collector]
14554:20171128:193954.485 agent #2 started [active checks #1]
14554:20171128:193954.614 no active checks on server [my.zabbix.server.com:10051]: host [my.zabbix.agent.com] not found

在哪里:

  • my.zabbix.server.com 是服务器的 FQDN
  • my.zabbix.agent.com 是代理的 FQDN,也是代理配置中的 HostName 参数。

看起来,代理成功注册了主机,但由于某种原因,服务器试图以被动模式从代理获取信息。尽管事实上,代理被配置为活动模式。

更新 3:虽然代理正在发送数据,但主机列表仍然显示一个问题:

在此处输入图像描述

可用性/ZBX 有一个危险信号,并显示一条消息“从代理获取值失败:无法连接到 [[ip_address_here]:1050]:[4] 中断系统调用”。我已经检查了这些主机的每一个项目和每一个发现,它们都有 type="Zabbix Agent Active"。所以我不明白为什么服务器试图以被动模式连接它们???这不会导致真正的“问题”(例如,生成动作并从 zabbix 服务器发出通知的东西),但在屏幕上看到红旗是非常令人不安的。

在这个问题完全解决之前,我什至不会接受我自己的答案。

更新4:在更改了所有连接到我的主机的所有模板的所有项目类型、发现类型和项目原型的类型,以及所有链接到那里的模板之后,ZBX 危险信号终于消失了. 我相信我是一个经验丰富的软件用户,但很难理解发生了什么,并更改所有参数以使其工作。

zabbix
  • 3 3 个回答
  • 10021 Views

3 个回答

  • Voted
  1. Richlv
    2017-11-28T23:42:28+08:002017-11-28T23:42:28+08:00

    要使主动检查起作用,代理主机名必须与 Zabbix 服务器中的主机名匹配。“代理主机名”不一定是系统主机名 - 它取决于配置参数“主机名”和“主机名项”。Zabbix 中的主机名不是 DNS 或 IP 地址 - 它是主机属性中“主机”字段的内容。

    当代理启动时,它会打印出它发送到服务器的主机名。在您的示例中:Starting Zabbix Agent [my.zabbix.server.com]- 也就是说,代理将自己向服务器标识为my.zabbix.server.com. 使该值与正确的主机名匹配(注意区分大小写),主动检查将开始工作。请注意,如果两个或多个代理正在发送数据并识别为它,则其他主机可能具有不正确的值。

    请注意,代理日志中打印的版本是代理版本,而不是服务器版本 - 代理无法确定服务器版本。

    • 1
  2. Best Answer
    nagylzs
    2017-11-29T13:36:47+08:002017-11-29T13:36:47+08:00

    简短的回答:问题是所有项目都有 Type="Zabbix Agent" 而不是 Type="Zabbix Agent Active"。

    长答案:主机要么是主动代理,要么是被动代理。(好吧,也许如果您尝试在同一台机器上启动两个代理,那么您可以在一台主机上同时执行这两个代理,但这似乎毫无意义。)合乎逻辑,对吗?

    所以实际上,主动或被动是宿主的属性,而不是物品。尽管如此,数据收集的模式(例如被动或主动)是绑定到项目,而不是主机。我认为这是 zabbix 的设计缺陷。这是非常反直觉的。他们唯一能克服这个问题的方法是:

    • 为您要使用的所有模板创建一个完整克隆。制作完整的克隆而不是简单的克隆非常重要。例如,创建“Linux OS”的完整克隆和“FreeBSD OS”模板的完整克隆,并将其所有项目类型从“Zabbix Agent”批量更新为“Zabbix Agent (Active)”。还需要将所有发现规则类型从“Zabbix Agent”更新为“Zabbix Agent (active)”。您还需要检查发现规则项目,点击它们的“项目原型”,并将所有项目原型的类型从“Zabbix Agent”更改为“Zabbix Agent (Active)”
    • 还需要确保没有链接(父)模板。如果有,您需要递归地创建它们的完整克隆,然后取消链接 + 清除旧父级,并链接新父级。例如,如果您批量更新“Linux OS”中的所有项目类型,那么它不会更新链接的“Zabbix Agent”模板中使用的所谓“模板项目”。所以你需要将“Zabbix Agents”完全克隆到“Zabbix Agents Active”中,将所有项目类型更新为active,然后重新链接(例如从“Linux OS”取消链接+清除“Zabbix Agents”模板,然后链接新创建的“ Zabbix 代理活动")
    • 这是递归的:您需要重复所有这些步骤,直到所有项目和所有模板项目都包含“主动”模式而不是“被动模式”

    您需要克隆系统中几乎所有的模板。对于独立于项目类型的单个项目,您不能有一个触发器,因为没有这样的事情。如果你想在被动和主动代理混合的环境中改变某些东西,那么你必须做两次。

    最后,当您添加主机时,您需要分配主动或被动模板版本,具体取决于您要用于该特定主机的模式。

    所有这一切都是因为主动/被动模式不能是主机的属性。它必须是项目的属性。更糟糕的是:它也是发现规则的属性,是发现规则的原型(并且原型项目不能大规模更新,你必须一个一个,手工)。说真的,像“cpu.load”这样的项目与数据的收集方式完全无关。我的意思是来吧,你可以改变主意,从主动模式切换到被动模式,或者返回。这不应该强迫您删除所有旧项目,创建新项目。但是,如果您决定这样做,您将丢失所有历史记录,因为您不仅在更改项目,而且在替换它们。这真的很烦人!

    我希望他们能在即将到来的 4.0 版本中解决这个问题。

    • 1
  3. chibane
    2018-03-28T01:50:14+08:002018-03-28T01:50:14+08:00

    改变/etc/zabbix/zabbix_agentd.conf的值,把zabbix的ip地址

    • -2

相关问题

  • 是否可以使用 Zabbix 监控进程?

  • zabbix 的 LAMP 监控

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve