我想将x个Asterisk服务器的日志集中在Graylog2中。我找不到关于这方面的任何文档,也找不到任何以前写过这样做的人——这对我来说显然很奇怪。
我有一个使用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.conf
或/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。
然后,在Asterisk CLI中发出logger reload
,或重新启动Asterisk。
记录Asterisk消息
如果你想记录星号通知警告和错误,你也可以在你的/etc/asterisk/logger.conf
中使用一行,比如:
syslog.local0 => notice,warning,error
值得一提的是,我使用类似的技术来使用ELK堆栈和logstash转发器进行日志记录。