2022. 11. 2. 17:01ใSystem ์์ ์ค/LINUX
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
๐ Linux Log ๊ด๋ฆฌ
๐ฝ ์๊ฐ
๐ฆ ๊ฐ์
Log๋ ์ด๋ค System์ ๊ด๋ฆฌํ ๋, ๋งค์ฐ ์ค์ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ File์ด์์.
Linux์์ Program ์ํ ๋ฑ์ ํ ๋, Error ํน์ ์ํ ๊ฒฐ๊ณผ ๋ฑ์ Log๋ก ๋จ๊ธฐ๊ฒ ๋๋ฉด Error๊ฐ ๋ฐ์ํ ์ด์ ์ ๋ํด ๊ด๋ฆฌ์๋ ์ด๋ค ๋ฌธ์ ๊ฐ ์์๋์ง ํ์ธํ ์ ์๊ณ , ๊ทธ ๋์ฒ ๋ฐฉ๋ฒ์ ๋ํด ๊ณ ๋ฏผํด ๋ณผ ์ ์๋ ์์ฃผ ์ค์ํ ๋จ์๊ฐ ๋ ๊ฒ์ด์์.
์ฃผ๋ํ๋์ ๊ฐ๋ฐ Side Project๋ฅผ ์ํด ์ฌ๋ฌ System์ ๊ตฌ์ถํ์๋๋ฐ, ๊ทธ ์ค Project Management๋ฅผ ์ํด Redmine์ ๊ตฌ์ถํ์์ด์.
Redmine์ ํตํด Side Project์์ ๋์ค๋ ์ฐ์ถ๋ฌผ ์ค ํ๋์ธ Source Code๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด Github ๋ฑ์์ Clone์ ๋ ์ Redmine์ ์ ์ฅํ๊ณ , ์ด๋ฅผ ์ถ๋ ฅํด ์ฃผ๋ ์์
์ด ํ์ํ๋ฐ, ์ด ๋ Cron์ ์ด์ฉํด์ ์ฃผ๊ธฐ์ ์ผ๋ก GitHub ๋ฑ์ Source Code๋ฅผ ๊ฐ์ ธ์ค๋๋ก ์ค์ ํด ๋์์ด์.
์ด ๋ถ๋ถ์ ๋ํด ๊ถ๊ธํ์ ๋ถ๋ค์ ์ํด ์ด ๊ณณ์ ํด๋น ๋ด์ฉ์ ์ ์ฑ์ค๋ฝ๊ฒ ์ค๋นํ ๊ฒ์ด์์.
์ฃผ๋ํ๋์ cron์ ํตํด ์ฃผ๊ธฐ์ ์ธ ์์
์ ํ ๋, ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๋์ง Log์ ๋จ๊ธฐ๊ณ ์ถ์์ด์.
๊ทธ๋์ ์์ ๊ฐ์ด cron์ด ๋์ํ๊ฒ ๋๋ฉด Log๊ฐ ๋จ๋๋ก ์์
ํ ๊ฒ์ด์์.
ํ์ง๋ง ์์ ๊ฐ์ด ์ค์ ์ ํ๊ณ ๊ณ ๋ฏผ์ด ์๊ฒผ์ด์.
์์ ๊ฐ์ด Cron ์์
์ ๋งค ๋ถ๋ง๋ค ์์
ํ๋๋ก ํ์๋๋ฐ, ์ด๋ ๊ฒ ๋๋ฉด Log๋ ์์ฒญ๋๊ฒ ์์ผ๊ฑฐ๊ณ , ์ฃผ๊ธฐ์ ์ผ๋ก ๊ด๋ฆฌ๋ฅผ ํด์ฃผ์ง ์๋๋ค๋ฉด Storage์ ์ฉ๋์ด ๊ฐ๋์ฐจ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ผ๋ ๊ฑฐ์์.
๊ทธ๋์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Logratae(๋ก๊ทธ ๋กํ
์ดํธ)๋ฅผ ์ด์ฉํด์ Log๋ฅผ ๊ด๋ฆฌํ๋ฉด ์ข๊ฒ ๋ค ๋ผ๋ ์๊ฐ์ ํ ๊ฒ์ด์์.
Logrotate๋ ์๋ ์์๋ก ๊ตฌ๋์ด ๋์.
๐ฆ Logrotate๋?
Logrotate๋ Linux์์ ์ฌ์ฉํ ์ ์๋ Log Management Program์ด์์.
Logrotate๋ฅผ ์ด์ฉํ๋ฉด ํน์ Directory์ ์์ด๋ Log๋ฅผ ์ํ๋๋๋ก ๊ด๋ฆฌํ ์ ์๊ณ , ์ด๋ค ๊ธฐ์ค์ ์ ํ๋ฉด ํด๋น์ผ ์ด ์ Log๋ฅผ ์๋์ผ๋ก ์ญ์ ํ์ฌ System ์ฉ๋ ๋ญ๋น๋ฅผ ๋ง์ ์ ์์ด์.
๐ฆ Logrotate ๊ตฌ์กฐ / ์ค์ ๋ฒ
/etc/logrotate.conf : Logrotate ๊ธฐ๋ณธ ์ค์ File
/etc/logrotate.d : Logrotate ๊ฐ๋ณ ์ค์ ํ์ผ Directory (Logrotate Deamon Config File)
/usr/sbin/logrotate : Logrotate Deamon
/etc/cron.daily/logrotate : Logrotate ์์ ๋ด์ญ Log
๐ฝ ์์ํ๊ธฐ
๐ฆ ์ค์น
์ฃผ๋ํ๋์ Redmine์ Synology NAS์ Docker๋ฅผ ์ด์ฉํด์ Redmine Container๋ก ๊ตฌ์ถ์ ํด ๋์์ด์.
ํด๋น Container์ OS๋ Ubuntu์ด๊ณ , Ubuntu Linux์ ๋ง๊ฒ Logrotate๋ฅผ ์ค์นํด ๋ณด๋๋ก ํ ๊ฒ์.
์์ ๊ฐ์ด apt ๋ช
๋ น์ด๋ฅผ ํตํด logrotate๋ฅผ ์ค์นํด ์ค๋๋ค.
๐ฝ ๊ตฌ์ฑํ๊ธฐ
๐ฆ ๊ตฌ์ฑ
๋ณธ๊ฒฉ์ ์ผ๋ก Logrotate๋ฅผ ๊ฐ์ง๊ณ ๋์ ๋ณด๋ ค๊ณ ํด์.
์ต์ด ์๋ ๋ช
๋ น์ด๋ฅผ ์ด์ฉํด์ Logrotate์ ๊ธฐ๋ณธ ์ค์ ์ด ์ด๋ป๊ฒ ๋์ด ์๋์ง ํ์ธํด ๋ณผ๊ฒ์.
cat /etc/logrotate.conf
๐ก ์ฐธ๊ณ ์ฌํญ
Logrotate.conf ๋ถ์
1. ๋ก๊ทธ ํ์ ์ฃผ๊ธฐ
# rotate log files weekly weekly
์ํ๋ ์ฃผ๊ธฐ์ ๋ง์ถ์ด ๋ก๊ทธ ํ์์ ์ค์ .
โ yearly : ๋งค๋
โ monthly : ๋งค๋ฌ
โ weekly : ๋งค์ฃผ
โ daily : ๋งค์ผ
2. ๋ก๊ทธ ํ์ผ ๊ฐ์
# keep 4 weeks worth of backlogs rotate 5
์ ๋ฆฌํ Log File ๊ฐ์ ์ง์ . ํด๋น ๊ฐ์๊ฐ ๋์ด๊ฐ๊ฒ ๋๋ฉด ๋ก๊ทธ ํ์ ์ฃผ๊ธฐ์ ๋ฐ๋ผ ์งํ.
3. ์๋ก์ด Log File ์์ฑ ์ฌ๋ถ
# create new (empty) log files after rotating old ones create
Log File ์ ๋ฆฌ ๋ค ์ถ๊ฐ Log File ์์ฑ ์ฌ๋ถ ์ง์
โ create : Log file ์์ฑ
โ empty : Log File ์์ฑ ์ํจ
4. Log File Name ๋ ์ง ๋ถ์ฌ
# use date as a suffix of the rotated file dateext
Logrotate ์คํ ๋ค Log File์ ๋ ์ง ์ถ๊ฐ
โ dateext : Log File Name์ ๋ ์ง ์ถ๊ฐ
โ #dateext : Log File Name์ ๋ ์ง ์ถ๊ฐ ์ํจ.
5. Log File ์์ถ ์ฌ๋ถ
Log File ์์ถ ์ฌ๋ถ ์ ํ (์์ถ์ ํตํ Log File ์ฉ๋ ๊ฐ์ ํจ๊ณผ)# uncomment this if you want your log files compressed compress
โ compress : Log File ์์ถ
โ #compress : Log File ์์ถ ์ํจ.
6. ๊ฐ๋ณ Log ์ ๋ฆฌ Process Path ์ง์
# RPM packages drop log rotation information into this directory include /etc/logrotate.d
ํน์ Directory๋ฅผ ์ง์ ํ์ฌ Logrotate ๊ด๋ฆฌ.
include [๊ฒฝ๋ก] : Logrotate Process(Daemon) ๊ฒฝ๋ก ์ง์ .
์ฃผ๋ํ๋์ ์์ ๊ฐ์ด GitHub Code๋ฅผ Cloneํ๋ Cron์ Log๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ค์ ๋ด์ฉ์ ์์ฑํด ์ฃผ์์ด์.
๐ก ์ฐธ๊ณ ์ฌํญ
Logrotate.d/[File Name] ๋ถ์
1. Log Path
์ต์ด Log File์ด ์๋ ๊ฒฝ๋ก๋ฅผ ์์ฑํ๊ณ , ์ค๊ดํธ๋ก ๋ฌถ์ด์ค๋ค.
2. ๊ธฐ๊ฐ ๋จ์ ์ค์
โ yearly : ๋งค๋
โ monthly : ๋งค๋ฌ
โ weekly : ๋งค์ฃผ
โ daily : ๋งค์ผ
3. ์ต๋ Log File ๊ฐ์
Log File ์ ๋ฆฌ ์ฃผ๊ธฐ ์ค์
โ rotate 4 : Log File์ด 4๊ฐ๊ฐ ๋๋ฉด ์ญ์
โ empty : Log File ์์ฑ ์ํจ
4. Log File ์กด์ฌ ์ฌ๋ถ ๊ด๋ จ ํ์ธ ๋ฐ ์กฐ์น
โ missingok : Log File์ด ์กด์ฌํ์ง ์์๋ Error๋ฅผ ๋ฐ์ํ์ง ์๋๋ค.
5. Log ๋ด๋ถ ๊ด๋ จ ์ค์
Log File ๋ด์ ๋ด์ฉ์ด ๋น์ด์๋ค๋ฉด Rotate ์๋์ ์ด๋ป๊ฒ ํ ๊ฒ์ธ์ง๋ฅผ ์ค์
โ notifempty : Log๊ฐ ๋น์ด ์๋ค๋ฉด Rotate ์งํ ์ํจ.
6. Log File ์์ถ ์ฌ๋ถ
Log File ์์ถ ์ฌ๋ถ ์ ํ (์์ถ์ ํตํ Log File ์ฉ๋ ๊ฐ์ ํจ๊ณผ)
โ compress : Log File ์์ถ
โ #compress : Log File ์์ถ ์ํจ.
7. Log File ๊ณต์ ์ฌ๋ถ
Log File์ด ์ฌ๋ฌ๊ฐ ์์ด๋ Script๋ฅผ ๊ณต์ ์ฌ๋ถ ์ค์
โ sharedscripts : Script ๊ณต์
8. ์ฌํ ์ถ๊ฐ Script ์คํ
Logrotate๊ฐ ์คํ๋ ๋ค ์ถ๊ฐ๋ก ์คํํ๊ณ ์ถ์ Script๊ฐ ์๋ค๋ฉด ์คํ ๋ช ๋ น
(postrotate์ endscript ์์ Script ๊ฒฝ๋ก ๋ฐ ๋ช ๋ น์ด ์ค์ )
postrotate /server/apache2/bin/apachectl graceful endscript
9. ์ถ๊ฐ ์ฌํญ
rotate 30(์ซ์) : logํ์ผ 30๊ฐ ์ด์ ๋๋ฉด ์ญ์ maxage 30(์ซ์) : 30์ผ ์ด์ ์ง๋ ๋ก๊ทธ ํ์ผ ์ญ์ size : ์ง์ ํ ์ฉ๋์ด ๋๋ฉด ๋ก๊ทธ๋กํ ์ดํธ๋ฅผ ์คํํ๋ค. 10k, 10M ์ด๋ฐ์์ผ๋ก ์ง์ ํ๋ค. create : [๊ถํ ์ ์ ๊ทธ๋ฃน] ์ผ๋ก rotation๋ ๋ก๊ทธํ์ผ ์์ฑ notifempty : log ๋ด์ฉ์ด ์์ผ๋ฉด rotation ํ์ง ์๋๋ค. ifempty : ๋ก๊ทธํ์ผ์ด ๋น์ด์๋ ๊ฒฝ์ฐ์๋ ๋กํ ์ดํธํ๋ค. monthly : ์ ๋จ์๋ก ๋กํ ์ดํธ ํ๋ค. daily : ์ ๋จ์๋ก ๋กํ ์ดํธ ํ๋ค. weekly : ์ ๋จ์๋ก ๋กํ ์ดํธ ํ๋ค. compress : rotate ๋ ๋ก๊ทธ gzip ์์ถ nocompress : ์์ถ์ ์์น ์๋๋ค. mail admin@mail : ๋กํ ์ดํธ ์ค์ ์ ์ํด ๋ณด๊ด์ฃผ๊ธฐ๊ฐ ๋๋ ํ์ผ์ ๋ฉ์ผ๋ก ๋ฐ์กํ๋ค. mailfirst admin@mail : ๋กํ ์ดํธ์ ์ ๊ทํ์ผ ์ด์ ์ ๋ก๊ทธ๋ฅผ ๋ฉ์ผ๋ก ๋ฐ์กํ๋ค. nomail : ๋ฉ์ผ๋ก ํต๋ณด๋ฐ์ง ์์. errors admin@mail : ๋กํ ์ดํธ ์คํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ์ด๋ฉ์ผ๋ก ํต๋ณดํ๋ค. prerotate-endscript : ์ฌ์ด์ ๋ช ๋ น์ด๋ฅผ ๋ก๊ทธํ์ผ ์ฒ๋ฆฌ์ ์ ์คํํ๋ค. postrotate-endscript : ์ฌ์ด์ ๋ช ๋ น์ด๋ฅผ ๋ก๊ทธํ์ผ ์ฒ๋ฆฌํ์ ์คํํ๋ค. extension : ๋กํ ์ดํธ ํ ์์ฑ๋๋ ํ์ผ์ ํ์ ์๋ฅผ ์ง์ ํ๋ค. copytruncate : ์ด์ต์ ์ ๋ฃ์ง ์์ผ๋ฉด ํ์ฌ ์ฌ์ฉ์ค์ธ ๋ก๊ทธ๋ฅผ ๋ค๋ฅธ์ด๋ฆ์ผ๋ก moveํ๊ณ ์๋ก์ด ํ์ผ์ ์์ฑํ๋ค.
๐ฝ ์คํํ๊ธฐ
๐ฆ ์คํ
์ต์ด ์ฃผ๋ํ๋์ ํน์ Log rotate Process๋ฅผ ์คํํ ๊ฑด๋ฐ, ๊ทธ๊ฑธ ํ๋ฉด์ ์ถ๋ ฅํ๊ณ ์ถ์ด์ ์์ ๊ฐ์ด ๋ช
๋ น์ด๋ฅผ ์ฃผ์์ด์.
๊ทธ๋ฐ ๋ค ์๋์ ํ๊ฒ ํ๊ธฐ ์ํด ์์ ๊ฐ์ด ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด ์ฃผ์์ด์.
Logrotate๊ฐ ์ ์ ์๋๋๊ณ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๐ก ์ฐธ๊ณ ์ฌํญ
Logrotate ์คํ ๊ด๋ จ ๋ช ๋ น์ด
1. logrotate ์ ์ฒด ์คํ
/usr/sbin/logrotate -d /etc/logrotate.conf
2. ํน์ Logrotate Process ์คํ
/usr/sbin/logrotate -d /etc/logrotate.d/{Script File Name}
3. Logrotate Debug Mode
/usr/sbin/logrotate -d /etc/logrotate.conf
4. ์คํ ๊ณผ์ ํ๋ฉด ์ถ๋ ฅ
/usr/sbin/logrotate -v /etc/logrotate.conf
5. Logroteate ์ฆ๊ฐ ์คํ
/usr/sbin/logrotate -f /etc/logrotate.d/{Script File Name}
๊ธฐ๋ณธ์ ์ผ๋ก Logrotate๋ Linux์ cron.d๋ก ์คํ๋๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์ฌ์์์ ํด ์ค ํ์๋ ์๋ ๊ฒ์ด์์.
ํ์ง๋ง, ๋น์ฅ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์ถ๋ค๋ฉด ์์ ๊ฐ์ด ๋ช
๋ น์ด๋ฅผ ์ด์ฉํ ์ ์๋ต๋๋ค.
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
'System ์์ ์ค > LINUX' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Linux] SSL/TLS ์ธ์ฆ์ ๋ง๋ค๊ธฐ (0) | 2022.11.16 |
---|---|
[CentOS 7.9] Synology NAS Volume Mount (4) | 2022.11.09 |
[CentOS] 7.9 Minikube ์ค์น (0) | 2022.09.13 |
[CentOS] 7.9 Docker ์ค์น (0) | 2022.09.13 |
[Ubuntu] 22.04 LTS Ansible ์ค์น (0) | 2022.09.06 |