Salt请求超时 - Minion没有返回

时间:2016-07-25 12:45:32

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

我在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 ~>

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

我使用原始配置文件。我刚刚更改了minion ID和主ID或IP。

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

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

修改

6个爪牙中有1个被击倒了。哪一个随每个manage.status命令而改变。

1 个答案:

答案 0 :(得分:0)

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

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

salt -v '*' pkg.install zsh

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

salt-run manage.down

此外,如果Master处于高负载状态,CLI可能会退出而不显示所有目标Minions的返回数据。但是,这并不意味着仆从没有回来;这只意味着Salt CLI等待响应超时。一旦作业完成,Minions仍会将其返回数据发送回Master。如果CLI输出中缺少任何预期的Minions,则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命令退出之前等待更长时间以返回数据。例如,下面的命令将等待最多60秒,以便Minions返回:

salt -t 60 '*' test.ping
相关问题