Supervisor: ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ๋กœ๊ทธ์— ํƒœ๊ทธ ์ง€์ •

์— ๋งŒ๋“  2016๋…„ 04์›” 13์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Supervisor/supervisor

supervisord, nginx, nodejs api ๋ฐ sidekiq๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 3 ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ๋‚˜์ค‘์— nodejs api ๋˜๋Š” sidekiq ๋“ฑ์—์„œ ์˜ค๋Š” ๋กœ๊ทธ ๋งŒ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋กœ๊ทธ์— ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํŽธ์ง‘ํ•˜๋‹ค

๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋กœ๊ทธ๊ฐ€ stdout์— ๋“ค์–ด๊ฐ€๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ

logging question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@ katsar0v ์™€ ๋™์ผํ•˜๊ฒŒ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ ๋Œ€์•ˆ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  5 ๋Œ“๊ธ€

supervisor-stdout ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„์ด ์ ‘๋‘์‚ฌ ์ธ stdout์— ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

loglevel = debug ์—์„œ supervisord.conf loglevel = debug ๋ฅผ ์„ค์ •ํ•˜์—ฌ ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ stdout์— ์ธ์‡„ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋งŽ์€ ๋””๋ฒ„๊ทธ ์ •๋ณด๋„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.

@mnaberez ์•ˆํƒ€๊น๊ฒŒ๋„ supervisor-stdout ์€ Ubuntu 16.04์—์„œ apt-get์„ ํ†ตํ•ด ์„ค์น˜๋œ ๊ฐ๋…์ž์™€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Error: supervisor_stdout:event_handler cannot be resolved within [eventlistener:stdout] ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์•ˆ (pip๋ฅผ ํ†ตํ•œ ์„ค์น˜)์€ ํ›จ์”ฌ ๋” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

/path/to/supervisord -c /path/to/supervisord.conf

์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰ :

stdout                           RUNNING   pid 1294, uptime 0:03:16
tornado-8000                     RUNNING   pid 1295, uptime 0:03:16
tornado-8001                     RUNNING   pid 1296, uptime 0:03:16

๊ทธ๋Ÿฌ๋‚˜ ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„ ์•ž์—๋Š” ๋ถ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด

[supervisord]
nodaemon = true

๋‚ด ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์ ‘๋‘์‚ฌ๊ฐ€ ์ถœ๋ ฅ์— ํ‘œ์‹œ๋˜์ง€๋งŒ ๋กœ๊ทธ ํŒŒ์ผ์—๋Š” ๊ธฐ๋ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ƒ๋‹นํžˆ ํ‘œ์ค€์ ์ธ ์„ค์ • (ํ† ๋„ค์ด๋„ ํ”„๋กœ์„ธ์Šค์™€ supervisor_stdout)์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

[program:tornado-8000]
command = /path/to/python myfile.py
stdout_events_enabled = true
stderr_events_enabled = true
...

[eventlistener:stdout]
command = /path/to/supervisor_stdout
buffer_size = 100
events = PROCESS_LOG
result_handler = supervisor_stdout:event_handler

์ด ๋ฌธ์ œ ๋˜๋Š” ๋Œ€์ฒด ์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@ katsar0v ์™€ ๋™์ผํ•˜๊ฒŒ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ ๋Œ€์•ˆ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…๋„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