VPN ಆರೋಗ್ಯ ಪರಿಶೀಲನೆ ಪ್ರತಿ ನಿಮಿಷಕ್ಕೆ ಒಂದು ಸಾಲು ಸೇರಿಸುವುದು ಮೌನವಾಗಿ ಎರಡನೇ ಕರ್ತವ್ಯವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ: ಆ ಸಾಲುಗಳು ಡಿಸ್ಕ್‌ನಿಂದ ಹೇಗೆ ಹೊರಡುತ್ತವೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುವುದು. ಸುರಂಗವನ್ನು ಸರಿಪಡಿಸುವುದು ಆ ಕರ್ತವ್ಯಕ್ಕೆ ಏನನ್ನೂ ಮಾಡುವುದಿಲ್ಲ, ಮತ್ತು ಫೈಲ್‌ನ ಹೆಸರು ಬದಲಿಸುವುದು ಹಳೆಯ ವಿವರಣೆಯನ್ನು ಇನ್ನೂ ಹಿಡಿದಿರುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮರುನಿರ್ದೇಶಿಸುವುದಿಲ್ಲ. ಮೊದಲು ಗಮ್ಯಸ್ಥಾನದ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರಿಸಿ, ನಂತರ ತಿರುಗುವಿಕೆಯನ್ನು ಬರಹಗಾರ ಅದನ್ನು ತೆರೆಯುವ ರೀತಿಗೆ ಹೊಂದಿಸಿ.

ತಿರುಗುವಿಕೆ ನೀತಿಗಿಂತ ಮೊದಲು ಗಮ್ಯಸ್ಥಾನವನ್ನು ಆರಿಸಿ

ತನ್ನ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಈಗಾಗಲೇ ಜರ್ನಲ್‌ಗೆ ಕಳುಹಿಸುವ systemd ಘಟಕವು ಧಾರಣೆಯನ್ನು ಒಂದೇ ಸ್ಥಳದಲ್ಲಿ ಇಡುತ್ತದೆ. journald SystemMaxUse ಮತ್ತು MaxRetentionSec ನಂತಹ ಮಿತಿಗಳನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅಲ್ಲಿ ಲಾಗ್ ಮಾಡುವ ಕಾವಲುಗಾರ ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಕೆಲಸವಿಲ್ಲದೆ ಮಿತಿಯನ್ನು ಪಡೆಯುತ್ತದೆ. ಅದರ ಪಕ್ಕದಲ್ಲಿ ಎರಡನೇ ಮಿತಿಯಿಲ್ಲದ ಫೈಲ್ ಸೇರಿಸುವುದು ಲಾಭವಿಲ್ಲದೆ ನಿರ್ವಹಣೆಯನ್ನು ದ್ವಿಗುಣಗೊಳಿಸುತ್ತದೆ.

ಮೀಸಲಾದ ಫೈಲ್ ತನ್ನ ಸ್ಥಾನವನ್ನು ಗಳಿಸುವುದು ಬೇರೆ ಯಾವುದೋ ಅದನ್ನು ಓದಿದಾಗ: ಪಾರ್ಸರ್, ಆಡಿಟ್ ರಫ್ತು, ಅಥವಾ ಸ್ಥಿರ ಮಾರ್ಗವನ್ನು ನಿರೀಕ್ಷಿಸುವ ಪುಟ. ಆ ನಿರ್ಧಾರವಾದ ನಂತರ, ಫೈಲ್‌ಗೆ ಮಾಲೀಕ, ಮೋಡ್ ಮತ್ತು ತಿರುಗುವಿಕೆ ನೀತಿ ಒಟ್ಟಿಗೆ ಬರೆಯಬೇಕು, ಏಕೆಂದರೆ ಮೂರೂ ಒಂದು ಗುಂಪಾಗಿಯೇ ಸರಿ. ಯಾರಾದರೂ ರಚಿಸಬಹುದಾದ ಮಾರ್ಗವೇ ಯಾರಾದರೂ ಬದಲಾಯಿಸಬಹುದಾದ ಮಾರ್ಗ, ಆದ್ದರಿಂದ ಡೈರೆಕ್ಟರಿ ಅನುಮತಿಗಳು ಅದೇ ಟಿಪ್ಪಣಿಗೆ ಸೇರುತ್ತವೆ. ಎಲ್ಲವನ್ನೂ ಪರಿಶೀಲನೆಯ ಪಕ್ಕದಲ್ಲಿ ಬರೆಯಿರಿ ಮತ್ತು ಮುಂದಿನ ಸಂಪಾದನೆ ಅದೇ ಸತ್ಯಗಳಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.

