发送Squid日志到Graylog
时间:2020-03-21 11:47:00 来源:igfitidea点击:
使用GELF将Squid日志发送到Graylog。
我们将使用与Apache相同的方法。
Squid 3.x配置
我们将定义一种称为graylog_vhost的新日志格式格式,以将反向代理访问日志格式化为GELF格式(JSON消息):
logformat graylog_vhost {"version":"1.1","host":"%{Host}>h","short_message":"%rm %ru HTTP/%rv","level":6,"timestamp":"%tl","_client_ip":"%>a","_squid_ip":"%la","_server_ip":"%<a","_response_time":"%tr","_request_size":"%>st","_reply_size":"%<st","_http_url":"%ru","_http_status":"%>Hs","_http_method":"%rm","_http_referer":"%{Referer}>h","_user_agent":"%{User-Agent}>h","_squid_request_status":"%Ss","_squid_hierarchy_status":"%Sh","_from_squid":"true"}
请检查http://www.squid-cache.org/Versions/v3/3.5/cfgman/logformat.html,以获取其他可用的格式参数。
下面是一种人类可读的格式:
{ "version":"1.1", "host":"%{Host}>h", "short_message":"%rm %ru HTTP/%rv", "level":6, "timestamp":"%tl", "_client_ip":"%>a", "_squid_ip":"%la", "_server_ip":"%<a", "_response_time":"%tr", "_request_size":"%>st", "_reply_size":"%<st", "_http_url":"%ru", "_http_status":"%>Hs", "_http_method":"%rm", "_http_referer":"%{Referer}>h", "_user_agent":"%{User-Agent}>h", "_squid_request_status":"%Ss", "_squid_hierarchy_status":"%Sh", "_from_squid":"true" }
Squid能够将每个访问日志行作为文本数据发送到TCP或者UDP接收器。
我们可以使用它来发送日志到Graylog。
Squid配置文件“ squid.conf”中的以下行将完成此工作:
access_log udp://graylog.example.com:12201 graylog_vhost
上面假设graylog.example.com服务器在UDP端口12201上具有GELF输入侦听器。