Wiki-Quellcode von Kopano Optimierungen

Version 15.1 von Christian Germann am 2022/05/03 09:18

Zeige letzte Bearbeiter
1 (% style="color:#000000" %)Es gibt mehrere Anpassungen die sich anbieten um den laufenden Betrieb von Kopano zu verbessern. Folgende Maßnahmen können optional genutzt werden:
2
3 {{toc start="5"/}}
4
5
6 ===== (% style="color:#000000" %)**__Zustellbarkeit der Unzustellbarkeits-Nachrichten verbessern durch Versenden per Relayhost__**(%%) =====
7
8 (% style="color:#000000" %)Es ist möglich die Zustellbarkeit der Unzustellbarkeits-Nachrichten für den Absender zu verbessern. Dafür ist es notwendig den SMTP-Server des gewählten Mailproviders als Smarthost einzutragen.
9
10
11 (% style="color:#000000" %)Bearbeiten Sie in die Datei kopano-g1.yaml im puppeteer Container:
12
13 {{code language="bash"}}
14 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/kopano-g1.yaml
15 {{/code}}
16
17 (% style="color:#000000" %)Die Zeile "ld_kopano::postfix::hashes:" beschreibt das Handling für den Null-Sender. Fügen Sie nun die Zeile "<> smtp.meineschule.de" ein (Ergänzen Sie die smtp Adresse durch die von ihnen genutzte).
18
19 {{code language="bash"}}
20 ld_kopano::postfix::hashes:
21   '%{dir_etc}/sender_dependent_relayhost_maps_external.hash':
22     content: |
23       %{header}
24       <> smtp.meineschule.de
25       @meineschule.de smtp.meineschule.de
26 {{/code}}
27
28
29 ===== (% style="color:#000000" %)**__Kopano Leistung verbessern__**(%%) =====
30
31 (% style="color:#000000" %)Kopano ist in der Standardinstallation lediglich für den Betrieb von 10 Benutzern ausgelegt. Das heißt, die Kopano-Serverdienste reservieren mit den Standardeinstellungen sehr wenig Systemressourcen (RAM) und die Plattform arbeitet als Konsequenz sehr langsam, wenn deutlich mehr Benutzer ein Postfach erhalten. Man sollte daher in den meisten Fällen die zugeteilten Systemressourcen (deutlich) erhöhen, um ein vernünftiges Nutzererlebnis zu erzielen.
32
33 (% style="color:#000000" %)Um die Einstellungen Puppet-gerecht zu definieren, hilft nachfolgende Auflistung von YAML-Einstellungen. Bei der Auswahl der Werte muss man die **Hardware-Ressourcen** des Servers berücksichtigen, im Beispiel wird von einem leistungsstarken Server mit **32GB** **RAM** und **2 CPU-Sockets** und insgesamt **32 Kernen** ausgegangen.
34
35
36 (% style="color:#000000" %)Bearbeiten Sie in die Datei kopano-g1.yaml im puppeteer Container:
37
38 {{code language="bash"}}
39 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/kopano-g1.yaml
40 {{/code}}
41
42 Passen Sie die kopano-g1.yaml je nach Größe der Schule an.
43
44 **kopano-g1.yaml für Kopano <50 Users:**
45
46 {{code language="yaml"}}
47 nginx::keepalive_timeout: 3600
48 nginx::keepalive_requests: 500
49
50 apache::keepalive: 'On'
51 apache::keepalive_timeout: '45'
52 apache::max_keepalive_requests: '500'
53 apache::mod::prefork::maxclients: '384'
54 apache::mod::prefork::serverlimit: '384'
55
56 ld_kopano::server:
57 settings:
58 cache_cell_size: '512M'
59 cache_object_size: '16M'
60 cache_indexedobject_size: '32M'
61 enable_sql_procedures: 'yes'
62 # The following 2 settings require a cronjob to run periodically instead (in case the value is disabled)
63 sync_gab_realtime: 'no'
64 softdelete_lifetime: '0'
65 {{/code}}
66
67 **kopano-g1.yaml für Kopano >=50 Users**
68
69 {{code language="yaml"}}
70 nginx::keepalive_timeout: 3600
71 nginx::keepalive_requests: 500
72
73 apache::keepalive: 'On'
74 apache::keepalive_timeout: '45'
75 apache::max_keepalive_requests: '500'
76 apache::mod::prefork::maxclients: '500'
77 apache::mod::prefork::serverlimit: '500'
78
79 ld_kopano::server:
80 settings:
81 cache_cell_size: '6144M'
82 cache_object_size: '32M'
83 cache_indexedobject_size: '64M'
84 enable_sql_procedures: 'yes'
85 # The following 2 settings require a cronjob to run periodically instead (in case the value is disabled)
86 sync_gab_realtime: 'no'
87 softdelete_lifetime: '0'
88 {{/code}}
89
90 **kopano-g1.yaml für Kopano >=200 Users**
91
92 {{code language="yaml"}}
93 nginx::keepalive_timeout: 3600
94 nginx::keepalive_requests: 500
95
96 apache::keepalive: 'On'
97 apache::keepalive_timeout: '45'
98 apache::max_keepalive_requests: '500'
99 apache::mod::prefork::maxclients: '500'
100 apache::mod::prefork::serverlimit: '500'
101
102 ld_kopano::server:
103 settings:
104 cache_cell_size: '12288M'
105 cache_object_size: '256M'
106 cache_indexedobject_size: '512M'
107 enable_sql_procedures: 'yes'
108 # The following 2 settings require a cronjob to run periodically instead (in case the value is disabled)
109 sync_gab_realtime: 'no'
110 softdelete_lifetime: '0'
111 {{/code}}
112
113 (% id="cke_bm_884S" style="color:#000000; display:none" %) (% style="color:#000000" %)Zusätzlich muss im Kopano-Container ein Cron-Job eingerichtet werden, sofern man im Abschnitt **ld_kopano::server** die Parameter **sync_gab_realtime** / **softdelete_lifetime** im deaktivierten Zustand eingetragen hat:
114
115 {{code language="bash"}}
116 root@kopano-g1:~ # /etc/cron.d/kopano-optimization
117 {{/code}}
118
119 {{code language="bash"}}
120 # /etc/cron.d/kopano-optimization
121 */30 *  * * *     root   [ -x /usr/sbin/kopano-admin ] && /usr/sbin/kopano-admin --sync 2>&1 >/dev/null
122 0 4  * * *     root   [ -x /usr/sbin/kopano-admin ] && /usr/sbin/kopano-admin --purge-softdelete 30 2>&1 >/dev/null
123 {{/code}}
124
125
126 ===== __**mysql56(% style="color:#000000" %) Leistung verbessern(%%)**__ =====
127
128 (% style="color:#000000" %)Folgende Einstellung können für die mysql56.yaml gesetzt werden:
129
130 {{code language="bash"}}
131 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/mysql56.yaml
132 {{/code}}
133
134 {{code language="yaml"}}
135 mysql::server::override_options:
136 mysqldump:
137 max_allowed_packet: '1G'
138 mysqld:
139 innodb_file_per_table: true
140 bind-address: '0.0.0.0'
141 skip-name-resolve: true
142 innodb_large_prefix: true
143 innodb_file_format: 'Barracuda'
144 max_allowed_packet: '32M'
145 max_connections: '150'
146 query_cache_limit: '2M'
147 query_cache_size: '64M'
148 thread_stack: '512K'
149 tmp_table_size: '64M'
150 max_heap_table_size: '64M'
151 sort_buffer_size: '2M'
152 join_buffer_size: '2M'
153 table_open_cache: '500'
154 innodb_autoextend_increment: '1000'
155 innodb_buffer_pool_size: '2G'
156 innodb_flush_log_at_trx_commit: '2'
157 innodb_flush_method: 'O_DSYNC'
158 innodb_lock_wait_timeout: '120'
159 innodb_log_buffer_size: '8M'
160 innodb_log_file_size: '1G'
161 innodb_log_files_in_group: '3'
162 innodb_read_io_threads: '4'
163 innodb_write_io_threads: '4'
164 {{/code}}
165
166
167 ===== __**mariadb103 (% style="color:#000000" %)Leistung verbessern(%%)**__ =====
168
169 (% style="color:#000000" %)Folgende Einstellung können für die mariadb103.yaml gesetzt werden:
170
171 {{code language="bash"}}
172 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/mariadb103.yaml
173 {{/code}}
174
175 {{code language="yaml"}}
176 mysql::server::override_options:
177 mysqldump:
178 max_allowed_packet: '1G'
179 mysqld:
180 innodb_file_per_table: '1'
181 bind-address: '0.0.0.0'
182 skip-name-resolve: true
183 innodb_large_prefix: '1'
184 max_allowed_packet: '32M'
185 max_connections: '151'
186 query_cache_limit: '2M'
187 query_cache_size: '64M'
188 thread_stack: '512K'
189 tmp_table_size: '64M'
190 max_heap_table_size: '64M'
191 sort_buffer_size: '2M'
192 join_buffer_size: '2M'
193 table_open_cache: '500'
194 innodb_autoextend_increment: '1000'
195 innodb_buffer_pool_size: '1G'
196 # The following setting is based on the existing ibdata1 file, check current size and insert it here (rounded to MB)
197 innodb_data_file_path: 'ibdata1:12M:autoextend'
198 innodb_flush_log_at_trx_commit: '2'
199 innodb_flush_method: 'O_DSYNC'
200 innodb_lock_wait_timeout: '120'
201 innodb_log_buffer_size: '8M'
202 innodb_log_file_size: '1G'
203 innodb_log_files_in_group: '3'
204 innodb_read_io_threads: '4'
205 innodb_write_io_threads: '4'
206 {{/code}}
207
208 Passen Sie die {{code}}mariadb103.yaml{{/code}} noch folgendermaßen an für Große Umgebungen mit vielen Postfächern.
209
210 **mariadb103.yaml für Kopano >= 50 Users:**
211
212 {{code language="yaml"}}
213 sort_buffer_size: '4M'
214 innodb_buffer_pool_size: '2G'
215 {{/code}}
216
217 (% class="wikigeneratedid" %)
218 Quelle: [[https:~~/~~/kb.kopano.io/pages/viewpage.action?pageId=2654253>>https://kb.kopano.io/pages/viewpage.action?pageId=2654253]]
219
220
221 ===== (% style="color:#000000" %)**__Anbindung/Akkulaufzeit von Endgeräten verbessern__**(%%) =====
222
223 (% style="color:#000000" %)Bei Verwendung des ActiveSync-Protokolls bzw. Kopano Z-Push zur Anbindung von Endgeräten (Smartphones, Tablets, MS Outlook 2013/2016/2019 Clients) empfiehlt es sich, auf die HTTP-KeepAlive Einstellungen für die Webserver-Dienste in der Verbindungskette (Rev-Proxy → Kopano-Server) Einfluss zu nehmen.
224
225 (% style="color:#000000" %)Der KeepAlive-Wert wird bewusst hoch gewählt, damit Verbindungen zwischen Client und Kopano-Server länger offen gehalten werden können. Dadurch schont man die Batterie und Laufzeit von mobilen Geräten, da es sich u.a. auf den Standby-Betrieb von Smartphones auswirkt (der nicht permanent unterbrochen wird zum Starten einer neuen Verbindung).
226
227
228 (% style="color:#000000" %)Zusätzlich müssen Sie die Datei rev-proxy.yaml erstellen/bearbeiten:
229
230 {{code language="bash"}}
231 root@puppeteer:~ # vim /etc/logodidact/hiera/custom.d/rev-proxy.yaml
232 {{/code}}
233
234 (% style="color:#000000" %)Ergänzen/Befüllen Sie die Datei mit folgendem Inhalt:
235
236 {{code language="bash"}}
237 nginx::keepalive_timeout: 3600
238 nginx::keepalive_requests: 500
239 {{/code}}
240
241
242 ===== (% style="color:#000000" %)__**Public Folder erstellen**__(%%) =====
243
244 (% style="color:#000000" %)Es kann sich anbieten einen Public Folder als gemeinsamen Ordner für alle Benutzer zu erstellen. Hierfür müssen Sie folgenden Befehl eingeben:
245
246 {{code language="bash"}}
247 root@kopano-g1:~ # kopano-admin -s
248 {{/code}}
249
250
251 ===== (% style="color:#000000" %)__**Cronjob für Wartungsaufgaben**__(%%) =====
252
253 (% style="color:#000000" %)Durch das Anlegen eines zusätzlichen Cronjobs, lassen sich Wartungsaufgaben automatisch zu bestimmten Zeiten durchführen. Folgenden Cronjob können Sie bei Bedarf erstellen:
254
255 {{code language="bash"}}
256 # /etc/cron.d/kopano-optimization
257 */30 * * * * root [ -x /usr/sbin/kopano-admin ] && /usr/sbin/kopano-admin --sync 2>&1 >/dev/null
258 0 4 * * * root [ -x /usr/sbin/kopano-admin ] && /usr/sbin/kopano-admin --purge-softdelete 30 2>&1 >/dev/null
259 {{/code}}
260
261
262 ===== (% style="color:#000000" %)**__Netzlaufwerke auf der Kopano-Weboberfläche anzeigen__**(%%) =====
263
264 (% style="color:#000000" %)Empfehlenswert ist das Einbinden der Netzlaufwerke H: P: T: des logoDIDACT-Servers auf der Kopano Weboberfläche. Gehen Sie wie folgt vor um den Nutzern dies zu ermöglichen:
265
266
267 (% style="color:#000000" %)Führen Sie den Sync über den kopano-admin durch:
268
269 {{code language="bash"}}
270 root@kopano-g1:~ # kopano-admin --sync
271 {{/code}}
272
273 (% style="color:#000000" %)Laden Sie folgendes Skript herunter:
274
275 {{code language="bash"}}
276 root@kopano-g1:~ # wget https://files.sbe.de/kopano/install-inject-shares.sh -O /tmp/install-inject-shares.sh
277 {{/code}}
278
279 (% style="color:#000000" %)Führen Sie das Skript aus:
280
281 {{code language="bash"}}
282 root@kopano-g1:~ # bash /tmp/install-inject-shares.sh
283 {{/code}}
284
285 (% style="color:#000000" %)Das Installationsskript legt einen CronJob an, der zyklisch einmal pro Tag die Netzlaufwerke für alle Kopano-Benutzer registriert. Dieser Vorgang kann unmittelbar nach der Installation durch die Eingabe von folgendem Befehl direkt angestoßen werden:
286
287 {{code language="bash"}}
288 root@kopano-g1:~ # inject-shares.sh
289 {{/code}}
290
291 (% style="color:#000000" %)**__Hinweis:__** Falls beim Aufrufen des Skripts Mapi Fehler auftreten, bitte folgende Pakete installieren:(%%)
292
293
294 {{code language="bash"}}
295 python-mapi
296 python-kopano
297 python3-kopano-utils
298 kopano-python-utils
299 {{/code}}
300
301
302 ===== (% style="color:#000000" %)__**Synchronisation der Benutzer in das globale Adressbuch**__(%%) =====
303
304 (% style="color:#000000" %)Durch einen Cronjob ist es möglich Benutzer in das Globale Adressbuch einzupflegen. Hierbei handelt es sich um eine Erweiterung für die Kopano Outlook Extension, damit Benutzer mit Kopano-Postfach automatisch im Adressbuch anwählbar sind.
305
306 {{code language="bash"}}
307 root@kopano-g1:~ # chmod +x /etc/cron.daily/gabsync
308 {{/code}}
309
310 (% style="color:#000000" %)__**Hinweis:**__ Dies stellt eine Erweiterung zum regulären ActiveSync-Protokoll durch Z-Push dar. Die Funktionsweise basiert auf einem synchronisierten Kontaktordner namens „Z-Push-KOE-GAB“ als Unterordner im Public Store / Öffentlichen Ordner.