ಬರಹಗಾರನಿಗೆ ಹೊಂದುವಂತೆ ಬ್ಲಾಕ್ ಬರೆಯಿರಿ

ಪ್ರತಿ ಕರೆಯಲ್ಲಿ ಮಾರ್ಗವನ್ನು ತೆರೆಯುವ, ಒಂದು ಸಾಲು ಸೇರಿಸುವ ಮತ್ತು ನಿರ್ಗಮಿಸುವ ಬರಹಗಾರನಿಂದ ಪ್ರಾರಂಭಿಸಿ. ಆ ಮಾದರಿ ಪ್ರಕ್ರಿಯೆಯ ಯಾವುದೇ ಸಹಕಾರವಿಲ್ಲದೆ ತಿರುಗುವಿಕೆಯನ್ನು ದಾಟುತ್ತದೆ, ಏಕೆಂದರೆ ಮುಂದಿನ ಓಟವು ಆ ಮಾರ್ಗದಲ್ಲಿ ಪ್ರಸ್ತುತ ಇರುವ ಫೈಲ್ ಅನ್ನು ತೆರೆಯುತ್ತದೆ. ಕೆಳಗಿನ ಬ್ಲಾಕ್ ಒಂದು ವಾರದ ಆವೃತ್ತಿಗಳನ್ನು ಇಟ್ಟುಕೊಂಡು ಬರಹಗಾರನಿಗೆ ಬೇಕಾದ ಮಾಲೀಕ ಮತ್ತು ಮೋಡ್‌ನೊಂದಿಗೆ ಫೈಲ್ ಅನ್ನು ಮತ್ತೆ ರಚಿಸುತ್ತದೆ:

/var/log/vpn-watchdog.log {
    daily
    rotate 7
    create 0600 root root
    missingok
    notifempty
}

logrotate ಕೈಪಿಡಿ ಎಣಿಕೆಯನ್ನು ಇಟ್ಟುಕೊಳ್ಳಲಾದ ತಿರುಗಿಸಿದ ಆವೃತ್ತಿಗಳ ಸಂಖ್ಯೆ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ, ಏಳು ದಿನಗಳ ಇತಿಹಾಸದ ಖಾತರಿಯಾಗಿ ಅಲ್ಲ, ಮತ್ತು daily ಕೀವರ್ಡ್ ತನ್ನದೇ ಶೆಡ್ಯೂಲರ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಬದಲು ಕೆಲಸ ಚಲಿಸುವಾಗ ಮೌಲ್ಯಮಾಪನವಾಗುತ್ತದೆ. ಹೆಚ್ಚಿನ ವಿತರಣೆಗಳಲ್ಲಿ systemd ಟೈಮರ್ ಅಥವಾ cron ನಮೂದು ಈಗಾಗಲೇ ಆ ಕರೆಯನ್ನು ಹೊಂದಿದೆ, ಆದ್ದರಿಂದ ಎರಡನೆಯದನ್ನು ಸೇರಿಸುವ ಮೊದಲು ಯಾವುದು ಇದೆ ಎಂದು ಪರಿಶೀಲಿಸಿ. ಮಾಲೀಕತ್ವವನ್ನು ಹೊಂದಿಸುವುದು ಧಾರಣೆ ಸಂಖ್ಯೆಗಿಂತ ಹೆಚ್ಚು ಮುಖ್ಯ. root ಗೆ ಮಾತ್ರವಿರುವ ಮೋಡ್ ಅನ್ನು ಸೇವಾ ಖಾತೆ ಬರೆಯುವ ಫೈಲ್‌ಗೆ ನಕಲಿಸುವುದು ಮುಂದಿನ ತಿರುಗುವಿಕೆಯಲ್ಲಿ ಲಾಗಿಂಗ್ ಅನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ, ಮತ್ತು ವೈಫಲ್ಯವು ಗಂಟೆಗಳ ನಂತರ ದೋಷವಾಗಿ ಅಲ್ಲ, ಹಳೆಯ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್ ಆಗಿ ಕಾಣುತ್ತದೆ. ಬೇರೆಡೆಯಿಂದ ಬ್ಲಾಕ್ ನಕಲಿಸುವ ಮೊದಲು ಬರಹಗಾರನ ಬಳಕೆದಾರರನ್ನು ದೃಢೀಕರಿಸಿ.

