Dateianhang 'tut.txt'
Herunterladen 1 Da mit dem aktuellen Jessi Kernel 4.4.34+ bzw. 4.4.50+ eine Abfrage mit
2 systemctl --version
3 Ein (systemd 215) als aktiv zeigt, kann das journal nicht mit dem Schalter "--vacuum-size=100M" zb. auf 100 MB verkleinert werden.
4 Das wird sich wohl erst mit der Version Stretch ändern.
5 Für alle User die nicht sofort auf Stretch umsteigen wollen hier ein Vorschlag.
6 Die Original Idee von meigrafd und Thomas mit dem Script varlog wird etwas erweitert und leicht verändert.
7
8 http://www.forum-raspberrypi.de/Thread-tutorial-var-log-in-eine-art-ramdisk-auslagern-weitere-optimierungen-bezgl-logs?page=4&highlight=ramdisk
9
10 Die Änderung:
11 Im Start Zweig von varlog wird mit dem rsync Schalter --exclude "- *.journal"
12 verhindert das ein system.journal aus /var/log_save/.. wieder nach /var/log/.. kopiert wird.
13 Damit kann es in /var/log/.. keine system.journal~ Datei mehr geben. Es gibt nur das system.journal vom aktuellen Booten/Einschalten.
14 Im Stop Zweig von varlog wird mit dem rsync Schalter --exclude "**~" --exclude "- user*"
15 verhindert das ein möglicherweise Vorhandenes user-1000.journal bzw. system.journal~ wieder nach /var/log_save/.. kopiert wird.
16
17 Die Erweiterung:
18 Um eine Analyse der system.journal Dateien aus /var/log_save/.. zu erreichen wird der logrotate Mechanismus benutzt.
19 Dazu wird der logrotate.timer und der logrotate.service sowie die Datei logrotate_varlog.conf benutzt.
20 Die Datei logrotate_varlog.conf wurde erstellt um Probleme mit dem normalen logrotate Dienst in Jessi zu vermeiden.
21 Ein Test ist möglich mit
22 sudo /usr/sbin/logrotate -v /etc/logrotate_varlog.conf
23
24 Zum Ablauf:
25 sudo /usr/local/bin/varlog stop
26 Kopiert alles von /var/log/ nach /var/log_save/ -- Ausser der "user-1000.journal" bzw. "system.journal~" Datei.
27 sudo /usr/local/bin/varlog start
28 Kopiert alles von /var/log_save/ nach /var/log/ -- Ausser der "system.journal" Datei.
29
30 2 Minuten nach jedem reboot/Einschalten wird vom logrotate.timer und dem logrotate.service
31 Das system.journal aus /var/log_save/.. in das Verzeichnis /var/archive/ als system.journal.1.gz kopiert und gepackt.
32 Im Moment werden die Dateien bis zur system.journal.7.gz behalten.
33
34 Um die system.journal.x.gz Datei zu einer Analyse wieder auszupacken benuzte ich den sik Zweig von varlog
35 sudo /usr/local/bin/varlog sik
36
37 Das Script sik.sh zeigt alle system.journal.x.gz Dateien an, die ausgewählte Datei wird entpackt und mit journalctl --verify geprüft.
38 Dann wird mit journalctl -p err die Datei system.journal auf Fehler und danch auf Vorkommen von "varlog\|journal" geprüft.
39 Zum Schluss werden alle Einträge der aktuell ausgewählten system.journal Datei anzeigt.
40
41 Wenn in /var/archive/ schon ein system.journal liegt wird das vom Script erkannt und nach Abfrage gelöscht.
42
43 # --------------------------------------------------------------------------------------------------------------------------------- #
44 # Ab hier das Tutorial.
45 # Die Punkte 1 bis 11 sind Allgemeiner Natur für Kontrollen und wichtiger Prüfungen und sollten abgearbeitet werden.
46 # Ab Punkt 12 erfolgt die Installation vom gesamten Paket mit allen Kontrollen.
47 # --------------------------------------------------------------------------------------------------------------------------------- #
48
49 1. System Aktualisierung und Prüfen ob rsync installiert ist wenn nicht Install.
50 sudo apt update
51 sudo apt dist-upgrade
52 type rsync
53 sudo apt install rsync
54 sudo reboot
55
56 2. Prüfen ob das Journal von systemd schon aktiv ist, es muss in /var/log/ den Ordner journal geben.
57 ls -lah /var/log/
58 # drwxr-sr-x+ 3 root systemd-journal 4,0K Aug 4 2016 journal
59
60 3. Wenn in /var/log/ noch die syslog und messages Dateien liegen ist der alte rsyslog Dienst noch aktiv.
61 Dieser kann entfernt werden. Zur Vorsicht das alte /var/log/ komplett zu sichern.
62 sudo mkdir -p /var/log_old
63 sudo cp -Rpu /var/log/* /var/log_old/
64 ls -la /var/log/
65 # -rw-r----- 1 root adm 76M Mai 15 20:17 messages
66 # -rw-r----- 1 root adm 261M Mai 15 20:17 syslog
67
68 4. Dann werden die Werte für das system-journald auf sinnvolle Werte eingestellt.
69 Dazu die Datei journald.conf öffnen und die 4 Einträge am Datei Ende einfügen.
70 Die Werte sollten nach dem eigenen Bedarf eingestellt werden.
71 sudo nano /etc/systemd/journald.conf
72 SystemMaxUse=50M
73 SystemKeepFree=5M
74 SystemMaxFileSize=4M
75 ForwardToSyslog=no
76 #
77 5. ACHTUNG:
78 Die folgenden drei Zeilen nur aufrufen wenn in /var/log/ noch KEIN Ordner journal vorhanden war.
79 Nach dem systemctl restart Kommando wird ein Journal geschrieben.
80 sudo mkdir -p /var/log/journal
81 sudo systemd-tmpfiles --create --prefix /var/log/journal
82 sudo systemctl restart systemd-journald
83
84 6. Nun kann der rsyslog Dienst entfernt und der user pi zur Gruppe systemd-journal hinzugefügt werden.
85 sudo apt-get purge --remove rsyslog
86 sudo adduser pi systemd-journal
87
88 7. Um /tmp ebenfalls nach tmpfs zu mounten, prüfen ob die Datei tmp.mount vorhanden ist wenn ja tmp.mount einschalten.
89 ls -la /lib/systemd/system/tmp.mount
90 less /lib/systemd/system/tmp.mount
91 sudo systemctl enable tmp.mount
92 sudo systemctl start tmp.mount
93 systemctl status tmp.mount
94
95 8. Wenn der rsyslog lief können nach reboot bzw. halt die alten Dateien gelöscht werden.
96 Dazu vorher von allen Ordnern/Dateien die Größe und den aktuellen Zeitstempel holen.
97 Um sinnvolle Werte in die journald.conf einzutragen ist die Größe der Ordner hilfreich.
98 ls -lah /var/log/
99 du -h /var/log/
100
101 9. Nach dem reboot erste Kontrollen.
102 Und das Löschen der nicht mehr benötigten Dateien in /var/log/ zb. messages usw.
103 Jetzt kann auch der user pi das System Journal mit journalctl öffnen.
104 sudo reboot
105 df -Th | grep tmpfs
106 sudo rm /var/log/messages
107 sudo rm /var/log/syslog
108 journalctl
109
110 10. Nach dem Löschen der alten rsyslog Dateien wird viel weniger Platz in /var/log/ benötigt.
111 Dann kann es sinnvoll sein die /etc/journald.conf nochmal anzupassen.
112 du -sh /var/log/
113 sudo nano /etc/systemd/journald.conf
114 sudo systemctl restart systemd-journald
115
116 11. Wenn nach dem Löschen der alten Dateien in /var/log/ der Ordner journal fehlen sollte dann den Punkt 5. ausführen.
117
118 # --------------------------------------------------------------------------------------------------------------------------------- #
119
120 12. Mit Filezilla die Datei varlog_aktuell.tar.gz auf den RasPi kopieren und auspacken.
121 Diese Dateien sollten zu sehen sein.
122 tar zxvf varlog_aktuell.tar.gz
123 ls -la varlog_aktuell
124 -rw-r--r-- 1 frank users 903 13. Mai 21:03 journald.conf
125 -rw-r--r-- 1 frank users 253 13. Mai 21:23 logrotate.service
126 -rw-r--r-- 1 frank users 181 13. Mai 21:23 logrotate.timer
127 -rw-r--r-- 1 frank users 543 13. Mai 21:03 logrotate_varlog.conf
128 -rwxr--r-- 1 frank users 2691 20. Mai 21:38 sik.sh
129 -rwxr--r-- 1 frank users 903 23. Mai 20:58 varlog
130 -rw-r--r-- 1 frank users 321 13. Mai 21:08 varlog.service
131
132 13. Dann werden die Rechte gesetzt und die Dateien an Ihren Platz verschoben.
133 ACHTUNG:
134 Diese Zeile in Datei logrotate_varlog.conf muss nach dem Verschieben auf den eigenen Ordner Namen aus /var/log/journal/... angepasst werden.
135 /var/log_save/journal/.. Ordner/system.journal {
136
137 sudo chown root:root varlog_aktuell/*.*
138 sudo chown root:root varlog_aktuell/varlog
139 cd varlog_aktuell
140 sudo mv logrotate_varlog.conf /etc/
141 sudo mv logrotate.service /etc/systemd/system/
142 sudo mv logrotate.timer /etc/systemd/system/
143 sudo mv varlog.service /etc/systemd/system/
144 sudo mv sik.sh /usr/local/bin/
145 sudo mv varlog /usr/local/bin/
146 sudo nano /etc/logrotate_varlog.conf
147
148 14. Nun wird für den logrotate.service der Ordner /var/archive/ angelegt.
149 Danach ist ein Trocken Test möglich.
150 2 Minuten nach jedem reboot/Einschalten wird vom logrotate.timer und dem logrotate.service
151 Das system.journal aus /var/log_save/.. in das Verzeichnis /var/archive/ als system.journal.1.gz kopiert und gepackt.
152 Im Moment werden die Dateien bis zur system.journal.7.gz im Ordner /var/archive/ behalten.
153 Es muss nur der logrotate Timer aktiviert werden dieser benutzt dann den logrotate.service
154 und in diesem logrotate.service steht ein "ExecStart=/usr/sbin/logrotate /etc/logrotate_varlog.conf"
155 Mit dem "systemctl list-timers" erfolgt die Kontrolle des Timers
156
157 sudo mkdir -p /var/archive/
158 #sudo /usr/sbin/logrotate -v /etc/logrotate_varlog.conf
159 sudo /bin/systemctl enable logrotate.timer
160 sudo /bin/systemctl start logrotate.timer
161 systemctl status logrotate.timer
162 systemctl list-timers
163 # NEXT LEFT LAST PASSED UNIT ACTIVATES
164 # n/a n/a Di 2017-05-16 21:50:31 CEST 1min 21s ago logrotate.timer logrotate.service
165
166
167 15. Erst jetzt wird der varlog.service Aktiviert !!!
168 sudo /bin/systemctl enable varlog.service
169 sudo /bin/systemctl start varlog.service
170 systemctl status varlog.service
171
172 16. Hop oder Top
173 /bin/systemctl reboot
174
175 17. Nach dem Einschalten bzw. dem reboot muss es dann so aussehen.
176 In /var/log/journal/.../ das aktuelle Journal.
177 In /var/log_save/journal/.../ das Journal bis zum reboot.
178 In /var/archive/ noch nichts.
179 Der Ordner /var/log/ muss als tmpfs gemounted sein. Der varlog-status muss fehlerfrei sein.
180 Eine Kontrolle des aktuellen/laufenden Boots zeigt, dass die Reihenfolge wie erwünscht passt.
181 Hier zB. wird der logrotate.service in 2 Sekunden vom logrotate.timer gestartet.
182
183 ls -la /var/log/journal/.../
184 ls -la /var/log_save/journal/.../
185 ls -la /var/archive/
186 df -Th | grep tmpfs
187 systemctl status varlog.service
188 journalctl -b | grep "varlog\|journal" -i
189 systemctl list-timers
190 NEXT LEFT LAST PASSED UNIT ACTIVATES
191 Mi 2017-05-17 20:55:29 CEST 2s left n/a n/a logrotate.timer logrotate.service
192
193
194 18. Nach dem der logrotate.service gelaufen ist liegt
195 In /var/log/journal/.../ das aktuelle Journal.
196 In /var/log_save/journal/.../ eine leere system.journal Datei.
197 In /var/archive/ das gepackte .x.gz Journal aus /var/log_save/journal/.../
198 Die beiden folgenden logrotate status Meldungen sind so OK.
199
200 systemctl status logrotate.timer
201 ● logrotate.timer - Daily rotation of log files
202 Loaded: loaded (/etc/systemd/system/logrotate.timer; enabled)
203 Active: active (elapsed) since Mi 2017-05-17 20:53:43 CEST; 2min 45s ago
204 Docs: man:logrotate(8)
205 man:logrotate.conf(5)
206
207 systemctl status logrotate.service
208 ● logrotate.service - Rotate log files
209 Loaded: loaded (/etc/systemd/system/logrotate.service; static)
210 Active: inactive (dead) since Mi 2017-05-17 20:55:38 CEST; 59s ago
211 Docs: man:logrotate(8)
212 man:logrotate.conf(5)
213 Process: 914 ExecStart=/usr/sbin/logrotate /etc/logrotate_varlog.conf (code=exited, status=0/SUCCESS)
214 Main PID: 914 (code=exited, status=0/SUCCESS)
215
216 19. Um die system.journal.x.gz Datei zu einer Analyse wieder auszupacken benuzte ich den sik Zweig von varlog
217 Das Script sik.sh zeigt alle system.journal.x.gz Dateien aus /var/archive/ an.
218 Nach Eingabe der Datei Nr. zB. 1 für die aktuellste Datei wird die ausgewählte Datei wieder entpackt und mit journalctl --verify geprüft.
219 Dann wird mit journalctl -p err die Datei auf Fehler und danch auf Vorkommen von "varlog\|journal" geprüft.
220 Zum Schluss werden alle Einträge der aktuell ausgewählten system.journal Datei anzeigt.
221
222 Wenn in /var/archive/ schon ein system.journal liegt wird das vom Script erkannt und nach Abfrage gelöscht.
223
224 sudo /usr/local/bin/varlog sik
Gespeicherte Dateianhänge
Um Dateianhänge in eine Seite einzufügen sollte unbedingt eine Angabe wie attachment:dateiname benutzt werden, wie sie auch in der folgenden Liste der Dateien erscheint. Es sollte niemals die URL des Verweises ("laden") kopiert werden, da sich diese jederzeit ändern kann und damit der Verweis auf die Datei brechen würde.Sie dürfen keine Anhänge an diese Seite anhängen!