要将所有的POST数据清晰地发送到Graylog,您可以使用Apache的模块来记录POST数据,并将其发送到Graylog服务器。以下是一种解决方案的示例代码:
mod_log_post
模块。您可以使用以下命令检查是否已安装该模块:apachectl -M | grep mod_log_post
如果没有输出,则需要安装该模块。使用适合您的操作系统的适当命令安装mod_log_post
模块。
mod_log_post
模块和自定义日志格式:LoadModule log_post_module modules/mod_log_post.so
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{Content-Type}o %{Content-Length}i \"%{Content}o\"" graylog_format
CustomLog "/var/log/httpd/access_graylog.log" graylog_format
上述配置将启用mod_log_post
模块,定义了一个名为graylog_format
的自定义日志格式,并将访问日志写入/var/log/httpd/access_graylog.log
文件中。
配置Graylog GELF输入: 在Graylog服务器上创建一个GELF输入,以接收来自Apache的日志数据。您可以在Graylog的Web界面中创建GELF输入,并记录下所提供的主机和端口号。
配置Apache发送日志到Graylog: 在Apache的配置文件中,添加以下行以将日志发送到Graylog服务器:
LogLevel warn
ErrorLog "| /usr/bin/logger -thttpd -plocal6.error"
CustomLog "| /usr/bin/logger -thttpd -plocal6.info" graylog_format
上述配置将将日志级别设置为warn
,并将错误日志写入local6的error日志设备中,将访问日志写入local6的info日志设备中。
请注意,这只是一种示例解决方案,您可能需要根据您的特定环境和需求进行适当的调整。