ಎಂದಿಗೂ ಮರುತೆರೆಯದ ಬರಹಗಾರನಿಗೆ ಬೇರೆ ಪರಿಹಾರ ಬೇಕು

ತೆರೆದ ವಿವರಣೆಯನ್ನು ಹಿಡಿದಿರುವ ದೀರ್ಘಕಾಲದ ಪ್ರಕ್ರಿಯೆ ಮರುನಾಮಕರಣಗೊಂಡ inode ಗೆ ಬರೆಯುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ. ಜಾಗ ಬಿಡುಗಡೆಯಾಗುವುದಿಲ್ಲ ಮತ್ತು ಕಾಣುವ ಫೈಲ್ ಬೆಳೆಯುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ, ಇದು inode ಪರಿಶೀಲಿಸುವವರೆಗೆ ಮುರಿದ ತಿರುಗುವಿಕೆಯಂತೆ ಕಾಣುತ್ತದೆ. ಒಂದೋ ಪ್ರಕ್ರಿಯೆಗೆ ಮರುತೆರೆಯುವುದನ್ನು ಕಲಿಸಿ, ಅಥವಾ ತಿರುಗುವಿಕೆಯನ್ನು ಮರುನಾಮಕರಣದ ಬದಲು ನಕಲಿಸಿ ಕತ್ತರಿಸಲು ಮಾಡಿ.

ಮರುತೆರೆಯುವ ಮಾರ್ಗವು ಸಾಫ್ಟ್‌ವೇರ್ ಬೆಂಬಲಿಸುವಲ್ಲಿ ಹೆಚ್ಚು ಸ್ವಚ್ಛವಾಗಿದೆ: ದಾಖಲಿತ ಸಿಗ್ನಲ್ ಕಳುಹಿಸಿ ಅಥವಾ ದಾಖಲಿತ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ, ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯೇ ಹೊಸ ಫೈಲ್ ತೆರೆಯಲಿ. ಪರ್ಯಾಯ copytruncate , ಅದು ವಿಷಯವನ್ನು ತಿರುಗಿಸಿದ ಹೆಸರಿಗೆ ನಕಲಿಸಿ ನಂತರ ಮೂಲವನ್ನು ಅದರ ಸ್ಥಳದಲ್ಲೇ ಕತ್ತರಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ವಿವರಣೆ ಮಾನ್ಯವಾಗಿ ಉಳಿಯುತ್ತದೆ ಆದರೆ ನಕಲು ಮತ್ತು ಕತ್ತರಿಸುವಿಕೆಯ ನಡುವೆ ಬೀಳುವ ಬರವಣಿಗೆಗಳು ಕಳೆದುಹೋಗುತ್ತವೆ.

systemd ಪ್ರಾರಂಭಿಸುವ ಘಟಕಗಳಿಗೆ, StandardOutput ಅನ್ನು ಜರ್ನಲ್‌ಗೆ ಅಥವಾ ಫೈಲ್‌ಗೆ ತೋರಿಸಿ ಮತ್ತು ಜೀವನಚಕ್ರವನ್ನು ಘಟಕಕ್ಕೆ ಬಿಡಿ. ಗಾತ್ರ ಮಿತಿಯಿಲ್ಲದೆ tee -a ಮೂಲಕ ಸೇರಿಸುವ shell ಲೂಪ್ ವೈಫಲ್ಯದ ಸಮಯದಲ್ಲಿ ವಿಭಾಗವನ್ನು ತುಂಬುವ ವ್ಯವಸ್ಥೆ, ಏಕೆಂದರೆ ವಿಫಲವಾದ ಪರಿಶೀಲನೆ ಆರೋಗ್ಯಕರ ಪರಿಶೀಲನೆಗಿಂತ ಹೆಚ್ಚು ಲಾಗ್ ಮಾಡುತ್ತದೆ.

