从salt事件总线收集事件并将其写入任何后端、mysql、redis等的守护进程。
salt-eventsd的Python项目详细描述
#盐事件d
基于saltstack但与saltstack无关的项目
##当前稳定版本标记为:0.9.3
如果您已经在使用salt eventsd,请查看更改日志以了解最新的更改和修复。
由于公众的要求,我将开发分支推到github供大家试用。从今天开始 在上,最新的出血边缘盐事件将始终在新版本的开发分支中 正在被标记。
请注意,我保留开发刹车的权利。即使我总是测试所有的变化 在将它们推送到github之前,可能会发生这种情况。
###从0.9更新到0.9.3
有关0.9.3中的改进,请参见更改日志。有关详细信息,请参阅installation.txt。
重要: 如果您来自0.9,请确保对配置进行以下更改:
重命名:"stat-upd"为"stat-timer" 添加:"stat_worker:false"(有关详细信息,请参阅installation.txt)
###可用性说明
####PYPI
截至1月22日,我们在PYPI上:https://pypi.python.org/pypi/salt eventsd/
####debian/ubuntu
debian包可以通过运行'dpkg buildpackage-b'直接从repo构建。所有依赖项 当然必须安装。
####Redhat/centos
目前还没有红帽的包裹。如果你有足够的知识和资源来支持它,感觉 免费提交必要的更改。
###它的功能
saltstack的事件侦听器守护进程,它将数据写入mysql、postgres、统计数据写入graphite、mongo, 等等。发生在saltstacks eventbus上的所有事件都可以被处理并推送到其他守护进程、数据库等。 你自己决定吧!
守护进程连接到salt主事件总线并侦听所有事件。根据配置, 某些事件可以通过其标签和/或函数名收集,并传递给不同的工作人员。这个 然后,工作人员从返回中提取所需的数据字段,并以用户可定义的方式进一步处理它们。
###依赖关系
必需的python运行时依赖项:
< Buff行情>- 盐=0.16.2
- mysql python
- argparse
- PYZMQ
可选/可用依赖项
< Buff行情>- simplejson(使用:pip install simplejson安装)
###用法示例
- 使用标记"new_job"收集所有事件,以获得比saltstacks作业缓存持续时间更长的作业历史记录
- 通过匹配从仆从返回的带作业返回标记的事件来收集所有作业返回,以便有一个包含您可以索引、搜索等所有返回的数据库。
- 将事件过滤到不同的后端,如Graphite、MongoDB、MySQL、Postgres等等…
- 通过收集由您自己的负载监控模块创建的带有"load"标记的事件来收集历史数据,如负载平均值等
- 创建并收集处理事件数据的自定义后端
- 等
###为什么这个有用/谁需要这个?
目前saltstack没有一个没有返回器的外部作业缓存。使用返回者和丢失的盐加密 不总是令人满意的,甚至可能不是一个选择。有了这个守护进程,您可以在salt master上收集其创建和返回的所有数据。
虽然saltstacks作业缓存在较小的环境中运行良好,但在较大的环境中,作业缓存可能成为salt主机的负担。特别是 如果作业缓存应该保留更长的时间,并且我在这里谈论周和月。这就是盐事件发生的地方。与 默认的mysql后端,它可以轻松地收集数周或数周的数据,而不必让salt master在 作业缓存。
可以完全禁用saltstacks作业缓存,因为所有数据都在独立的NT数据库,完全索引,可搜索 只需几次查询即可轻松清理和/或存档。
在更大的环境中,将不同的服务彼此分离也是一个好主意。在salt事件中,您可以使用saltstack 通信和salt事件d以收集实际数据。这样做的好处是,salt master不需要仅仅因为更改而重新启动 例如,对反应器或转轮进行了操作。
###功能
- 从salt事件总线将事件收集到不同的后端
- 在将事件推入不同的后端之前收集可配置的事件量
- 定义一个prio1事件,该事件在不首先排队的情况下立即被推送
- 轻松编写自己的后端(需要一些python知识)
- 使用正则表达式在事件上进行匹配,非常灵活和强大
- 将事件发送到两个后端,以便具有命令+返回历史记录以及将数据推送到其他位置
- 创建自己的SQL查询模板以将数据插入数据库
- 完全saltstack作业缓存独立数据库,用于保存所需的所有数据
- 示例工作程序位于doc目录中
###测试
py.test用于运行所有可用的测试。
要安装所有测试依赖项,必须首先通过运行来安装所有测试依赖项
TT> $pip安装dev requirements.txt
建议在virtualenv中安装所有依赖项,以便于隔离。
要运行所有测试,只需在根文件夹中执行以下操作
TT> P.试验
好的选项是用于pdb调试的-x,以及用于显示打印和日志输出的-s。
###基准
有一个简单的基准脚本可用于手动测试代码的性能。
脚本设置几乎都需要在脚本中模拟和配置。
所需的依赖项是:
< Buff行情>- 模拟(pip install mock)
将worker文件doc/share/doc/eventsd_workers/bench_worker.py复制到/etc/salt/eventsd_workers/bench_worker.py
使用python benchmark.py运行脚本