发送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输入侦听器。