标签: elasticsearch erlang logstash
我有:
我的问题是disk_log的输出是Erlang的内部格式。如何与logstash接口?我是否可以解析另一个Erlang VM /进程中的disk_log输出文件,当它仍在被写入时(它毕竟是日志,只要Erlang VM正在运行它就会打开)并将其转储为原始文本/ logstash的JSON?有什么问题吗?
答案 0 :(得分:2)
您有几种选择:
disk_log:chunk/2
disk_log:chunk/3
这个解决方案会很慢,因为它需要先写入磁盘然后再从中读取。 disk_log通常用于高性能,因此添加这么多开销并不是正确的。
disk_log
您可以直接在应用程序中通过UDP添加将日志发送到graylog。这很好,因为它在磁盘上的开销要少得多,但你需要记住在每个地方都添加两种类型的日志(disk_log和JSON通过UDP)。
忘记disk_log并使用lager。当您需要在Erlang中记录任何内容时,Lager成为标准。功能列表令人印象深刻。您可以定义不同的后端。在你的情况下:文件和graylog。文件后端包含在lager中,你可以找到graylog后端here。即使拥有所有这些力量,它仍然具有很高的性能。