ಟೈಮರ್‌ಗಾಗಿ ಕಾಯದೆ ತಿರುಗುವಿಕೆಯನ್ನು ಪರೀಕ್ಷಿಸಿ

ಡೀಬಗ್ ಮೋಡ್ ಏನಾಗುತ್ತದೆ ಎಂದು ವರದಿ ಮಾಡುತ್ತದೆ ಮತ್ತು ಯಾವುದನ್ನೂ ಮುಟ್ಟುವುದಿಲ್ಲ, ಇದು ಸಂಪಾದನೆಯ ನಂತರದ ಸುರಕ್ಷಿತ ಮೊದಲ ಓಟವಾಗಿಸುತ್ತದೆ. ತೃಪ್ತರಾದ ನಂತರ ನಿಜವಾದ ತಿರುಗುವಿಕೆಯನ್ನು ಒತ್ತಾಯಿಸಿ, ನಂತರ ಮುಂದಿನ ಲಾಗ್ ಸಾಲು ಮರುನಾಮಕರಣಗೊಂಡ ಫೈಲ್‌ಗೆ ಅಲ್ಲ, ಹೊಸ ಫೈಲ್‌ಗೆ ಬೀಳುತ್ತದೆ ಎಂದು ದೃಢೀಕರಿಸಿ:

logrotate -d /etc/logrotate.d/vpn-watchdog
logrotate -f /etc/logrotate.d/vpn-watchdog
ls -l /var/log/vpn-watchdog.log*
tail -n 3 /var/log/vpn-watchdog.log
df -h /var/log

ಔಟ್‌ಪುಟ್ ಅನ್ನು ಆ ಕ್ರಮದಲ್ಲಿ ಓದಿ. ಡೀಬಗ್ ಹಾದುಹೋಗುವಿಕೆ ಫೈಲ್ ಮತ್ತು ಉದ್ದೇಶಿಸಿದ ಕ್ರಿಯೆಗಳನ್ನು ಹೆಸರಿಸಬೇಕು; ಬಲವಂತದ ಓಟವು ನಿರೀಕ್ಷಿತ ತಿರುಗಿಸಿದ ಹೆಸರನ್ನು ಉತ್ಪಾದಿಸಬೇಕು; tail ಬರಹಗಾರ ಮತ್ತೆ ಚಲಿಸಿದ ನಂತರ ಹೊಸ ನಮೂದನ್ನು ತೋರಿಸಬೇಕು. ಬೆಳೆಯುತ್ತಿರುವ df ಮೌಲ್ಯ ಮತ್ತು ಕುಗ್ಗುತ್ತಿರುವ ಕಾಣುವ ಫೈಲ್ ಮೇಲೆ ವಿವರಿಸಿದ ವಿವರಣೆ ಸಮಸ್ಯೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ.

ಆವೃತ್ತಿಗಳು ಈಗಾಗಲೇ ಇರುವಾಗ ಧಾರಣೆ ಹೇಗೆ ವರ್ತಿಸುತ್ತದೆ ಎಂದು ನೋಡಲು ಬಲವಂತದ ಓಟವನ್ನು ಎರಡು ಬಾರಿ ಪುನರಾವರ್ತಿಸಿ. ಹಳೆಯ ಫೈಲ್ ಅನ್ನು ಅಳಿಸುವುದು ನಿರೀಕ್ಷಿತ ಫಲಿತಾಂಶ, ಮತ್ತು ಅಳಿಸುವಿಕೆ ಇಲ್ಲದಿರುವುದು ಸಾಮಾನ್ಯವಾಗಿ ತಿರುಗಿಸಿದ ಹೆಸರಿನಲ್ಲಿನ ಎಣಿಕೆ ಅಥವಾ ವೈಲ್ಡ್‌ಕಾರ್ಡ್ logrotate ರಚಿಸಿದ್ದಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ ಎಂದು ಅರ್ಥ.

ರೋಲ್‌ಬ್ಯಾಕ್ ಮತ್ತು ಲಿಖಿತ ದಾಖಲೆ ಇಟ್ಟುಕೊಳ್ಳಿ

