systemd లాగ్లు: సరళంగా journalctl
లాగ్లో సేవా వైఫల్యానికి కారణాన్ని ఎలా కనుగొనాలి, సమయం మరియు స్థాయి ప్రకారం అవసరమైనవి ఎలా ఫిల్టర్ చేయాలి, లాగ్లు మొత్తం డిస్క్ను తినకుండా ఎలా నిరోధించాలి.
23 ఆగస్టు, 2026న నవీకరించబడింది
సిస్టమ్లో జరిగే దాదాపు ప్రతిదీ systemd journal లో నమోదవుతుంది. సర్వీస్ స్టార్ట్ కావడం లేదు, మెషిన్ దానంతట అదే రీబూట్ అయింది, సైట్ 502 ఇస్తోంది — సమాధానం సాధారణంగా అప్పటికే నమోదై ఉంటుంది, దాన్ని ఎలా అడగాలో మీకు తెలిస్తే చాలు.
సరిపోయే ఐదు కమాండ్లు
journalctl -u nginx -n 50 --no-pager # last 50 lines of one service
journalctl -u nginx -f # follow in real time
journalctl -p err -b # only errors since boot
journalctl --since "10 min ago" # everything for the last ten minutes
journalctl -b -1 -e # previous boot log, end of file
ఆఖరిది ఆకస్మిక రీబూట్ తర్వాత ప్రత్యేకంగా ఉపయోగకరం: -b -1 మునుపటి సెషన్ను తెరుస్తుంది, చివర్లో అది kernel panic అయిందా, OOM killer పనిచేసిందా, లేక క్లీన్ షట్డౌన్ అయిందా అనేది మీరు చూడవచ్చు.
-p లోని లెవెల్స్: emerg, alert, crit, err, warning, notice, info, debug. పేర్కొన్న లెవెల్ దానికంటే ముఖ్యమైనవన్నీ కలుపుతుంది.
విఫలమైన సర్వీస్ను డయాగ్నోస్ చేయడం
systemctl status myapp
journalctl -u myapp --since today -p warning
systemctl status ఎగ్జిట్ కోడ్ మరియు చివరి లైన్లను ఇస్తుంది, journalctl పూర్తి చిత్రాన్ని ఇస్తుంది. ఇవి చూడండి:
Main process exited, code=exited, status=1— అప్లికేషన్ లోపంతో దానంతట అదే బయటకు వెళ్లింది, కారణం పైనున్న లైన్లో ఉంటుంది;Failed to start ... Permission denied— ఫైల్, డైరెక్టరీ లేదా 1024 కంటే తక్కువ పోర్ట్పై పర్మిషన్లు;- కర్నెల్ నుండి
Killed process ... (java) total-vm...— OOM killer అమల్లోకి వచ్చింది, Out of memory చదవండి; Start request repeated too quickly— సర్వీస్ క్రాష్-లూప్ అవుతోంది, systemd దాన్ని స్టార్ట్ చేయడం ఆపేసింది; కారణాన్ని సరిచేసిsystemctl reset-failed myappరన్ చేయండి.
సిస్టమ్లో పాడైనవన్నింటి జాబితా systemctl --failed.
సమయం ఆదా చేసే ఫిల్టర్లు
journalctl --since "2026-08-22 03:00" --until "2026-08-22 04:00"
journalctl -u nginx -u php-fpm # several services at once
journalctl _PID=1432 # by specific process
journalctl -k # only kernel messages
journalctl -u sshd | grep "Failed password" | tail -20
grep తో కలపండి, కానీ గుర్తుంచుకోండి: --no-pager లేకుండా journalctl ఒక పేజర్ను తెరుస్తుంది, q తో బయటకు వెళ్లండి.
journal డిస్క్ను తినకుండా చూసుకోవడం
డిఫాల్ట్గా, journal పార్టిషన్లో 10% వరకు పెరుగుతుంది. 40 GB డిస్క్ ఉన్న VDS-1 లో, అది నాలుగు గిగాబైట్లు — గమనించదగ్గది.
journalctl --disk-usage
journalctl --vacuum-size=200M
journalctl --vacuum-time=14d
శాశ్వత పరిమితి /etc/systemd/journald.conf లో ఉంటుంది:
[Journal]
SystemMaxUse=300M
MaxRetentionSec=1month
తర్వాత systemctl restart systemd-journald.
సాధారణ తప్పులు
-uలేకుండా journal చదవడం. సాధారణ స్ట్రీమ్ సర్వీస్ రికార్డులతో నిండిపోతుంది, మీకు కావాల్సిన లైన్ పోతుంది. ఎప్పుడూ దాన్ని ఒక సర్వీస్ లేదా లెవెల్కు కుదించండి.- రీబూట్ తర్వాత హిస్టరీ పోవడం.
/var/log/journalడైరెక్టరీ లేకపోతే, journal మెమరీలో మాత్రమే ఉంటుంది. దాన్ని సృష్టించండి:mkdir -p /var/log/journal && systemd-tmpfiles --create --prefix /var/log/journal. - అక్కడ అప్లికేషన్ లోపాలను వెతకడం. Nginx, PostgreSQL మరియు ఇలాంటివి కూడా
/var/logలోని తమ స్వంత ఫైల్స్లో రాస్తాయి. journal ఖాళీగా ఉంటే, అక్కడ చూడండి.
డిస్క్ నిండిపోయినప్పుడు, స్థలం ఖాళీ అయ్యే వరకు journalctl పనిచేయడానికి నిరాకరించవచ్చు. ఈ పరిస్థితి Out of disk space అనే ఆర్టికల్లో కవర్ చేయబడింది.