GNU/Linux >> Znalost Linux >  >> Linux

Linux – Průběžné sledování stavu služby?

Potřebuji sledovat stav nagios (Protože kdykoli provedu jakékoli změny v konfiguraci a použiji novou konfiguraci, najdu nagios služba zastavena).
Pokud je nalezena ve stavu „zastaveno“, měla by se spustit automaticky.

Zkusil jsem napsat malý shell skript a přidat ho do cron , ale zjistil, že skript se spustí pokaždé, i když je služba spuštěna. Skript je:

#!/bin/bash

service nagios status | grep running

if [ $? -ne 0 ]
then
        service nagios start
fi

Kdykoli je služba ve stavu „zastaveno“, zobrazí se výstup service nagios status zobrazuje No lock file found in /usr/local/nagios/var/nagios.lock . Mám sledovat /usr/local/nagios/var/nagios.lock pomocí inotify-tools nebo existuje nějaká lepší alternativa?

Přijatá odpověď:

existuje nějaká lepší alternativa?

Ano. Použijte správný správce služeb a nevyžádané položky, které /etc/init.d/nagios skript. V nejlepším případě používáte System 5 rc skript v režimu kompatibility pod něčím jako upstart nebo systemd, v takovém případě nezískáte některé z užitečných mechanismů správy služeb, které nejsou dostupné v režimu kompatibility, jako to nezískal tento člověk z AskFedory. V nejhorším případě provozujete věci pod System 5 rc a ve skutečnosti nemáte naději, že s tímto skriptem uděláte napůl slušnou správu služeb.

K dispozici je spousta systémů pro správu služeb. Nebudu zacházet do podrobností o jejich instalaci, protože to je daleko nad rámec této odpovědi. Místo toho se zaměřím pouze na to, jak v nich zprovoznit nagios démona.

daemontools rodina

daemontools rodina sad nástrojů pro správu služeb zahrnuje:

  • Daemontools Dana Bernsteina
  • Propuštěnec Adama Sampsona
  • Přídavek daemontools Bruce Guenter
  • Laurent Bercot s6
  • Můj nos
  • Runit Gerrita Papea
  • Pachatel Wayna Marshalla

Hlavní věc, kterou zde potřebujete, je program, který se stane démonem. Pro nagios je to 2- nebo 3-liner. Je možné kombinovat sady nástrojů. Zde jsou některé vhodné 2-linky využívající několik různých sad nástrojů:

  • run soubor se sadou nástrojů nosh:
    #!/bin/nosh
    setuidgid nagios
    nagios

    a restart soubor, který způsobí bezpodmínečný automatický restart:

    #!/bin/sh
    exec true

    Jen pro zajímavost jsem přidal předpřipravený balíček služeb pro nagios do nosh, který bude k dispozici ve verzi 1.13, což je v podstatě toto s několika standardními doplňky, jako jsou informace o závislostech.

  • run soubor se sadou nástrojů runit:
    #!/bin/sh -e
    exec chpst -u nagios nagios
  • run soubor se sadou nástrojů s6:
    #!/command/execlineb -P
    s6-setuidgid nagios
    nagios
  • run soubor se sadami nástrojů daemontools, daemontools-encore nebo freedt:
    #!/bin/sh -e
    exec setuidgid nagios nagios
  • rc.main soubor se sadou nástrojů perp:
    #!/bin/sh -e
    exec 2>&1
    start() { exec runuid nagios nagios; }
    reset() { exit 0; }
    eval "$1" "[email protected]"

Jediným specifickým rysem této služby je tento program pro spouštění jednotlivých služeb. Zbytek se služba od služby neliší. Jeden se dotazuje na stav služby stejným způsobem ve všech službách pomocí příkazu jako svstat . Povolení a zakázání automatického spouštění při bootstrapu je záležitostí symbolických odkazů. Ruční spuštění a zastavení služby je záležitostí svc -u a svc -d . A tak dále.

nosh má několik shimů, pokud je někdo potřebuje, jako je systemctl status a initctl status . Důležité je, že má service shim, takže pokud opravdu jako service nagios status můžete ho používat dál. ☺ Ale zapomeňte na ten ošklivý pohled na obchod se zámkovými soubory a na celý pojem ad-hoc monitorování. S řádným servisním manažerem nic takového neřešíte. Správce služeb provádí monitorování a řádně sleduje proces démona.

systemd

V krabici není soubor systémové servisní jednotky pro nagios. Ale hodně lidí už napsalo své vlastní:

  • nagios.service Davida Kowise pro Source Mage Linux
  • nagios.service přidáno do balíčku nagios Arch Linuxu v roce 2012

systemd se nedodává se service shim příkaz, ale některé distribuce Linuxu mají jeden z jiného zdroje.

Další čtení

  • Jak nastavit správné monitorování mých služeb automatizovaným způsobem? Takže když dojde k jedné havárii, automaticky se restartuje?

Linux
  1. Služba operačního systému Linux „nfs“

  2. Služba operačního systému Linux „microcode_ctl“

  3. Služba Linux OS „NetFS“

  1. Služba Linux OS „ldap“

  2. Služba OS Linux „yppasswdd“

  3. Linux OS Service ‚xendomény‘

  1. Služba Linux OS „nscd“

  2. Služba Linux OS „chobotnice“

  3. Služba OS Linux „chytrá“