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

