我有nginx.log文件的一部分:
192.168.226.64 - - [26/Apr/2021:21:20:37 +0000] "GET /api/datasources/proxy/1/api/v1/query_range?query=probe_ssl_earliest_cert_expiry%7Btarget%3D~%22()%22%7D-time()&start=1619471730&end=1619472030&step=30 HTTP/2.0" 200 212 "https://grafana.itoutposts.com/d/xtkCtBkiz/blackbox-exporter-overview?editview=templating&orgId=1&refresh=5s" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36" 134 0.006 [monitoring-monitoring-prometheus-grafana-80] [] 192.168.226.102:3000 212 0.008 200 6bc328f046dcd1df823aa920397fb346
192.168.226.64 - - [26/Apr/2021:21:20:37 +0000] "GET /api/datasources/proxy/1/api/v1/query_range?query=probe_success%7Btarget%3D~%22()%22%7D&start=1619471730&end=1619472030&step=30 HTTP/2.0" 200 201 "https://grafana.itoutposts.com/d/xtkCtBkiz/blackbox-exporter-overview?editview=templating&orgId=1&refresh=5s" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36" 116 0.007 [monitoring-monitoring-prometheus-grafana-80] [] 192.168.226.102:3000 201 0.008 200 c10141117983e888db68f2e1ff223575
192.168.226.64 - - [26/Apr/2021:21:20:37 +0000] "GET /api/datasources/proxy/1/api/v1/query_range?query=probe_http_ssl%7Btarget%3D~%22()%22%7D&start=1619471730&end=1619472030&step=30 HTTP/2.0" 200 204 "https://grafana.itoutposts.com/d/xtkCtBkiz/blackbox-exporter-overview?editview=templating&orgId=1&refresh=5s" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36" 117 0.007 [monitoring-monitoring-prometheus-grafana-80] [] 192.168.226.102:3000 204 0.008 200 60724ca6531bc640649bac50bbc04a7e
我需要通过Python将此nginx.log文件转换为CSV文件,我应该如何做,或者我应该使用什么RegEx进行转换
1条答案
按热度按时间vlf7wbxs1#
您可以使用下面的代码作为您想要的内容的基础。您基本上需要进行一些定制的行拆分,以获得您想要的元素。请注意,用户代理是首先拆分报价字符的原因,因为这是唯一可能具有不可预测的空格数量的元素(AFAIK)。
我添加了一个简单的助手函数来显示元素的编号,并且展示了几种不同的拆分方法。变量名称可能需要更改,因为我不能100%确定您在nginx中登录的确切内容是什么……
输出