Linux Logs सोप्या भाषेत: journalctl, /var/log, rsyslog आणि logrotate उदाहरणांसह
Logs म्हणजे server ची डायरी. पहाटे 3 ला काही बिघडलं तर काय आणि कधी झालं ते logs सांगतात. Linux logs दोन ठिकाणी ठेवतो: systemd journal (journalctl ने वाचा) आणि /var/log मधल्या text files (rsyslog लिहितो). logrotate त्या files ने disk भरू देत नाही. हा chapter प्रत्येक command आणि option एक-एक करून शिकवतो.
या chapter मध्ये तुम्ही काय शिकाल
- /var/log मधल्या मुख्य files ओळखा
- Journal unit, time, boot आणि priority ने filter
- Logs live follow आणि JSON print
- Journal persistent आणि लहान ठेवा
- rsyslog rules लिहा आणि logs server ला पाठवा
- logrotate ने logs rotate
1. रोजचं उदाहरण: दुकानाचं bill book
हे का लागतं?
कोथरूडचं किराणा दुकान प्रत्येक विक्री bill book मधे लिहितं. Book भरलं की मालक ते बांधतो, महिन्याचं label लावतो आणि shelf वर ठेवतो. वर्षानंतर सर्वात जुनी books टाकून देतो. Customer ने तक्रार केली की योग्य book उघडून योग्य तारीख शोधतो.
हे काय आहे?
Bill book = log file. प्रत्येक विक्री लिहिणं = program log lines लिहितो. भरलेलं book बांधणं = logrotate. सर्वात जुनं टाकणं = rotate 7. योग्य तारीख शोधणं = journalctl --since किंवा grep.
कसं करायचं (step by step)
2. /var/log: मुख्य log files
हे का लागतं?
अनेक tools आणि जुनी apps साध्या text files लिहितात. कोणती file उघडायची ते माहीत हवं.
हे काय आहे?
/var/log मधे text logs. बहुतेकांना वाचायला sudo लागतो. त्यांवर tail -n, tail -f, less +F आणि grep.
| File | आत काय |
|---|---|
| /var/log/messages or syslog | सामान्य system messages |
| /var/log/secure or auth.log | Logins, sudo, SSH |
| /var/log/dmesg, kern.log | Kernel messages |
| /var/log/cron | cron job runs |
| /var/log/nginx/ | Web access आणि error logs |
| /var/log/dnf.log or apt/history.log | Package installs |
कसं करायचं (step by step)
- Files बघा.
ls -lh /var/log | head -5
Output:
-rw-------. 1 root root 1.2M Oct 25 12:10 messages
-rw-------. 1 root root 210K Oct 25 12:09 secure
-rw-------. 1 root root 18K Oct 25 12:00 cron
drwxr-xr-x. 2 root root 4.0K Oct 25 00:00 nginx
याचा अर्थ: बहुतेक फक्त root.
- शेवटच्या 5 SSH login lines.
sudo tail -n 5 /var/log/secure
Output:
Oct 25 12:09:41 web1 sshd[5120]: Accepted publickey for ec2-user from 49.36.1.10 port 51022 ssh2
याचा अर्थ: कोणी, कुठून login.
- Failed logins.
sudo grep 'Failed password' /var/log/secure | tail -n 3
Output:
Oct 25 03:12:07 web1 sshd[901]: Failed password for root from 185.22.1.9 port 4410 ssh2
याचा अर्थ: Brute force प्रयत्न.
3. journalctl: संपूर्ण journal वाचा
हे का लागतं?
प्रत्येक systemd service चं output journal मधे. एक command सगळं वाचतो.
हे काय आहे?
नुसतं journalctl सगळ्या entries सर्वात जुन्यापासून pager मधे. -r = नवीन आधी. -n 20 = शेवटच्या 20. --no-pager = थेट print. -e = शेवटी जा. सगळं बघायला sudo किंवा systemd-journal (किंवा adm) group.
कसं करायचं (step by step)
- शेवटच्या 3 entries.
sudo journalctl -n 3 --no-pager
Output:
Oct 25 12:10:01 web1 CROND[5201]: (root) CMD (/usr/local/bin/backup.sh)
Oct 25 12:10:02 web1 systemd[1]: Started Session 41 of User ec2-user.
Oct 25 12:10:05 web1 sudo[5222]: ec2-user : COMMAND=/bin/journalctl -n 3
याचा अर्थ: Time, host, program[PID], message.
- नवीन आधी.
sudo journalctl -r -n 2 --no-pager
Output:
Oct 25 12:10:05 web1 sudo[5222]: ...
Oct 25 12:10:02 web1 systemd[1]: ...
याचा अर्थ: उलटा क्रम.
4. journalctl -u: एक service
हे का लागतं?
तुम्हाला एका बिघडलेल्या service ची काळजी, पूर्ण system ची नाही.
हे काय आहे?
-u NAME फक्त ती unit. अनेकांसाठी -u परत. -n, -f, --since सोबत. timers आणि इतर units ना पण.
कसं करायचं (step by step)
- API च्या शेवटच्या 20 lines.
journalctl -u shop-api -n 20 --no-pager
Output:
Oct 25 12:01:44 web1 node[4410]: Error: cannot connect to DB at 10.0.0.9:5432
Oct 25 12:01:44 web1 systemd[1]: shop-api.service: Main process exited, code=exited, status=1/FAILURE
याचा अर्थ: App error आणि systemd चं मत.
- दोन units एकत्र.
journalctl -u nginx -u php-fpm -n 10 --no-pager
Output:
(lines from both, mixed by time)
याचा अर्थ: Request chains साठी छान.
5. journalctl -f: live follow
हे का लागतं?
Fix test करताना नव्या log lines लगेच दिसायला हव्या.
हे काय आहे?
-f नव्या lines print करत राहतो, tail -f सारखं. थांबायला Ctrl+C. एकत्र: journalctl -fu NAME. tail -F FILE text files साठी तेच, rotation टिकतो.
कसं करायचं (step by step)
- Restart करताना API बघा.
journalctl -fu shop-api
Output:
Oct 25 12:20:11 web1 systemd[1]: Started Shop API.
Oct 25 12:20:12 web1 node[5301]: listening on :3000
याचा अर्थ: दुसऱ्या terminal मधे उघडा.
- nginx errors follow.
sudo tail -F /var/log/nginx/error.log
Output:
2026/10/25 12:21:03 [error] 1013#0: *77 connect() failed (111: Connection refused) while connecting to upstream
याचा अर्थ: -F rotation नंतर परत उघडतो.
6. --since आणि --until: time windows
हे का लागतं?
Alert सांगतो 'दुपारी 2:15 ला errors'. फक्त तो window हवा.
हे काय आहे?
--since आणि --until घेतात '2026-10-25 14:00', 'today', 'yesterday', '1 hour ago', '-30m'. UTC दिलं नाही तर local time.
कसं करायचं (step by step)
- Incident window.
journalctl -u shop-api --since '2026-10-25 14:10' --until '2026-10-25 14:20' --no-pager | wc -l
Output:
42
याचा अर्थ: 40,000 नाही, 42 lines.
- शेवटची 30 minutes.
journalctl --since '30 min ago' -p err --no-pager
Output:
Oct 25 12:01:44 web1 node[4410]: Error: cannot connect to DB
याचा अर्थ: पटकन health बघा.
7. -p: priority ने filter
हे का लागतं?
बहुतेक lines info. Incident मधे फक्त errors हवे.
हे काय आहे?
Levels: 0 emerg, 1 alert, 2 crit, 3 err, 4 warning, 5 notice, 6 info, 7 debug. -p err म्हणजे err आणि त्याहून गंभीर. -p warning..err range.
कसं करायचं (step by step)
- या boot चे errors.
journalctl -b -p err --no-pager | head -3
Output:
Oct 25 09:10:05 web1 kernel: xfs: Ending clean mount
Oct 25 12:01:44 web1 node[4410]: Error: cannot connect to DB
याचा अर्थ: Fix करायची छोटी list.
- फक्त warnings.
journalctl -p warning..warning --since today --no-pager | wc -l
Output:
17
याचा अर्थ: नेमका एक level.
8. -b आणि --list-boots: प्रत्येक boot चे logs
हे का लागतं?
Crash आणि reboot नंतर reboot आधीचे logs हवे.
हे काय आहे?
-b = हा boot. -b -1 = मागचा boot. --list-boots सगळे saved boots. जुने boots ठेवायला persistent journal हवं.
कसं करायचं (step by step)
- Boots list.
journalctl --list-boots --no-pager
Output:
-1 6a1f... Sat 2026-10-24 08:01:10 IST—Sun 2026-10-25 09:09:50 IST
0 9c2e... Sun 2026-10-25 09:10:00 IST—Sun 2026-10-25 12:22:00 IST
याचा अर्थ: दोन boots saved.
- मागच्या boot चा शेवट.
journalctl -b -1 -n 5 --no-pager
Output:
Oct 25 09:09:48 web1 kernel: Out of memory: Killed process 4410 (node)
याचा अर्थ: Reboot आधी OOM ने app मारलं.
9. -k आणि dmesg: kernel messages
हे का लागतं?
Disk errors, out-of-memory kills आणि USB problems kernel सांगतो.
हे काय आहे?
journalctl -k या boot चे kernel messages. dmesg -T human times सह kernel ring buffer. dmesg -w follow. 'Out of memory', 'I/O error' शोधा.
कसं करायचं (step by step)
- OOM kills शोधा.
sudo dmesg -T | grep -i 'out of memory'
Output:
[Sun Oct 25 09:09:48 2026] Out of memory: Killed process 4410 (node) total-vm:2.1GB
याचा अर्थ: Kernel ने app मारलं.
- फक्त kernel errors.
journalctl -k -p err --no-pager
Output:
Oct 25 09:10:03 web1 kernel: nvme1n1: I/O error, dev nvme1n1, sector 2048
याचा अर्थ: Disk problem.
10. -o: output formats, json आणि grep
हे का लागतं?
कधी script किंवा log tool साठी नेमके fields हवे, किंवा फक्त message.
हे काय आहे?
-o short (default), -o short-iso (ISO times), -o cat (फक्त message), -o json किंवा json-pretty (सगळे fields). -g PATTERN (किंवा --grep) messages शोधतो. _PID=, _UID=, SYSLOG_IDENTIFIER= field ने filter.
कसं करायचं (step by step)
- एका line चं JSON.
journalctl -u shop-api -n 1 -o json-pretty --no-pager | head -5
Output:
{
"_PID" : "4410",
"PRIORITY" : "3",
"MESSAGE" : "Error: cannot connect to DB at 10.0.0.9:5432",
याचा अर्थ: प्रत्येक field आहे.
- Message शोधा.
journalctl -u shop-api -g 'timeout' --since today --no-pager | wc -l
Output:
12
याचा अर्थ: आज 12 timeouts.
- फक्त messages.
journalctl -u shop-api -n 2 -o cat --no-pager
Output:
listening on :3000
GET /health 200
याचा अर्थ: Dates नाहीत, वाचायला सोपं.
11. Persistent journal, --disk-usage आणि --vacuum
हे का लागतं?
काही systems वर journal RAM मधे आणि reboot ला गायब. इतरांवर हळूहळू disk भरतो.
हे काय आहे?
/var/log/journal असेल तर logs reboot टिकतात (/etc/systemd/journald.conf मधे Storage=persistent). --disk-usage size. --vacuum-size=500M किंवा --vacuum-time=14d जुन्या files delete. SystemMaxUse=1G limit.
कसं करायचं (step by step)
- आत्ताची size.
journalctl --disk-usage
Output:
Archived and active journals take up 2.3G in the file system.
याचा अर्थ: लहान disk साठी खूप.
- 500 MB पर्यंत कमी.
sudo journalctl --vacuum-size=500M
Output:
Vacuuming done, freed 1.8G of archived journals from /var/log/journal/9c2e....
याचा अर्थ: जुने archives गेले.
- Persistent आणि capped.
sudo mkdir -p /var/log/journal && printf '[Journal]\nStorage=persistent\nSystemMaxUse=1G\n' | sudo tee /etc/systemd/journald.conf.d/size.conf && sudo systemctl restart systemd-journald
Output:
[Journal]
Storage=persistent
SystemMaxUse=1G
याचा अर्थ: Reboot टिकतो, 1 GB पेक्षा जास्त नाही.
12. logger: स्वतःच्या log lines लिहा
हे का लागतं?
तुमच्या shell scripts ने बाकी सगळ्यांच्या जागीच नोंद ठेवायला हवी.
हे काय आहे?
logger 'message' syslog/journal ला लिहितो. -t TAG program नाव. -p user.err priority. मग journalctl -t TAG ने शोधा.
कसं करायचं (step by step)
- Backup script मधून log.
logger -t backup -p user.err 'backup failed: disk full'
Output:
(no output)
याचा अर्थ: आता journal आणि /var/log/messages मधे.
- शोधा.
journalctl -t backup -n 1 --no-pager
Output:
Oct 25 12:30:00 web1 backup[5410]: backup failed: disk full
याचा अर्थ: Tag मुळे शोधणं सोपं.
13. rsyslog: rules आणि remote logging
हे का लागतं?
App logs वेगळ्या file मधे हवे, किंवा सगळ्या servers चे logs एका central box वर, server मेला तरी टिकतील.
हे काय आहे?
Config /etc/rsyslog.conf आणि /etc/rsyslog.d/*.conf. Rule म्हणजे 'facility.priority destination'. उदा. local0.* /var/log/myapp.log. @host:514 UDP, @@host:514 TCP. rsyslogd -N1 ने तपासा, मग rsyslog restart.
कसं करायचं (step by step)
- local0 वेगळ्या file मधे.
echo 'local0.* /var/log/myapp.log' | sudo tee /etc/rsyslog.d/30-myapp.conf && sudo rsyslogd -N1 && sudo systemctl restart rsyslog
Output:
rsyslogd: End of config validation run. Bye.
याचा अर्थ: Config valid.
- Test करा.
logger -p local0.info 'order 1001 placed' && sudo tail -n1 /var/log/myapp.log
Output:
Oct 25 12:35:10 web1 ec2-user: order 1001 placed
याचा अर्थ: Rule चालतो.
- सगळं TCP ने log server ला.
echo '*.* @@10.0.0.50:514' | sudo tee /etc/rsyslog.d/90-forward.conf && sudo systemctl restart rsyslog
Output:
*.* @@10.0.0.50:514
याचा अर्थ: दोन @ म्हणजे TCP.
14. logrotate: logs ने disk भरू देऊ नका
हे का लागतं?
App log 50 GB होऊन पूर्ण server थांबवू शकतो. logrotate हवं तेवढंच ठेवतो.
हे काय आहे?
Main config /etc/logrotate.conf, app configs /etc/logrotate.d/ मधे. नेहमीचे options: daily/weekly, rotate 7, compress, delaycompress, missingok, notifempty, maxsize 100M, create 0640 user group, copytruncate (reopen न करणाऱ्या apps साठी), postrotate ... endscript. Timer किंवा cron ने रोज चालतो. -d = dry run, -f = आत्ता force.
| Option | अर्थ |
|---|---|
| rotate 7 | 7 जुन्या files ठेवा |
| compress | जुन्या files gzip |
| delaycompress | दुसऱ्या जुन्या file पासून compress |
| missingok | Log नसेल तर error नाही |
| notifempty | रिकामे logs skip |
| copytruncate | Copy करून जागीच रिकामं |
कसं करायचं (step by step)
- App साठी rule.
sudo tee /etc/logrotate.d/shop <<'X'
/var/log/shop/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 shop shop
postrotate
systemctl reload shop-api >/dev/null 2>&1 || true
endscript
}
X
Output:
(file text)
याचा अर्थ: एक आठवड्याचे logs, compressed.
- Dry run.
sudo logrotate -d /etc/logrotate.d/shop
Output:
rotating pattern: /var/log/shop/*.log after 1 days (7 rotations)
considering log /var/log/shop/api.log
याचा अर्थ: काही बदलत नाही; फक्त सांगतो.
- आत्ता force आणि तपासा.
sudo logrotate -f /etc/logrotate.d/shop && ls /var/log/shop
Output:
api.log api.log.1
याचा अर्थ: पुढचा run api.log.2.gz बनवेल.
15. अनेक industries मधली खरी उदाहरणं
हे का लागतं?
तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.
हे काय आहे?
प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.
कसं करायचं (step by step)
| Team आणि शहर | ते कसं वापरतात | Command |
|---|---|---|
| Pooja, insurance, Pune | रोज सकाळी auth logs मधे failed logins | grep 'Failed password' /var/log/secure |
| Liam, streaming, Dublin | Deploys मधे service live follow | journalctl -fu player-api |
| Fatima, telecom, Cairo | सगळ्या servers चे logs central box ला | *.* @@logs.internal:514 |
| Chen, factory sensors, Shenzhen | लहान devices वर journal size cap | journalctl --vacuum-size=200M |
| Ana, retail, São Paulo | मोठे app logs रोज rotate | logrotate -f /etc/logrotate.d/pos |
| Vikram, hospital, Nagpur | Crash reboot आधीचे logs | journalctl -b -1 -p err |
16. नेहमीच्या errors आणि त्यांचे fixes
हे का लागतं?
हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.
हे काय आहे?
आधी नेमका message वाचा. मग खालच्या row शी जुळवा.
कसं करायचं (step by step)
| दिसणारा error | का होतं | Fix कसा करायचा |
|---|---|---|
No journal files were found. | Persistent नाही आणि त्या boot चं काही नाही, किंवा permission नाही | sudo वापरा; पुढच्या boots साठी /var/log/journal.sudo mkdir -p /var/log/journal |
Hint: You are currently not seeing messages from other users and the system. | User systemd-journal/adm मधे नाही | sudo किंवा group जोडा.sudo usermod -aG systemd-journal $USER |
Failed to parse timestamp: 2pm | journalctl ला format माहीत नाही | 'YYYY-MM-DD HH:MM' किंवा '1 hour ago'.journalctl --since '2026-10-25 14:00' |
Data from the specified boot (-1) is not available | Journal persistent नाही | Persistent storage चालू करा.sudo mkdir -p /var/log/journal |
tail: cannot open '/var/log/secure' for reading: Permission denied | फक्त root ची file | sudo वापरा.sudo tail /var/log/secure |
No space left on device (from huge logs) | Logs कधी rotate झाले नाहीत | मोठ्या files शोधा, rotate आणि vacuum.sudo du -sh /var/log/* | sort -h | tail |
error: skipping "/var/log/shop/api.log" because parent directory has insecure permissions | Folder group/others ना writable | su line जोडा किंवा permissions fix.su shop shop |
rsyslogd: error during parsing file /etc/rsyslog.d/30-myapp.conf | Rule मधे typo | Restart आधी validate.sudo rsyslogd -N1 |
Disk still full after deleting a log | App अजून deleted file उघडी ठेवून | App restart किंवा delete ऐवजी truncate.sudo lsof +L1 |
Logs stop after rotation | App जुन्या renamed file ला लिहितं | postrotate मधे reload किंवा copytruncate.copytruncate |
17. Troubleshooting step by step
हे का लागतं?
हवा log सापडत नसेल तर program कुठे लिहितो ते तपासा, मग filter करा.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- systemd service आहे का? Unit logs.
journalctl -u shop-api -n 50 --no-pager
- ते लिहितं त्या files.
sudo lsof -p $(systemctl show -p MainPID --value shop-api) | grep log
- Time आणि priority ने कमी.
journalctl --since '1 hour ago' -p warning --no-pager
- Kernel बाजू.
journalctl -k -p err --no-pager
- Logs चा disk use.
journalctl --disk-usage; sudo du -sh /var/log
- Rotation config test.
sudo logrotate -d /etc/logrotate.conf
18. Lab 1: journalctl ने incident तपासा
हे का लागतं?
logger ने log lines बनवा, मग tag, priority आणि time ने शोधा, आणि JSON print.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- काही lines बनवा.
for i in 1 2 3; do logger -t lab -p user.info "order $i ok"; done; logger -t lab -p user.err 'payment gateway timeout'
Output:
(no output)
- Tag ने.
journalctl -t lab --no-pager -o cat
Output:
order 1 ok
order 2 ok
order 3 ok
payment gateway timeout
- फक्त errors.
journalctl -t lab -p err --no-pager -o cat
Output:
payment gateway timeout
- शेवटची 10 minutes.
journalctl -t lab --since '10 min ago' --no-pager | wc -l
Output:
4
- JSON fields.
journalctl -t lab -p err -o json-pretty --no-pager | grep -E 'PRIORITY|MESSAGE'
Output:
"PRIORITY" : "3",
"MESSAGE" : "payment gateway timeout",
19. Lab 2: rsyslog आणि logrotate ने app ची स्वतःची log file
हे का लागतं?
local1 ला /var/log/lab.log मधे पाठवा आणि रोज rotate, 3 copies.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- rsyslog rule.
echo 'local1.* /var/log/lab.log' | sudo tee /etc/rsyslog.d/40-lab.conf && sudo rsyslogd -N1 && sudo systemctl restart rsyslog
Output:
rsyslogd: End of config validation run. Bye.
- लिहा आणि वाचा.
logger -p local1.info 'lab line' && sudo tail -n1 /var/log/lab.log
Output:
Oct 25 12:40:00 web1 ec2-user: lab line
- Rotate rule.
printf '/var/log/lab.log {\n daily\n rotate 3\n compress\n missingok\n notifempty\n}\n' | sudo tee /etc/logrotate.d/lab
Output:
/var/log/lab.log {
- Force आणि बघा.
sudo logrotate -f /etc/logrotate.d/lab && ls /var/log/lab.log*
Output:
/var/log/lab.log.1.gz
- साफ.
sudo rm /etc/rsyslog.d/40-lab.conf /etc/logrotate.d/lab && sudo systemctl restart rsyslog
Output:
(no output)
Ravindra Bagale's Tip
In an incident, start with three filters: -u for the service, --since for the time, -p err for the level. Most problems show up in under 20 lines.
Ravindra Bagale's Tip – मराठी
Incident मधे तीन filters ने सुरुवात: service साठी -u, वेळेसाठी --since, level साठी -p err. बहुतेक problems 20 lines च्या आत दिसतात.
Ravindra Bagale's Tip – हिंदी
Incident में तीन filters से शुरू करें: service के लिए -u, समय के लिए --since, level के लिए -p err. ज़्यादातर problems 20 lines के अंदर दिख जाती हैं.
20. नेहमी विचारले जाणारे प्रश्न
प्र. journalctl की /var/log?
दोन्ही. journalctl मधे प्रत्येक systemd service; काही apps फक्त /var/log मधे files.
प्र. Reboot नंतर जुने logs का गायब?
Journal volatile. /var/log/journal बनवा.
प्र. Logs किती दिवस?
journald size limits ने; files logrotate rotate count ने.
प्र. Log file delete करणं safe?
: > file ने truncate किंवा rotate चांगलं. उघडी file delete केल्याने जागा मिळत नाही.
प्र. Facility म्हणजे?
auth, cron, daemon, local0-7 सारखी category, rsyslog rules वापरतात.
प्र. logrotate कधी चालतो?
logrotate.timer किंवा /etc/cron.daily ने रोज.
प्र. copytruncate की postrotate reload?
Reload स्वच्छ; copytruncate मधे काही lines जाऊ शकतात.
प्र. Logs UTC मधे?
journalctl --utc.
21. मुलाखत प्रश्न आणि उत्तरं
Beginner level
प्र. एका service चे logs?
journalctl -u NAME.
प्र. Logs live follow?
journalctl -f किंवा tail -f FILE.
प्र. SSH login logs कुठे?
/var/log/secure किंवा /var/log/auth.log.
प्र. logrotate काय करतो?
Schedule ने जुने logs rename, compress आणि delete.
Mid level level
प्र. मागच्या boot चे logs?
journalctl -b -1, persistent journal हवा.
प्र. शेवटच्या तासातले फक्त errors?
journalctl --since '1 hour ago' -p err.
प्र. Journal लहान कसा?
journalctl --vacuum-size किंवा --vacuum-time; SystemMaxUse.
प्र. rsyslog मधे @ vs @@?
UDP vs TCP forwarding.
Senior level
प्र. Disk full पण du मधे /var/log लहान. का?
Deleted files अजून उघड्या; lsof +L1 ने शोधा, holder restart.
प्र. 200 servers साठी central logging design.
TCP+TLS वर rsyslog/journald forward किंवा agent ने central store, retention, indexing आणि alerts सह.
प्र. Structured (JSON) logs का?
Machines fields नेमके filter करतात; journald fields ठेवतो; tools index करतात.
प्र. Rotation मधे logs न गमावता?
postrotate मधे app reload/HUP; busy logs साठी copytruncate टाळा.
घरी करून बघा
- प्रत्येक run ला logger -t home ने 'hello' लिहिणारी script बनवा. 5 वेळा चालवा आणि journalctl -t home ने lines मोजा.
- तुमच्या machine वर journalctl --disk-usage तपासा. 300M cap असलेली journald.conf.d file लिहा.
सराव Tasks
Vidarbha Cotton Mills हा नागपूर मधला वस्त्रोद्योग व्यवसाय आहे. Ganesh Wankhede त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 16
सोपं एका service चे logs
का: Logs काय चुकलं ते सांगतात.
काय करायचं: nginx चे journal logs.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Live logs
का: Logs काय चुकलं ते सांगतात.
काय करायचं: sshd logs live follow.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं शेवटच्या 50 lines
का: Logs काय चुकलं ते सांगतात.
काय करायचं: शेवटच्या 50 journal lines.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Journal size
का: Logs काय चुकलं ते सांगतात.
काय करायचं: Journal किती disk वापरतो.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Log line लिहा
का: Logs काय चुकलं ते सांगतात.
काय करायचं: backup tag सह "backup done" system log मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Classic log file
का: Logs काय चुकलं ते सांगतात.
काय करायचं: /var/log/messages live follow.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम हा boot
का: Logs काय चुकलं ते सांगतात.
काय करायचं: फक्त current boot चे logs.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम मागचा boot
का: Logs काय चुकलं ते सांगतात.
काय करायचं: मागच्या boot चे logs.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम फक्त errors
का: Logs काय चुकलं ते सांगतात.
काय करायचं: फक्त error आणि त्याहून वाईट.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम वेळेपासून
का: Logs काय चुकलं ते सांगतात.
काय करायचं: एक तासापूर्वीपासून logs.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Kernel messages
का: Logs काय चुकलं ते सांगतात.
काय करायचं: Journal मधून फक्त kernel messages.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम rsyslog restart
का: Logs काय चुकलं ते सांगतात.
काय करायचं: Config edit नंतर rsyslog restart.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Journal छोटा
का: Logs काय चुकलं ते सांगतात.
काय करायचं: Journal 500M पर्यंत कमी.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड JSON output
का: Logs काय चुकलं ते सांगतात.
काय करायचं: nginx logs प्रत्येक line JSON.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड logrotate test
का: Logs काय चुकलं ते सांगतात.
काय करायचं: nginx logrotate config dry-run.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड Rotation force
का: Logs काय चुकलं ते सांगतात.
काय करायचं: nginx logs आत्ता rotate करायला force.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
22. संबंधित chapters
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- /var/log मधे text logs; journalctl journal वाचतो.
- -u, -f, --since, -p आणि -b मुख्य filters.
- Kernel साठी -k आणि dmesg, fields साठी -o json.
- Persistent journal + vacuum history आणि disk safe.
- logger लिहितो, rsyslog route आणि forward करतो.
- logrotate rotate, compress आणि जुने delete करतो.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








अजून cards: Ravi Sir's Cards.