ãã®åé¡ã®åæ©ã¯ãlogstashã®æ¬¡ã®grokã¹ããŒãã¡ã³ãã§ãã
grok {
match => { "message" => "\[(?<gunicorn.time>%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})? %{ISO8601_TIMEZONE})\] \[%{NUMBER:[gunicorn][worker_id]}\] \[%{LOGLEVEL:[gunicorn][level]}\] %{GREEDYDATA:[gunicorn][message]}" }
remove_field => "message"
}
æ¥ä»åœ¢åŒã«æéãšã¿ã€ã ãŸãŒã³ã®éã«ã¹ããŒã¹ãå«ãŸããŠããªãã£ãå Žåã次ã®ã¹ããŒãã¡ã³ãã§ãããã«ãããããŸãã
grok {
match => { "message" => "\[%{TIMESTAMP_ISO8601:[gunicorn][time]}\] \[%{NUMBER:[gunicorn][worker_id]}\] \[%{LOGLEVEL:[gunicorn][level]}\] %{GREEDYDATA:[gunicorn][message]}" }
remove_field => "message"
}
ããã©ã«ãã®æ§æã«ã¯ãæšæºã®æ¥ä»åœ¢åŒã®æ¹ãé©ããŠãããšæããŸãã ããã«äœåãªã¹ããŒã¹ãè¿œå ããŠã䟡å€ã¯ãããŸãããã代ããã«åé¡ãçºçãããšæããŸãã éå°ãªããã©ã«ãã®logconfigå šäœã眮ãæãããããã°ããŒãµãŒã«ã«ã¹ã¿ã åŒãèšè¿°ããŠããã«å¯Ÿå¿ããå¿ èŠããããŸãã
æ¥ä»åœ¢åŒã¯ãå ±éãã°åœ¢åŒã«åŸããŸãïŒhttpsïŒ //en.wikipedia.org/wiki/Common_Log_Format
ããããè©«ã³ããŸãã ç§ã®åçã¯ãã¢ã¯ã»ã¹ãã°ã®åœ¢åŒã«é¢ãããã®ã§ãã ãã®ã¬ããŒãã¯ããšã©ãŒãã°åœ¢åŒã«é¢ãããã®ã§ãã
%{DATESTAMP} %{ISO8601_TIMEZONE}
ã䜿çšã§ããããã§ã
19.xã®å Žåãå€æŽãå ããã«ã¯é ãããŸãã ããã«ãããå€ãã®ãã®ã³ã°ã®äœ¿çšãäžæãããŸãã ããã¯æ¬¡ã®ã¡ãžã£ãŒããŒãžã§ã³ã§å€æŽããããã®ã§ããïŒ
@tilgoviã ãããããã¯äœã欲ããã§ããïŒ
ãããã€ãããã·ã¹ãã ã®å€ãã¯ãçŸåšã®åœ¢åŒã«äŸåããŠããŸãã ã·ã¹ãã ã®ããã«ãã°ã¹ã¿ãã·ã¥ã«ã«ãŒã«ãåžžã«æžã蟌ãããšãã§ãããããããŸãã«ã倧ããªå€æŽã§ãããããŸã䟡å€ããªãã®ã§ã¯ãªãããšå¿é ããŠããŸãã èãïŒ
èãããã劥åæ¡ã¯ãåãæ¿ããšéæšå¥šã§ããå¯èœæ§ããããŸãã æšæºã«æºæ ããŠããªãå¥æ°ã®ïŒãã ããããã«ïŒæ¥ä»åœ¢åŒã段éçã«å»æ¢ãããŠãŒã¶ãŒã«åºå®ãã°è¡åœ¢åŒãžã®åãæ¿ããæäŸããããšãã§ããŸãã ç§ã¯Pythonãä»ããŠãã¬ãŒããªãŒããŒã©ã€ãã§ããããšãç¥ã£ãŠããŸãããgunicornã«ã¯ç«¶åããèšå®ãçµã¿èŸŒãŸããŠãããããç§ã®ãæ°ã«å ¥ãã®éžæè¢ã§ã¯ãããŸããïŒDIã¯OCDã®äººã§ã¯ãããŸããããgrokã¯ãšãªãäœæããããšã¯ãç¹ã«éããããå Žåã«çŸä»£çãªã¿ã€ãã®æ·åã§ãããªãã説æããŠããã®ã¯1ã€ã®ã¹ããŒã¹ã§ãïŒDãããŠãäœããå€ãã£ãå Žåã«å¿ èŠä»¥äžã«é·ãäžèŽããããã«ç¶æããã®ã¯éçºè 次第ã§ãã å¿ èŠãªã®ã¯äžçã®çµããã§ã¯ãããŸãããããã°ã®ãããœãããŠã§ã¢ã«äŸåããŠããå Žåã§ãããã°ãä¿®æ£ãç¶ããŸã...ãããç§ãæãããšã§ã...質åãç§ã«åãããããã©ããã¯ããããŸãã...
R20ã®ããã©ã«ããå€æŽããããšãæ€èšã§ããŸãã
ãã®åœ¢åŒã¯å®éã«ã¯ããªãäžè¬çã§ãã RFC 3339ã«ã¯ãããã«é¢ãã泚èšããããŸãã
泚ïŒISO 8601ã¯ããTãã§åºåãããæ¥ä»ãšæå»ãå®çŸ©ããŸãã ãã®æ§æã䜿çšããã¢ããªã±ãŒã·ã§ã³ã¯ãèªã¿ãããããããã«ãïŒããšãã°ïŒã¹ããŒã¹æåã§åºåããããã«ããŒããšãã«ã¿ã€ã ãæå®ããããšãéžæã§ããŸãã
ãšã©ãŒãã°ãã³ãã³ãã©ã€ã³ã«åºåãããã®ã§ã人éãèªãå¿ èŠããããŸãããã®ããã«ä¿æããããšæããŸãã ã¿ã€ã ãŸãŒã³åœ¢åŒã«åé¡ã¯ãããŸããïŒ
ããã¯ãlogstashã®grokã«ãå¯å€§ãªãã¿ãŒã³ã§ã¯ãªããå³å¯ãªãã¿ãŒã³ãããªããŒããããŠããããšãæå³ããŸãã ç§ã¯ä»¥åBBC / EBUã§æšæºã®äººã ãšä»äºãããããšãããããã®çš®ã®ã²ã©ãèšèé£ããèŠããŠããŸãã èªã¿ãããã®ããã«ãïŒããšãã°ïŒã¹ããŒã¹æåãããã¯å®è£ ã§ããŸãã....ãã®æåã¯äœã§ããïŒ ãã¡ããããã®æç¹ã§ä»»æã®ãã£ã©ã¯ã¿ãŒãèš±å¯ããããšãã§ããŸãããããã¯OKã§ã¯ãããŸããã ãããã£ãŠãLogstashã®æ åœè ã¯ããããTãŸãã¯ã¹ããŒã¹ã®ããããã«æ¬¡ã®ããã«å®è£ ããŸããã
TIMESTAMP_ISO8601 %{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?
ããã«ãããã¯åé¡ãäœã§ãã£ããã§ã¯ãããŸããã åé¡ã¯ãæšæºã§èš±å¯ãããŠããªãã¹ããŒã¹ãæã€ã¿ã€ã ãŸãŒã³ãµãã£ãã¯ã¹ã§ãã
ãããã£ãŠãæ®å¿µãªããããã®åœ¢åŒã¯äžè¬çã§ã¯ãããŸããã ãã®ãã©ãŒãããã¯ãgunicornã«åºæã®éæ£çµ±çãªåœ¢åŒã§ãã ã¹ããŒã¹ã«ã€ããŠè°è«ããŠããã®ã¯ãããããã«æãã§ããããç§ã¯ç¥ã£ãŠããŸãããèšèªãšãªãŒãã¢ãã³ã®æ§æã«é¢ããŠã¯ãã¹ãŠã§ãã
ããã¯åœ¹ã«ç«ã¡ãŸãã@ kozmaz87ã ä»æ§ãæãäžããŠãããŠããããšãã
ããããç§ãã¡ã¯ããã«ããã®ã§ãããã«æªãã¢ã¯ã»ã¹ãã°åœ¢åŒãææããããšæããŸãã ç§ã¯ãããã©ãããæ¥ãŠããã®ããã³ãŒãã§èŠã€ããããšããã§ããŸããã§ãã...ããã¯ããªããããŸããªæ§æã¡ã«ããºã ããæ§ç¯ãããŠããŸãã ä»ã®å Žæããå²ãåœãŠãããŸããã 調æ»ããã³ãŒãããã§ãã¯ã¢ãŠãããŸããã§ãããã次ã®åºåãçæãããŸãã
127.0.0.1 - - [13/Aug/2018:15:03:26 +0000] "GET /debug/sms HTTP/1.1" 400 74 "-" "python-requests/2.18.4"
gunicornã®ããã¥ã¡ã³ããèŠããšããã®ãã°ã®2çªç®ã®éšåã¯äœããã®çç±ã§ã-ãã§ããããšãããããŸã... 3çªç®ã¯ãŠãŒã¶ãŒã§ãããšæ³å®ãããŠããããããã-ããšè©äŸ¡ãããŠããŸããæéãšå¹ŽããïŒãã§çµåãããŠããæ¥ä»åœ¢åŒããã¡ããããæ°ã«å ¥ãã®ã¹ããŒã¹ã§åºåãããã¿ã€ã ãŸãŒã³ã®ãµãã£ãã¯ã¹ããããŸãã ãããã調ã¹ãŠã¿ããšããããnginxããã°ã«èšé²ããæ¹æ³ã§ããããšãããã£ãã®ã§ãnginxã¢ã¯ã»ã¹ãã°ãæš¡å£ããããšããããšã§ããã®ã¹ããŒã¹ã§åºåãããã¿ã€ã ãŸãŒã³ãçºçããŠãããšæããŸãã HAProxyã¯ãã¿ã€ã ãŸãŒã³ãµãã£ãã¯ã¹ãä»ããªãããšãé€ããŠãããã䜿çšããŸã...
ãã®ã³ã°ã¯ã¯ã¬ã€ãžãŒã§ã...誰ããç§ã«æ°·ã®ãããªæ°Žã®ãã±ããæã£ãŠããŸã:)
ã¢ã¯ã»ã¹ãã°ã®åœ¢åŒã¯ééããªããäžè¬çãã§ãïŒ https ïŒ//en.wikipedia.org/wiki/Common_Log_Format
ãã ããæåŸã«ãªãã¡ã©ãŒãšãŠãŒã¶ãŒãšãŒãžã§ã³ããè¿œå ããŸãã --access-logformat
ãã©ã°ãåç
§ããŠãã ããïŒ http ïŒ//docs.gunicorn.org/en/latest/settings.html#access -log-format
ç§ã¯ãããç解ããŠããŸãã 2çªç®ã®ã¢ã€ãã ãã-ãã§ããã®ã¯é¢çœããšæããŸãïŒDå®è£ ãã人ã¯èª°ã§ããããæã£ãŠããŠãã-ããå ¥ãããããªæ°ãããŸã
çŸåšã®ãã°åœ¢åŒãä¿æããŸãã imoã®äžè¬çãªåœ¢åŒã¯é©åã§ãããã¢ããã¹ããªãŒã ã®ãµãŒããŒã®å€æŽã«ã€ããŠã¯èªèããŠããŸããã èãïŒ cc @tilgovi
ãã³ã@tilgoviãŸã@berkerpeksag
ä¿®æ£ãããªãã®ã§åé¡ãéããŸãã @tilgoviã§è¿°ã¹ãããã«ã[å
±éãã°åœ¢åŒ]ïŒ
https://en.wikipedia.org/wiki/Common_Log_Formatã
ãããéãããŸãŸã«ããŠããããšãã§ãããšæããŸãã ãšã©ãŒãã°ã«ã¯äžè¬çãªãã°åœ¢åŒã䜿çšããŠããŸããã äžè¬çãªãã°åœ¢åŒã¯ã¢ã¯ã»ã¹ãã°åœ¢åŒã§ãããããã§äœ¿çšããŸãã
å®éãæ°ã«ããªãã§ãã ããã ã¡ããã©ä»ããã«ãã§ãã¯ããŸããããäž¡æ¹ã«åãæéãã©ãŒãããæååã䜿çšããŠããŸãã ããã¯ç§ã«ã¯ä»ã®ã©ã®æ¹æ³ãããè¯ãããã§ãã ã¢ã¯ã»ã¹ãã°ãšãšã©ãŒãã°ã®æ¥ä»åœ¢åŒãå€ããããããŸããã
ç§ã¯ä»ãã®åé¡ãããããç解ããŠãããåéãã¹ãã ãšæããŸãã
ããã©ã«ãèšå®ã§ã®Gunicornããã®åºåäŸã¯æ¬¡ã®ãšããã§ãã
[2019-01-25 11:44:34 -0800] [22794] [INFO] gunicorn19.9.0ãéå§ããŠããŸã
[2019-01-25 11:44:34 -0800] [22794] [INFO]ãªã¹ãã³ã°ïŒ http ïŒ//127.0.0.1ïŒ8000ïŒ22794ïŒ
[2019-01-25 11:44:34 -0800] [22794] [æ å ±]ã¯ãŒã«ãŒã®äœ¿çšïŒåæ
[2019-01-25 11:44:34 -0800] [22797] [INFO] pidã䜿çšããèµ·åã¯ãŒã«ãŒïŒ22797
[2019-01-25 11:44:36 -0800] [22797] [INFO] 127.0.0.1 --- [25 / Jan / 2019ïŒ11ïŒ44ïŒ36 -0800] "GET / HTTP / 1.1" 200 14 " -"" curl / 7.54.0 "
åé¡ã¯ãã¢ã¯ã»ã¹ãã°ã®äžè¬çãªãã°åœ¢åŒã解æããããšã§ã¯ãªãã_ãã°è¡å šäœ_ã解æããããšã§ãã
Gunicornã¯ããã°è¡ã®å é ã«ã¿ã€ã ã¹ã¿ã³ããpidãããã³ã¬ãã«ãåºåããŸãã ã¢ã¯ã»ã¹ãã°è¡ã«ã¯ãç¬èªã®ã¿ã€ã ã¹ã¿ã³ããæã€å ±éã®ãã°åœ¢åŒã®ã¡ãã»ãŒãžããããŸãã
ã¿ã€ã ã¹ã¿ã³ããåã圢åŒã§ã¯ãªãããšã«æ³šæããŠãã ããã ãã®åé¡ã®å ã ã®èŠæ±ã¯ããã°è¡ã®å é ã®ã¿ã€ã ã¹ã¿ã³ãã«ã_äžè¬çãªãã°åœ¢åŒã®ããã«_ã¹ããŒã¹ãå ¥ããªãããšã§ããã
ããã¯æ¬¡ã®ããã«ãªããŸãã
[25 / Jan / 2019ïŒ11ïŒ44ïŒ34 -0800] [22794] [INFO] gunicorn19.9.0ãéå§ããŠããŸã
[25 / Jan / 2019ïŒ11ïŒ44ïŒ34 -0800] [22794] [INFO]ãªã¹ãã³ã°ïŒ http ïŒ//127.0.0.1ïŒ8000ïŒ22794ïŒ
[25 / Jan / 2019ïŒ11ïŒ44ïŒ34 -0800] [22794] [æ å ±]ã¯ãŒã«ãŒã®äœ¿çšïŒåæ
[25 / Jan / 2019ïŒ11ïŒ44ïŒ34 -0800] [22797] [INFO] pidã§ã¯ãŒã«ãŒãèµ·åããŠããŸãïŒ22797
[25 / Jan / 2019ïŒ11ïŒ44ïŒ36 -0800] [22797] [INFO] 127.0.0.1 --- [25 / Jan / 2019ïŒ11ïŒ44ïŒ36 -0800] "GET / HTTP / 1.1" 200 14 "-" "curl / 7.54.0"
äžè¬çãªãã°åœ¢åŒã¯åœéçã§ã¯ãªãããïŒæã®ååãçãããïŒãçãã¯ããããããã§ã¯ãªããšæããŸãã
ãã ããåãã°è¡ã®å é ã®ã¿ã€ã ã¹ã¿ã³ããISO8601ã¿ã€ã ã¹ã¿ã³ãã«å€æŽããããšã¯ã§ããŸãã
https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations
Tæåã®ä»£ããã«æ¥ä»ãšæå»ã®éã®ã¹ããŒã¹ã¯å®éã«ã¯èš±å¯ãããŸãããæå»ãšãŸãŒã³ãªãã»ããã®éã®ã¹ããŒã¹ã¯èš±å¯ãããŸããã
æå¹ãªISO8601圢åŒã¯æ¬¡ã®ãšããã§ãã
[2019-01-25T11:44:34-0800]
[2019-01-25 11:44:34-0800]
ç§ãã¡ãä»æã£ãŠãããã®ãšæ¯èŒããŠãã ããïŒ
[2019-01-25 11:44:34 -0800]
^ there is a space here
ãã ãããããã€ãããã·ã¹ãã ãå£ãããšã«ã€ããŠã¯éåžžã«å¿é ããŸãã
ãã°ã®è§£æ/åãã©ãŒãããã¯logstashãªã©ã®ããŒã«ã§ç°¡åã«åŠçã§ãããããåé¡ããããã©ããã¯ããããŸããã ä»ã®ãšãããã®ãŸãŸã«ããŠãããŸãã
ã¢ã¯ã»ã¹ãã°ã«å¥ã®åœ¢åŒãå¿ èŠãªå Žåã¯ãç¹å®ã®èå¥åãè¿œå ã§ããŸããïŒ ããããã°ããã©ãŒããããå£ãããšã¯ãããŸããã ãã ãããšã©ãŒãã°ã¯ãã©ãŒãããããæ¹æ³ãæäŸããŠããªããããåé¡ã«ãªããŸãã ãã®ãããªå Žåãããããç°å¢å€æ°ããããè¡ãã§ããããïŒ
ã¢ã¯ã»ã¹ãã°ã®åœ¢åŒã¯å€æŽããªããšæããŸãã ããã¯çŸåšäžè¬çãªãã°åœ¢åŒã§ããã --access-log-format
èšå®ããããŸãã
ã¢ã¯ã»ã¹ãã°åœ¢åŒã¯ããã³ãã©ãŒã«æž¡ãããã¢ã¯ã»ã¹ãã°ã®_ã¡ãã»ãŒãž_ã®ã¿ããã©ãŒãããããŸãã ãã®å Žåããã³ãã©ãŒã«ã¯ç¬èªã®ãã©ãŒããã¿ãŒããããŸãã
stdoutãšstderrã®ã¹ããªãŒã ãã³ãã©ãŒã®ããã©ã«ãã®ãã©ãŒããã¿ãŒã¯ãå é ã«ã¿ã€ã ã¹ã¿ã³ããä»ããŸãã ã€ãŸããããã©ã«ãã®æ§æã§ã¯ãã¢ã¯ã»ã¹ãã°ã«_two_ã¿ã€ã ã¹ã¿ã³ãããããŸãã1ã€ã¯å é ã«ããã1ã€ã¯ã¡ãã»ãŒãžã«ãããŸãã
ãã³ãã©ãŒã®ãã©ãŒããã¿ãŒãå€æŽããã«ã¯ã --logconfig
ãªãã·ã§ã³ïŒfileãŸãã¯dictïŒã®ããããã䜿çšããå¿
èŠããããŸãã
ããã©ã«ãã®ãã©ãŒããã¿ã«ISO8601ã¿ã€ã ã¹ã¿ã³ããå«ããããšãæ€èšããå¿ èŠããããŸãã
ãã°ã®è§£æ/åãã©ãŒãããã¯ãlogstashãªã©ã®ããŒã«ã§ç°¡åã«åŠçã§ããŸã
ã¯ãããã ãããããã®ããŒã«ãçµã¿èŸŒã¿ãã¿ãŒã³ã§ã¿ã€ã ã¹ã¿ã³ãã解æã§ããå Žåã¯éåžžã«äŸ¿å©ãªã®ã§ããŠãŒã¶ãŒã¯æ£èŠè¡šçŸãèšè¿°ããå¿ èŠããããŸããã grokã«ã¯ISO8601ã¿ã€ã ã¹ã¿ã³ãã®ãã¿ãŒã³ãçµã¿èŸŒãŸããŠãããããå ã®åé¡ãçºçããŸããã
@tilgoviäºææ§ãå£ããããªãã ãŸããNGINXã¯ãISO8601圢åŒãŸãã¯å ±éãã°åœ¢åŒã®ããããã䜿çšããŠæå»ãèšå®ããå¯èœæ§ãæäŸããŸãã
$time_iso8601
local time in the ISO 8601 standard format
$time_local
local time in the Common Log Format
https://nginx.org/en/docs/http/ngx_http_log_module.html
ããã¯éºç£ãå£ããªãã®ã§ãç§ã¯åãããšãããŸãã ãšããã§ãåºåã«ã¢ã¯ã»ã¹ãã°è¡ã衚瀺ããã ãã§ã¯ãããŸãããïŒ PIDãæã€æåã®ããããŒãæã€ã¹ãã§ã¯ãªãããã§ãã èãïŒ
ãããããã©ã«ãã®ãã©ãŒããã¿ãŒã®äžéšã«ããããšã«ã€ããŠãç§ã¯ãããããã€ãã®ããŒã«ãå£ããŠããŸãã®ã§ã¯ãªãããšå¿é
ããŠããŸãã ã«ã¹ã¿ã ç°å¢å€æ°TIME_ISO8601=true
ã匷å¶çã«äœ¿çšããã®ã¯ã©ãã§ããïŒ
äºææ§ãå£ããããªãã
ç§ãããŸããã ééã£ãçç±ã§ãã±ãããéãããšæãã®ã§ããã±ãããåéãããã£ãã ãã§ãã åé¡ã¯äžè¬çãªãã°åœ¢åŒããå€æŽããããšã§ãããã®ããã«ãç§ãã¡ã¯äž¡æ¹ãšãå¿çããŸããã åé¡ã¯ãã¢ã¯ã»ã¹ãã°ã¡ãã»ãŒãžã®åœ¢åŒã§ã¯ãªããããã©ã«ãã®ãã©ãŒããã¿ã®ã¿ã€ã ã¹ã¿ã³ãã§ãã ãã£ãšè©±ãåãããšãã§ããŠããããã§ãããçãã¯ãŸã äœãããªãããšãããããŸããã
ãšããã§ãåºåã«ã¢ã¯ã»ã¹ãã°è¡ã衚瀺ããã ãã§ã¯ãããŸãããïŒ PIDãæã€æåã®ããããŒãæã€ã¹ãã§ã¯ãªãããã§ãã èãïŒ
å¯èœã ããããªãã
ã«ã¹ã¿ã ç°å¢å€æ°ãæã€ã®ã¯ã©ãã§ãã
å€å倧äžå€«ã ãŠãŒã¶ãŒã¯ãé«åºŠãªãã°èšå®ã䜿çšããŠããã€ã§ããã°ãå®å
šã«å¶åŸ¡ã§ããŸãã --log-level
ã®ããã«ãCLIã®ããã€ãã®èšå®ãåçŽã«ããããã«åªããŠããããããŠãŒã¶ãŒã¯æ§æãã¡ã€ã«ã䜿çšããå¿
èŠããããŸããã ãã¶ã--log-date-format
ãè¿œå ã§ããŸããïŒ iso8601
ã®ãããªèšå·æååãèªèããããšãã§ããŸãã ãã®èšå®ã¯ã --log-config
ãŸãã¯log_config_dict
ã䜿çšããããªããŠãŒã¶ãŒåãã§ãã
ãããŸã§ã®éã @ tilgoviã¯ãPython 2ãšã®äºææ§ãå£ããŠããããããã©ãŒããããå€æŽããã®ã«é©ããææã§ãã
ã¬ã¬ã·ãŒã«ã€ããŠç§ããã£ãšå¿é ããŠããã®ã¯ãISO8601ã人éã®ç®ã§è§£æããã®ãé£ãããç§ãå«ãå€ãã®äººã ãäœãèµ·ãã£ãŠãããã芳å¯ããæ©äŒãšããŠã³ã³ãœãŒã«ã䜿çšããŠããããšã ãšæããŸãã
ç§ã¯æ¬¡ã®ããšãææ¡ããããšæããŸãïŒ
-iso8601
ãè¿œå ããŸãïŒããªããææ¡ããŠããããã«ïŒããã«ããéãUTCããã®æéã«äœ¿çšããããã®-utc
ãªãã·ã§ã³ã䜿çšããããšãã§ããŸããïŒ èãïŒ
念ã®ãããããã©ã«ããå€æŽããå Žåããããææ¡ãããå·®åã«ãªããŸãã
diff --git a/gunicorn/glogging.py b/gunicorn/glogging.py
index 56cc5bd..0735e58 100644
--- a/gunicorn/glogging.py
+++ b/gunicorn/glogging.py
@@ -80,7 +80,7 @@ CONFIG_DEFAULTS = dict(
formatters={
"generic": {
"format": "%(asctime)s [%(process)d] [%(levelname)s] %(message)s",
- "datefmt": "[%Y-%m-%d %H:%M:%S %z]",
+ "datefmt": "[%Y-%m-%d %H:%M:%S%z]",
"class": "logging.Formatter"
}
}
@@ -175,7 +175,7 @@ class Logger(object):
loglevel = logging.INFO
error_fmt = r"%(asctime)s [%(process)d] [%(levelname)s] %(message)s"
- datefmt = r"[%Y-%m-%d %H:%M:%S %z]"
+ datefmt = r"[%Y-%m-%d %H:%M:%S%z]"
access_fmt = "%(message)s"
syslog_fmt = "[%(process)d] %(message)s"
ã¢ã¯ã»ã¹ãã°ããŒã¯ã³ã§ISO8601æ¥æã䜿çšãããªãã·ã§ã³ã¯èå³æ·±ããšæããŸãããããã¯ãã®åé¡ã®åæ©ãšã¯å¥ã®ãã®ã§ãã
ã¡ãªã¿ã«ãããã«ã€ããŠã¯åŒ·ãæããŸããã ðåé¡ãæ£ç¢ºã«è¡šçŸãããã ãã§ãã
ããããããã«ã€ããŠããå°ãèããå¿ èŠããããŸãã æã ã20.1ã«å»¶æããŸãã
芪æãªãéçºè
ã
ç§ã¯ãªã¯ãšã¹ããã¹ã®åé¡ã«çŽé¢ããŠããŸãïŒGunicornãšã¯äœã®é¢ä¿ããããŸããïŒã ãã®äŸã®ããã«ãApacheãµãŒããŒã®1ã€ã§ãã2019-10-30 14:27:16.960421
ã®ããã«ããã€ã¯ãç§ãå«ãæ£ç¢ºãªã¿ã€ã ã¹ã¿ã³ããååŸã§ããå¿
èŠããããŸãã ããã¯ã¯ãŒã«ãªæ¡åŒµã§ããããããæ€èšããããã®thxã§ãã
ãã©ã°log-date-format iso8601
ãgunicornã®æ¬¡ã®ããŒãžã§ã³ã§å©çšå¯èœã«ãªããšããããäœãåžæã¯ãããŸããïŒ
æãåèã«ãªãã³ã¡ã³ã
ããã¯ãlogstashã®grokã«ãå¯å€§ãªãã¿ãŒã³ã§ã¯ãªããå³å¯ãªãã¿ãŒã³ãããªããŒããããŠããããšãæå³ããŸãã ç§ã¯ä»¥åBBC / EBUã§æšæºã®äººã ãšä»äºãããããšãããããã®çš®ã®ã²ã©ãèšèé£ããèŠããŠããŸãã èªã¿ãããã®ããã«ãïŒããšãã°ïŒã¹ããŒã¹æåãããã¯å®è£ ã§ããŸãã....ãã®æåã¯äœã§ããïŒ ãã¡ããããã®æç¹ã§ä»»æã®ãã£ã©ã¯ã¿ãŒãèš±å¯ããããšãã§ããŸãããããã¯OKã§ã¯ãããŸããã ãããã£ãŠãLogstashã®æ åœè ã¯ããããTãŸãã¯ã¹ããŒã¹ã®ããããã«æ¬¡ã®ããã«å®è£ ããŸããã
TIMESTAMP_ISO8601 %{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?
ããã«ãããã¯åé¡ãäœã§ãã£ããã§ã¯ãããŸããã åé¡ã¯ãæšæºã§èš±å¯ãããŠããªãã¹ããŒã¹ãæã€ã¿ã€ã ãŸãŒã³ãµãã£ãã¯ã¹ã§ãã
ãããã£ãŠãæ®å¿µãªããããã®åœ¢åŒã¯äžè¬çã§ã¯ãããŸããã ãã®ãã©ãŒãããã¯ãgunicornã«åºæã®éæ£çµ±çãªåœ¢åŒã§ãã ã¹ããŒã¹ã«ã€ããŠè°è«ããŠããã®ã¯ãããããã«æãã§ããããç§ã¯ç¥ã£ãŠããŸãããèšèªãšãªãŒãã¢ãã³ã®æ§æã«é¢ããŠã¯ãã¹ãŠã§ãã