ale*_*ato 5 configuration logstash
我将部署一个logstash实例,该实例将处理各种输入并执行多个过滤操作.考虑到输入的复杂性和数量,配置文件很可能最终会有很多if-then语句.
我的问题是:
有没有办法让配置文件更"模块化"?在编程意义上,我会创建函数/子程序,以便我可以独立测试.我考虑过动态创建可用于测试的迷你配置文件.然后可以将这些迷你文件组合成一个生产配置.
是否有任何"最佳实践"用于测试,部署和管理更复杂的Logstash配置?
谢谢!
本身不支持函数/子例程。我将不同的过滤器分解为单独的文件,以保持逻辑分离并避免产生巨大的文件。我还在不同的文件中输入和输出。这样我就可以将所有过滤器与调试输入/输出结合起来,例如
input {
stdin {}
}
output {
stdout {
codec => rubydebug
}
}
Run Code Online (Sandbox Code Playgroud)
并手动调用 Logstash 来检查给定输入的结果。由于过滤器排序很重要,我使用 Logstash 按字母顺序读取配置文件这一事实,因此这些文件被命名为NN -some-descriptive-name.conf,其中NN是一个整数。
我还编写了一个脚本,通过让您编写包含测试输入和预期结果消息的规范来自动执行此过程,如果存在不匹配,它将抛出错误并显示差异。我也许可以开源它。
至于部署,请使用任何配置管理系统,例如 Puppet、Chef、SaltStack、Ansible、CFEngine 或您熟悉的类似系统。我对 Ansible 非常满意。
| 归档时间: |
|
| 查看次数: |
2029 次 |
| 最近记录: |