【问题标题】:Salt request timed out - Minion did not return盐请求超时 - Minion 没有返回
【发布时间】:2016-07-25 12:45:31
【问题描述】:

我在 AWS 6 t2.micro 和 1 t2.small 实例上运行 Ubuntu。所有这些实例都在同一个 VPC 中运行。

接受密钥后

Accepted Keys:
minion-bastion
minion-esc-kibana
minion-esc-logs-s3
minion-esn-1
minion-esn-2
minion-esn-3

,我运行salt '*' test.ping 命令。有时我没有得到任何奴才的回应:

minion-bastion:
    Minion did not return. [No response]
minion-esn-1:
    Minion did not return. [No response]
minion-esn-2:
    Minion did not return. [No response]
minion-esn-3:
    Minion did not return. [No response]
minion-esc-logs-s3:
    Minion did not return. [No response]
minion-esc-kibana:
    Minion did not return. [No response]

有时有些小兵会响应,而有些则不会。

minion-esc-kibana:
    True
minion-esc-logs-s3:
    True
minion-esn-3:
    True
minion-esn-2:
    True
minion-bastion:
    Minion did not return. [Not connected]
minion-esn-1:
    Minion did not return. [No response]

有时我会再次收到此消息:

Salt request timed out. The master is not responding. If this error persists after verifying the master is up, worker_threads may need to be increased.

每次我运行测试命令,我都会得到另一个响应。一个之前回答过的奴才,现在不回答了。等等。

ubuntu@ip-10-2-1-100 ~> sudo salt-run manage.status
down:
    - minion-esn-1
up:
    - minion-bastion
    - minion-esc-kibana
    - minion-esc-logs-s3
    - minion-esn-2
    - minion-esn-3
ubuntu@ip-10-2-1-100 ~> sudo service salt-master status
salt-master start/running, process 11390
ubuntu@ip-10-2-1-100 ~> sudo salt-run manage.status
down:
    - minion-esc-logs-s3
up:
    - minion-bastion
    - minion-esc-kibana
    - minion-esn-1
    - minion-esn-2
    - minion-esn-3
ubuntu@ip-10-2-1-100 ~>

在日志文件中没有相关条目。

我使用原始配置文件。我只是更改了从属 ID 和主 ID 或 IP。

对于在其上运行 salt master 的实例,我使用具有 2GB RAM 的 t2.small 实例。在我使用 1GB RAM 的 t2.micro 之前。还有更多的错误。

我不知道我能做什么。或者我做错了什么。有人有什么建议吗?

编辑:

6 个奴才中的 1 个一直处于关闭状态。哪一个,随每个manage.status 命令而变化。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 cloud salt-stack


    【解决方案1】:

    当你运行 test.ping 时,Master 告诉 Minions 运行命令/函数,并监听返回数据,并在收到数据时将其打印到屏幕上。如果它没有收到任何返回,它就没有任何东西可以显示给那个 Minion。

    有几个选项可以获取关于没有响应的 Minion 的信息。一种是在运行 salt 命令时使用详细 (-v) 选项,因为对于任何超时的 Minion,它将显示“Minion 未返回”。

    salt -v '*' pkg.install zsh
    

    另一种选择是使用 manage.down runner:

    salt-run manage.down
    

    此外,如果 Master 负载过重,CLI 可能会退出而不显示所有目标 Minion 的返回数据。然而,这并不意味着小黄人没有回来;这仅意味着 Salt CLI 在等待响应时超时。任务完成后,Minions 仍会将其返回数据发送回 Master。如果 CLI 输出中缺少任何预期的 Minion,jobs.list_jobs 运行器可用于显示已运行的作业的作业 ID,jobs.lookup_jid 运行器可用于获取该作业的返回数据。

    salt-run jobs.list_jobs
    salt-run jobs.lookup_jid 20130916125524463507
    

    如果您发现您经常在 CLI 上丢失 Minion 返回数据,而只能通过作业运行器找到它,那么这可能表明可能需要在主配置文件中增加 worker_threads 值。此外,使用 -t 选项运行 Salt CLI 命令将使 Salt 在 CLI 命令退出之前等待返回数据的时间更长。例如,下面的命令将等待 Minions 最多 60 秒返回:

    salt -t 60 '*' test.ping
    

    【讨论】:

    • 如您所见,您还会收到没有详细选项的“Minion 未返回”消息。不管怎样,有了salt-run manage.down,我得到了一个奴才。但是当我发送salt '*' test.ping 时,处于“关闭”状态的奴才正在响应,而另一个则没有。 master 不能承受重负载,因为只有 6 个 minions 和 test.ping 命令。而已。我尝试使用 -t 选项等待。但这并没有改变任何东西。
    • 我没有收到您的评论
    • 尝试重启所有的minions,看看效果如何?
    • 我重新启动了所有的奴才。所有的奴才都有联系。因为我时不时会收到每个 monion 的回复。但不是通过运行一个命令就可以全部完成。
    猜你喜欢
    • 2020-03-18
    • 2019-09-10
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    相关资源
    最近更新 更多