dil

Не люблю я этот selinux..

Nov 07, 2017 16:04


Вчера поставил на очередную машинку с CentOS zabbix’овского клиента, добавил ту машинку на сервер, всё настроил, бОльшая часть данных на сервер успешно приходила, а вот про MySQL почему-то нет..

Показывало такую ошибку:
"Received value [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)] is not suitable for value type [Numeric (float)]"

Попробовал на самой машинке - всё работает:

# zabbix_agentd -t mysql.status[Bytes_sent] mysql.status[Bytes_sent] [t|59709] # zabbix_agentd -t mysql.slave[Seconds_Behind_Master] mysql.slave[Seconds_Behind_Master] [t|166]
А когда то же самое запрашивается с сервера, то фиг:

# zabbix_get -s 10.18.19.100 -k 'mysql.status[Bytes_sent]' ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)
Коллеги порекомендовали посмотреть в /var/log/audit/audit.log, и оказалось, что mysql, запускаемый из-под заббикса, почему-то не может ни прочитать .my.cnf, который я для него создал, ни вообще подключиться к mysql’ному серверу через местный socket..

type=AVC msg=audit(1509982155.365:26576): avc: denied { read } for pid=6599 comm="mysql" name="my.cnf" dev="dm-0" ino=166 scontext=system_u:system_r:zabbix_agent_t:s0 tcontext=system_u:object_r:mysqld_etc_t:s0 tclass=file type=AVC msg=audit(1509982155.366:26577): avc: denied { read } for pid=6599 comm="mysql" name=".my.cnf" dev="dm-7" ino=3148594 scontext=system_u:system_r:zabbix_agent_t:s0 tcontext=unconfined_u:object_r:var_lib_t:s0 tclass=file type=AVC msg=audit(1509982155.368:26578): avc: denied { connectto } for pid=6599 comm="mysql" path="/storage-mysql/mysql/mysql.sock" scontext=system_u:system_r:zabbix_agent_t:s0 tcontext=system_u:system_r:mysqld_t:s0 tclass=unix_stream_socket
Оказалось, что это selinux не разрешает. Выключил его нафиг, и всё заработало.
Но коллеги сказали, что не положено selinux выключать, так что пришлось его обратно включить, опять перестало работать.

Посоветовали вытащить из лога то, что заббиксу не разрешалось:
#grep "denied.*zabbix_agent" /var/log/audit/audit.log | audit2allow -M zabbix_agent
и всё это явно разрешить:
#semodule -i zabbix_agent.pp
Попробовал, а нифига не поменялось. Ещё раз попробовал, посмотрел, что в этом .pp написано, а всё равно не помогло.
И только после третьего раза заработало, как надо.. Такие вот загадочные грабельки, как обычно.

Оригинал этой записи в личном блоге.
(
| Комментировать в Dreamwidth)

рабочее, centos, грабельки, linux, ирландия, полезности, дублин, security

Up