我想在 Graylog2 中集中 x 个 Asterisk 服务器的日志。我找不到任何关于此的文档,或者任何人之前写过关于这样做的文章——这对我来说显然很奇怪。
我有一个关于为此使用 SNMP 的想法,但我不相信这是最好的方法。
任何关于如何实现这一目标的建议或经验都将受到高度赞赏。
不幸的是,我不熟悉 Graylog2。但是,如果它像其他集中式日志记录解决方案一样——我敢猜测它可以与 syslog 一起使用(看起来像 graylog 的文档)。
记录呼叫详细记录
首先检查您是否已cdr_syslog.so加载,module show检查一下。
asterisk2ri2*CLI> module show like syslog
Module Description
Use Count
cdr_syslog.so Customizable syslog CDR Backend 0
如果你不这样做,你可能需要在编译 Asterisk 时选择它。(使用香草编译,它可能已经存在)
确保您的/etc/syslog.confor/etc/rsyslog.conf以您喜欢的方式设置了兼容的条目,例如:
local4.* /var/log/asterisk/asterisk-cdr.log
然后,您可以修改/etc/asterisk/cdr_syslog.conf文件以创建如下配置:
[cdr]
facility = local4
priority = info
template = "We received a call from ${CDR(src)}"
有关CDR 字段的更多信息,请查看 Asterisk 规范 wiki。
然后,要么发出logger reload@Asterisk CLI,要么重新启动Asterisk。
记录星号消息
如果您想记录星号通知警告和错误,您也可以在您/etc/asterisk/logger.conf的行中使用,例如:
syslog.local0 => notice,warning,error
...对于它的价值,我使用类似的技术让我的日志记录与 ELK 堆栈和 logstash-forwarder 一起工作。