Zabbix-agent2 проблемы с запуском сервиса: различия между версиями

Материал из sysadm
Перейти к навигации Перейти к поиску
(Новая страница: «'''Проблема''' <pre> Не запускается zabbix-agent2, потому что не может создать pid файл в не существую...»)
 
 
Строка 43: Строка 43:
 
Была так же ситуация, когда пропал или по какой то причине не был создан файл
 
Была так же ситуация, когда пропал или по какой то причине не был создан файл
 
/usr/lib/tmpfiles.d/zabbix_agent2.conf
 
/usr/lib/tmpfiles.d/zabbix_agent2.conf
 +
</pre>
  
= Решение =
+
'''Решение'''
 +
<pre>
 
### Вариант 1
 
### Вариант 1
 
# если сервер подключен к домену в котором создана учетка zabbix, то можно вручную запустить сервис
 
# если сервер подключен к домену в котором создана учетка zabbix, то можно вручную запустить сервис

Текущая версия на 13:49, 23 июля 2025

Проблема

Не запускается zabbix-agent2, потому что не может создать pid файл в не существующем каталоге
/var/run/zabbix
Если каталог создать, агент запускается, но после перезагрузки сервера каталог снова исчезает

Причина

При старте, сервис zabbix-agent2 должен создать pid файл

vi /etc/zabbix/zabbix_agent2.conf
---------------------------------------
PidFile=/var/run/zabbix/zabbix_agent2.pid
---------------------------------------

ls -lh /var/run
lrwxrwxrwx. 1 root root 6 Mar 14  2024 /var/run -> ../run
т.е. фактически сервис пытается создать pid файл в каталоге /run/zabbix

каталог /run/zabbix отсутствует, соответственно pid файл не может быть создан

содержимое каталога /run очищается при каждой перезагрузке.
Сервис systemd-tmpfiles-setup при старте создает все необходимые файлы и каталоги в очищаемых каталогах.

При установке zabbix-agent2 добавляет к конфигурации systemd-tmpfiles-setup, то что ему необходимо создавать при старте системы
vi /usr/lib/tmpfiles.d/zabbix_agent2.conf
---------------------------------------
d /run/zabbix 0755 zabbix zabbix - -
---------------------------------------

Сервис systemd-tmpfiles-setup не видит учетки zabbix, поэтому не может создать каталог /run/zabbix для которого эта учетка указана как владелец,
при этом сервис получает статус failed.

cat /etc/passwd | grep zabbix
systemctl status systemd-tmpfiles-setup

Как так вышло? (в моем случае)
При установке zabbix-agent2, установщик не смог создать локальную учетную запись zabbix, т.к. сервер был подключен к домену FreeIPA в котором была создана учетная запись zabbix.
Сервис агента успешно запустился под доменной учетной записью.
Сервис systemd-tmpfiles-setup стартует раньше доменных сервисов и не видит учетки zabbix, поэтому не создает каталог владельцем которого указана не существующая учетка.

Была так же ситуация, когда пропал или по какой то причине не был создан файл
/usr/lib/tmpfiles.d/zabbix_agent2.conf

Решение

### Вариант 1
# если сервер подключен к домену в котором создана учетка zabbix, то можно вручную запустить сервис
# поскольку доменные сервисы уже поднялись, учетка zabbix будет доступна и сервис сможет созать нужный каталог, после чего сервис zabbix-agent2 сможет запуститься
systemctl start systemd-tmpfiles-setup
# чтобы проблема не возникала при каждой перезагрузке, нужно задать зависимость сервиса systemd-tmpfiles-setup от доменных (это как идея, не проверял)

### Вариант 2
# Удалить из домена учетную запись zabbix, переустановить zabbix-agent2 или создать локальную учетную запись zabbix

### Переустановка
yum remove zabbix-agent2
rm -rf /etc/zabbix
rm -rf /var/log/zabbix
rm -f /usr/lib/tmpfiles.d/zabbix_agent2.conf
rm -f /etc/sysconfig/zabbix-agent2
yum install zabbix-agent2
# далее настройте заново, все что необходимо

### Пересоздание учетной записи и связанные с этим корректировки
# проверка пользователя и группы
cat /etc/passwd | grep zabbix
cat /etc/group | grep zabbix

# если не существует создаем группу zabbix и пользователя zabbix
# uid и gid определяем по следующему алгоритму

grep -E '9[0-9][0-9]' /etc/passwd | cut -d ':' -f 3 | sort -u
# смотрим с конца, выбираем первый не занятый uid
grep -E '9[0-9][0-9]' /etc/group  | cut -d ':' -f 3 | sort -u
# смотрим с конца, выбираем первый не занятый gid

groupadd --gid <gid> zabbix
useradd --uid <uid> --gid <gid> --comment 'Zabbix Monitoring System' --home /var/lib/zabbix --shell /sbin/nologin zabbix

# проверка конфигурации на создание временного каталога
cat /usr/lib/tmpfiles.d/zabbix_agent2.conf
---------------------------------------
d /run/zabbix 0755 zabbix zabbix - -
---------------------------------------
ls -lh /usr/lib/tmpfiles.d/zabbix_agent2.conf
-rw-r--r--. 1 root root 37 Sep 23 17:36 /usr/lib/tmpfiles.d/zabbix_agent2.conf
# если не существует, создаем

# проверка прав на каталог логов
ls -lha /var/log/zabbix
# если необходимо, исравляем
chown -R zabbix:zabbix /var/log/zabbix/
chmod 755 /var/log/zabbix/
chmod 664 /var/log/zabbix/*