监控SaltStack

时间:2014-11-04 23:24:45

标签: salt-stack

除了halite之外,还有什么可以监控SaltStack的安装吗?我安装了它,但它并不是我们想要的。

如果我们能够拥有一个网络gui甚至每日电子邮件,显示所有小兵的状态,那将是很好的。我对脚本非常方便,但我不知道脚本是什么。

有人有什么想法吗?

7 个答案:

答案 0 :(得分:6)

如果您通过监控表示运营盐,您可以尝试以下方法之一:

这些GUI不仅可以让你了解小兵是否还活着。它们将允许您以与盐客户端相同的方式对它们进行操作。

如果您通过监控表示只是盐主人和盐人员是否正常运行,您可以使用通用监控解决方案,如:

事实上,这些工具可以监控他们所知道的主机上的不同服务主机可以是具有 ip 地址的任何计算机,服务可以是可以查询的任何资源通过底层操作系统。 主机的示例可以是服务器,路由器,打印机...... 服务的示例可以是内存,磁盘,进程,......

答案 1 :(得分:2)

不是绝对的答案,但我们正在开发saltpad,这是halite的替代和改进。它的一个功能是显示所有爪牙的状态。您可以尝试一下:Saltpad Project page on Github

答案 2 :(得分:1)

你可以查看consul虽然它不是专门针对SaltStack的,我用它来监视salt-master和salt-minion正在他们应该的主机上运行。

另一个简单的测试是运行类似的东西:

salt --output=json '*' test.ping 

并在不同的运行之间进行比较。这不是一个惊人的监控,但至少表明你的仆从已经和你的主人沟通。

答案 3 :(得分:1)

另一种选择可能是使用salt.runners.manage函数附带的status函数。

为了打印所有已知盐爪的状态,你可以在你的盐主人身上运行:

Sub deleteRows()
Dim curr As Range
Dim ws As Worksheet
Set ws = Workbooks("ExtractedColumns").Sheets("practice")
For Each curr In
    Workbooks("ExtractedColumns").Sheets("practice").Range("G:G")
     If curr.Value = " - " Then
        EntireRow.Delete
     End If
Next
End Sub

答案 4 :(得分:0)

我必须自己写。据我所知,没有任何东西可以做到这一点,并且halite不能满足我的需要。

如果您了解Python,那么编写一个监视salt的应用程序会相当容易。例如,我的应用程序有一个线程,该线程不时地从salt密钥刷新主机列表,并且有几个线程针对该列表运行各种命令以验证它们已启动。监视器线程在运行后为每个主机更新了一个带有时间戳和成功/失败的字典。它有一个被黑客攻击的HTML显示颜色编码,以反映每个节点的状态。我花了大约半天的时间来写它。

如果你不想使用Python,你可以痛苦地使用bash中的命令行工具做类似于这种低效,快速,未经测试的黑客攻击。

minion_list=$(salt-key --out=txt|grep '^minions_pre:.*'|tr ',' ' ') # You'
for minion in ${minion_list}; do
    salt "${minion}" test.ping
    if [ $? -ne 0 ]; then
        echo "${minion} is down."
    fi
done 

修改写入文件或发送警报很容易。

答案 5 :(得分:0)

halite贬值支持付费ui版本,悲伤,但是真的 - 仍然是盐栈做的工作。我猜你最好的监控将是你自己写的那个,很高兴有一个salt-api项目(我相信它是halite的一部分,不确定这个),我建议你用这个跟{ {3}}

因此,如果您想要一个漂亮的界面,您可能希望在设置它之后使用api ...在设置龙卷风时确保您可以通过身份验证(我在这里遇到了一些麻烦),以下是您可以检查的方法它:

使用Postman / Curl / what:

  

检查api是否还活着:      - 没有发布数据(只看看api是否还活着)      - 获取请求tornado as it's better than cherry version

     

登录(您需要从此处返回令牌以执行大多数操作):      - 发布到http://masterip:8000/      - (邮递员中的x-www-form-urlencoded数据),raw:
         用户名:yourUsername
         密码:你的密码
         eauth:pam

  • 我正在使用pam,所以我的用户在我的主服务器上添加了yourUsername和yourPassword(作为普通用户,这就是pam的工作方式)
  

获取minions,http://masterip:8000/login(您需要从登录操作发布令牌),

     

获取所有工作,http://masterip:8000/minions(您需要从登录操作发布令牌),

所以基本上如果你想做任何有关盐栈监控的事情,只需要玩那个salt-api&得到你想要的东西,saltstack有输出格式化程序所以你甚至可以作为json得到所有数据(如果你的前端是javascript) - 它可以让你运行cmd或任何你想要的东西,监控留给你(除非你切换到社区到专业版)或者除非你想使用提到的saltpad(对不起家伙,一年前根据回购更新)。

顺便说一句。您可能需要将该8000端口更改为其他内容,具体取决于saltstack / tornado / config的版本。

答案 6 :(得分:0)

基本上,如果要输出可以检查所有小兵状态的输出,则可以运行

这样的命令
salt '*' test.ping

salt --output=json '*' test.ping  #To get output in Json Format

salt manage.up # Returns all minions status

否则,如果您想使用仪表板对其进行可视化,则可以看到一些可用的选项,例如“工头”,“盐板”等。