mongodb - 使用宏自定义日志目标 syslog-ng
问题描述
我已经安装了 Syslog-ng 3.25,服务器正在工作,我可以毫无问题地将数据保存在 mongo db 中,但我想根据某些属性(如源 IP 和日期)自定义数据的目的地,所以对于每一天服务器会将日志保存在新位置。我像这样定义
目的地 d_pppoedb {
mongodb(
uri("mongodb://localhost:27017/syslog")
collection("${HOST}${YEAR}${MONTH}${DAY}")
persist-name(d_pppoedb)
);
};
但似乎宏不起作用,因为在我的 MongoDB 中没有创建新集合,然后我尝试使用此方法将日志保存到文件
destination d_file {
file("/var/log/${YEAR}.${MONTH}.${DAY}/${HOST}.log");
};
但同样,没有创建新文件,为什么宏不起作用。当我将目标设置为静态值时,它可以正常工作并保存日志,但它不想使用宏
解决方案
mongodb()
目标当前不支持其collection()
选项中的宏。如果你想在未来的版本中看到它,你可以在GitHub 上打开一个功能请求。
但是,您的第二个示例应该按预期工作。如果${YEAR}.${MONTH}.${DAY}
目录不存在,您也应该添加该create-dirs(yes)
选项。
推荐阅读
- kubernetes - Spinnaker 部署策略 Kubernetes 与 Istio
- swift - 在 swift 中,如何在应用程序委托中实现一个变量,以便在应用程序的任何地方检索它?
- python - 我想创建一个二维列表,其行和列作为输入,其元素是行号和列号的乘积
- c - 指向可变修改类型的指针的指针算法
- swiftui - SwiftUI在多个HStacks中对齐不同长度的文本
- awk - 试图从 awk getline + 变量中获取单行输出
- python - 遍历字典,引用键
- bash - 从bash程序中不同文件的“awk”命令生成表?
- python - Panda Dataframe:从列的值分组,同时为另一列的每个值创建列
- javascript - 让联系表格发挥作用