MySQL szerver néhány naponta leáll

Fórumok

Sziasztok

Egy Ubuntu 16.04.3 szerverrel van probléma, ami Moodle szerverként üzemel.
A héten már többször is leállt a mysql, és nem igazán értem miért.
Az első leálláskor panaszkodott az apparmor:

Jan 23 09:57:06 moodlenew kernel: [441006.165379] audit: type=1400 audit(1516697826.442:22): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/11597/status" pid=11597 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=112
Jan 23 09:57:06 moodlenew kernel: [441006.165433] audit: type=1400 audit(1516697826.442:23): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=11597 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=0
Jan 23 09:57:06 moodlenew kernel: [441006.165515] audit: type=1400 audit(1516697826.442:24): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/11597/status" pid=11597 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=112

Ennek ellenére simán el lehetett indítani a mysql-t de egy idő után leállt. Próbáltam javítani (google-val keresett tippek után) az apparmot profilt, de másnap újra leállt.
Visszaállítottam az eredeti apparmor konfigot újraindítottam a szervert, nincs hibaüzenet, megy a mysql.
Most megint megállt:

● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: inactive (dead) since p 2018-01-26 06:40:22 CET; 6h ago
Main PID: 12580 (code=exited, status=0/SUCCESS)

jan 24 09:12:49 moodlenew systemd[1]: Starting MySQL Community Server...
jan 24 09:13:06 moodlenew systemd[1]: Started MySQL Community Server.
jan 26 06:40:20 moodlenew systemd[1]: Stopping MySQL Community Server...
jan 26 06:40:22 moodlenew systemd[1]: Stopped MySQL Community Server.

A syslog nekem nem sok támpontot ad:

Jan 26 06:40:20 moodlenew systemd[1]: Reloading.
Jan 26 06:40:20 moodlenew systemd[1]: Started ACPI event daemon.
Jan 26 06:40:20 moodlenew systemd[1]: Stopping MySQL Community Server...
Jan 26 06:40:22 moodlenew systemd[1]: Stopped MySQL Community Server.
Jan 26 06:40:23 moodlenew kernel: [242340.881036] audit: type=1400 audit(1516945223.008:39): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=33970 comm="apparmor_parser"

A systemd újraindítaná a mysqld-t, de az elindításig már nem jut el. Nekem nem sikerült felfedeznem hibaüzenetet. A mysql error.log-jában sincs egyetlen sor sem, ami hibaüzenet lenne. Pár nem túl friss warning van benne:

2018-01-24T08:12:52.095726Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2018-01-24T08:12:52.095816Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
2018-01-24T08:12:52.277263Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
...
2018-01-24T08:12:56.137108Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key

Ha elindítom a mysql-t (systemctl start mysql), elindul:

● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since p 2018-01-26 12:57:57 CET; 9s ago
Process: 36982 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 36972 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 36981 (mysqld)
Tasks: 28
Memory: 563.6M
CPU: 726ms
CGroup: /system.slice/mysql.service
└─36981 /usr/sbin/mysqld

A syslog-ban újra vannak hibaüzenetnek tűnő sorok:

Jan 26 12:57:55 moodlenew systemd[1]: Starting MySQL Community Server...
Jan 26 12:57:55 moodlenew kernel: [264993.602649] audit: type=1400 audit(1516967875.727:40): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/36981/status" pid=36981 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=112
Jan 26 12:57:55 moodlenew kernel: [264993.602716] audit: type=1400 audit(1516967875.727:41): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=36981 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=0
Jan 26 12:57:55 moodlenew kernel: [264993.602797] audit: type=1400 audit(1516967875.727:42): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/36981/status" pid=36981 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=112 ouid=112
Jan 26 12:57:57 moodlenew systemd[1]: Started MySQL Community Server.

reboot után a mysql fut, hibaüzenet nincs. Ugyan úgy mint két napja.
Mi a frász történhetett? És főleg hogy lehet megszüntetni ezt az új okosságot.

Hozzászólások

Szerintem nezd meg, hogy ezek nem-e mindig ugyanakkor tortennek (valami cronjob?), mysql konfig szerint hova logol (hatha mashol kell keresni az error.log-ot), dmesg-ben nincs-e valami (netan oom killer dolgozik?), ha syslogban nincs semmi, esetleg daemon log vagy journalctl hatha tobb logot rejt.
Vegso esetben kiprobalni kikapcsolni/csak logolasra allitani (nem ismerem apparmort tud-e ilyet) apparmort, hogy lasd akkor is megall-e, meg hatha akkor tobbet logol.

Kapcsold ki az apparmor profilt rá és teszteld úgy, vagy tedd tanuló módba és add hozzá a profiljához ami kell.

Ma megint leállt. 2-3 naponta nem sikerül elindulnia, ha a systemd csinál egy reload-ot.
Újraindítás előtt kimentettem az időpont környéki logokat a jurnalctl-lel:

febr 01 06:25:08 moodlenew systemd[1]: Starting Daily apt upgrade and clean activities...
febr 01 06:25:11 moodlenew CRON[62943]: pam_unix(cron:session): session closed for user root
febr 01 06:26:01 moodlenew systemd[1]: Reloading.
febr 01 06:26:03 moodlenew systemd[1]: Started ACPI event daemon.
febr 01 06:26:03 moodlenew systemd[1]: Stopping MySQL Community Server...
febr 01 06:26:06 moodlenew systemd[1]: Stopped MySQL Community Server.
febr 01 06:26:07 moodlenew audit[63600]: AVC apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=63600 comm="apparmor_parser"
febr 01 06:26:07 moodlenew kernel: audit_printk_skb: 27 callbacks suppressed
febr 01 06:26:07 moodlenew kernel: audit: type=1400 audit(1517462767.366:21): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=63600 comm="apparmor_parser"
febr 01 06:26:16 moodlenew systemd[1]: Started Daily apt upgrade and clean activities.
febr 01 06:30:01 moodlenew CRON[63671]: pam_unix(cron:session): session opened for user root by (uid=0)

Én semmi olyat nem látok, ami hibaüzenetként értelmezhető, de javítson ki nyugodtan az aki velem ellentétben érti is mit akar üzenni az apparmor.
Újra indítottam a szervert, most működik megint (2-3 napig).

1 processes are in enforce mode.
/usr/sbin/mysqld (23380)

Részben megoldódott a rejtély (bár az apparmor viselkedését továbbra sem értem), az első leállás előtt volt egy sikertelen frissítés, amit a frissítést végző kolléga nem vett észre ( nekem meg nem jutott eszembe, hogy ellenőrizzem :( ). A mysql csomag törött volt (de csak egy kicsit).