ಸಂಪಾದನೆಯ ಮೊದಲು ಹಿಂದಿನ ಬ್ಲಾಕ್ ಉಳಿಸಿ ಮತ್ತು ಯಾವ ಶೆಡ್ಯೂಲರ್ ಅದನ್ನು ಚಲಾಯಿಸುತ್ತದೆ ಎಂದು ಗಮನಿಸಿ, ಏಕೆಂದರೆ ಫೈಲ್ ಮರಳಿಸಿ ಟೈಮರ್ ಮರಳಿಸದ ರೋಲ್‌ಬ್ಯಾಕ್ ಮೂಲ ಸಮಸ್ಯೆಯ ಅರ್ಧವನ್ನು ಪುನರುತ್ಪಾದಿಸುತ್ತದೆ. ಮರುಸ್ಥಾಪನೆಯ ನಂತರ ಒಮ್ಮೆ ಕೈಯಿಂದ ತಿರುಗಿಸಿ, ನಂತರ ಬರಹಗಾರನ ಖಾತೆ ಲಾಗ್ ಮಾರ್ಗಕ್ಕೆ ಬರೆಯಬಲ್ಲದು ಎಂದು ದೃಢೀಕರಿಸಿ. ಸೇವೆ systemd ಅಡಿಯಲ್ಲಿ ಚಲಿಸಿದರೆ, ಅದರ ಔಟ್‌ಪುಟ್ ಮರುನಿರ್ದೇಶನದಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆಯ ನಂತರ ಘಟಕವನ್ನು ಮತ್ತೆ ಲೋಡ್ ಮಾಡಿ, ಏಕೆಂದರೆ ಚಲಿಸುತ್ತಿರುವ ಪ್ರಕ್ರಿಯೆ ಹಳೆಯ ಗುರಿಗೆ ಬರೆಯುತ್ತಲೇ ಇರುತ್ತದೆ. ಘಟಕ ಸ್ವಚ್ಛವಾಗಿ ಮರಳಿತು ಎಂದು ನಂಬುವ ಬದಲು ಮುಂದಿನ ಕೆಲವು ಲಾಗ್ ಸಾಲುಗಳನ್ನು ನೀವೇ ಓದಿ.

ಮೋಡ್, ಮಾಲೀಕ, ಧಾರಣೆ ಸಂಖ್ಯೆ ಮತ್ತು ನಿರೀಕ್ಷಿತ ಡಿಸ್ಕ್ ಬಜೆಟ್ ಅನ್ನು ಪರಿಶೀಲನೆಯ ಪಕ್ಕದಲ್ಲೇ ದಾಖಲಿಸಿ. ನಂತರ ಪರಿಶೀಲನೆ ಒಂದು ಬಾರಿಯ ಸ್ಕ್ರಿಪ್ಟ್‌ನಿಂದ ಡೇಮನ್ ಆಗಿ ಬದಲಾದಾಗ, ತಿರುಗುವಿಕೆ ನೀತಿಯೂ ಅದರೊಂದಿಗೆ ಬದಲಾಗಬೇಕು, ಮತ್ತು ಆ ಟಿಪ್ಪಣಿಯೇ ಮುಂದಿನ ವ್ಯಕ್ತಿಗೆ ಯಾವ ಊಹೆ ಮುರಿದಿದೆ ಎಂದು ಹೇಳುತ್ತದೆ.

ಕೊನೆಯದಾಗಿ, ಲಾಗ್ ನಿರ್ಧಾರವನ್ನು ಮರುಪ್ರಾಪ್ತಿ ನಿರ್ಧಾರದಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿ. ವಿಫಲವಾದ ಪರಿಶೀಲನೆ ಸಂಪರ್ಕದ ತನ್ನದೇ ಮರುಪ್ರಾಪ್ತಿ ನೀತಿಯನ್ನು ಅನುಸರಿಸಬೇಕು, logrotate ಒಳಗೆ ಅಡಗಿರುವ ನಿಯಮವನ್ನಲ್ಲ, ಮತ್ತು ಯಾವುದೇ ಲಾಗ್ ವ್ಯವಸ್ಥೆ ಕೆಲಸ ಮಾಡುತ್ತಿರುವ ಸುರಂಗವನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಕಾರಣವಾಗಬಾರದು.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು