gpt4 book ai didi

python - Saltstack 通过事件和 salt-call 管理和查询理货/阈值?

转载 作者:行者123 更新时间:2023-11-28 19:22:29 25 4
gpt4 key购买 nike

我有超过 100 个运行 的 Web 服务器实例应用程序使用 我们偶尔(整个机队每周一次)看到其中一个缓存损坏,这会导致一条独特的错误日志消息。

一旦发生这种情况,应用程序将在该节点上停止运行,任何路由到它的事务都将失败。

我已经围绕 tail -F 编写了一个简单的包装器,它可以在日志文件中出现的任何时候发现模式并评估 shell 命令(使用 eval) 使用react。我使用来自 salt-call 命令得到了这个触发处理关闭 的自定义模块服务器,预热(刷新)缓存,当然,还会重新启动 Web 服务器。 (实际上我有两种形式的包装器,bash 和 Python)。

这很好,事件发生的频率很高,不太可能成为问题。然而,我的老板很合理地担心常见模式故障模式......正则表达式可能会同时出现在太多这样的日志中并占据整个站点。

我的第一个想法是将我的 salt-call 包装在 中检查(我们已经有一个用于缓存和某些其他数据结构的 Redis 基础设施)。这将被实现为一个整数,有一个过期时间。检查将调用 INCR,检查结果,如果返回的数量超过 N(或者 Redis 服务器无法访问),则休眠。如果结果低于阈值,则 salt-call 将被调度,并在服务器备份并运行后调用减量。 (Redis key 的过期可能会在一天甚至几个小时后杀死任何陈旧的增量......我们的警报系统已经通知我们服务器停机并且我们的响应时间对于这样的时间范围来说绰绰有余)。

但是,我正在阅读有关 Saltstack 事件处理功能的信息,并想知道是否改用它会更好。 (优点是,节点没有 redis-cli 命令工具,也没有 Python Redis 库,但很明显,salt-call 已经有了必要的支持)。因此,在 Salt 中使用一些东西可以最大限度地减少向这些系统添加额外包和依赖项的需要。 (或者,我可以将所有 Redis 处理编写为单独的 PHP 命令行实用程序,然后让我的 shell 脚本调用它)。

是否有编写简单 Saltstack 模块的 HOWTO?文档似乎在没有任何方向的情况下深入到引用细节。甚至关于搜索哪些术语的一些建议也会有所帮助(因为他们对 pillars、grains、minions 等术语的使用似乎有些不透明)。

最佳答案

编写 Salt 模块的主要文档在这里:http://docs.saltstack.com/en/latest/ref/modules/index.html

Salt 附带的许多模块可能有助于激发灵感。您可以在这里找到它们:https://github.com/saltstack/salt/tree/develop/salt/modules

要记住的一件事是,除非您告诉它做某事,否则 Salt Minion 不会做任何事情。因此,您可以创建一个模块来检查您提到的错误模式,但您需要将它添加到 Salt Scheduler 或 cron 以确保它经常运行。

如果您需要更多帮助,您可以在 #salt on freenode 的 IRC 上找到有帮助的人。

关于python - Saltstack 通过事件和 salt-call 管理和查询理货/阈值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21794302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com