Nesmrtelná Icinga2
Nedávno jsme aktualizovali v UOL monitoring. Přecházeli jsme z Nagiosu 3.5.1 na Icingu 2. Přechod trval pár měsíců, kdy jsme první měsíc testovali chování Icingy a postupně tam přidávali další checky. Po domigrování všech služeb se nám stala nemilá věc. Po upgradu Icingy nám služba spadla a byli jsme bez monitoringu. V první chvíli jsem chtěl napsat script v Bashi, který by kontroloval běžící proces Icingy. Přemýšlel jsem jak nejlépe zajistit neustálý běh Systemd service, až jsem narazil na konfiguraci Systemd https://www.freedesktop.org/software/systemd/man/systemd.service.html#RestartSec=
Takto nyní vypadá náš config v /lib/systemd/system/icinga2_autorestart.service
[Unit]
Description=Icinga host/service/network monitoring system
After=postgresql.service mariadb.service carbon-cache.service mysql.service syslog.target network.target[Service]
Type=simple
UMask=0007
EnvironmentFile=/usr/lib/icinga2/icinga2
EnvironmentFile=/etc/default/icinga2
ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2
ExecStart=/usr/sbin/icinga2 daemon -e ${ICINGA2_ERROR_LOG}
ExecReload=/usr/lib/icinga2/safe-reload /usr/lib/icinga2/icinga2
PIDFile=/run/icinga2/icinga2.pid
Restart=always
RestartSec=1
StartLimitInterval=10
StartLimitBurst=3[Install]
WantedBy=multi-user.target
Někteří z Vás jsi všimli, že máme config uložený v /lib/systemd/system/icinga2_autorestart.service. Problém byl v tom, že pokud použijeme /lib/systemd/system/icinga2.service, tak při aktualizaci Icingy se nám náš konfig přepíše a nefunguje.
Jak jsi můžeme pomoci?
EDIT:
Stačí vytvořit soubor /etc/systemd/system/icinga2.service.d/override.conf
a do něj vložit následující konfiguraci.
[Service]
Restart=always
RestartSec=1
StartLimitInterval=10
StartLimitBurst=3
Díky Věroš Kaplan za upozornění.