GNU/Linux >> Belajar Linux >  >> Linux

Linux – Melacak Status Layanan Secara Terus Menerus?

Saya perlu memantau status nagios service (Karena, setiap kali saya membuat perubahan dalam konfigurasi dan menerapkan konfigurasi baru, saya akan menemukan nagios layanan dihentikan).
Jika ditemukan dalam status 'berhenti', layanan akan dimulai secara otomatis.

Saya mencoba menulis skrip shell kecil dan menambahkannya ke cron , tetapi ternyata skrip akan dijalankan setiap saat meskipun layanan sedang berjalan. Scriptnya adalah:

#!/bin/bash

service nagios status | grep running

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

Setiap kali layanan dalam status 'berhenti', output dari service nagios status menunjukkan No lock file found in /usr/local/nagios/var/nagios.lock . Haruskah saya memantau /usr/local/nagios/var/nagios.lock file menggunakan inotify-tools atau adakah alternatif yang lebih baik untuk ini?

Jawaban yang Diterima:

apakah ada alternatif yang lebih baik untuk ini?

Ya. Gunakan pengelola layanan yang tepat dan sampah yang /etc/init.d/nagios naskah. Paling-paling, Anda menggunakan rc Sistem 5 skrip dalam mode kompatibilitas di bawah sesuatu seperti pemula atau systemd, dalam hal ini Anda tidak akan mendapatkan beberapa mekanisme manajemen layanan yang berguna yang tidak tersedia dalam mode kompatibilitas karena orang ini di AskFedora tidak. Paling buruk, Anda menjalankan berbagai hal di bawah Sistem 5 rc dan Anda tidak benar-benar memiliki harapan untuk melakukan pengelolaan layanan setengah jalan dengan skrip tersebut.

Ada banyak sistem manajemen layanan yang tersedia. Saya tidak akan membahas detail pemasangannya, karena itu jauh di luar cakupan jawaban ini. Sebagai gantinya, saya hanya akan fokus pada cara mengaktifkan dan menjalankan nagios demon di dalamnya.

daemontools keluarga

daemontools rangkaian alat manajemen layanan meliputi:

  • Daemontools Dan Bernstein
  • Pembebasan Adam Sampson
  • Daemontools-encore Bruce Guenter
  • S6 Laurent Bercot
  • Bahagiaku
  • Ringkasan Gerrit Pape
  • Pelaku Wayne Marshall

Hal utama yang Anda butuhkan di sini adalah program yang menjadi demon. Untuk nagios, ini adalah 2- atau 3-liner. Satu dapat mencampur dan mencocokkan toolset. Berikut adalah beberapa 2-liner yang sesuai, menggunakan beberapa perangkat yang berbeda:

  • Sebuah run file dengan kumpulan alat nosh:
    #!/bin/nosh
    setuidgid nagios
    nagios

    dan restart file yang menyebabkan restart otomatis tanpa syarat:

    #!/bin/sh
    exec true

    Sebagai permulaan, saya telah menambahkan bundel layanan pra-bangun untuk nagios ke nosh, yang akan tersedia di versi 1.13, cukup banyak dengan beberapa tambahan standar seperti informasi ketergantungan.

  • Sebuah run file dengan runit toolset:
    #!/bin/sh -e
    exec chpst -u nagios nagios
  • Sebuah run file dengan s6 toolset:
    #!/command/execlineb -P
    s6-setuidgid nagios
    nagios
  • Sebuah run file dengan daemontools, daemontools-encore, atau freedt toolset:
    #!/bin/sh -e
    exec setuidgid nagios nagios
  • Sebuah rc.main file dengan perangkat pelaku:
    #!/bin/sh -e
    exec 2>&1
    start() { exec runuid nagios nagios; }
    reset() { exit 0; }
    eval "$1" "[email protected]"

Program ini untuk menjalankan layanan individu adalah satu-satunya hal yang khusus untuk layanan ini. Sisanya tidak berbeda dari satu layanan ke layanan lainnya. Satu menanyakan status layanan dengan cara yang sama di semua layanan, dengan perintah seperti svstat . Mengaktifkan dan menonaktifkan startup otomatis saat bootstrap adalah masalah tautan simbolik. Memulai dan menghentikan layanan secara manual adalah masalah svc -u dan svc -d . Dan seterusnya.

nosh memiliki beberapa shim jika dibutuhkan, seperti systemctl status dan initctl status . Yang penting, ia memiliki service shim, jadi jika Anda benar-benar seperti service nagios status Anda dapat terus menggunakannya. Tapi lupakan semua pandangan buruk tentang bisnis file kunci, dan seluruh gagasan tentang pemantauan ad-hoc. Anda tidak berurusan dengan hal seperti itu dengan manajer layanan yang tepat. Manajer layanan melakukan pemantauan, dan melacak proses demon dengan benar.

systemd

Tidak ada file unit layanan systemd untuk nagios yang disertakan dalam kotak. Tapi banyak orang sudah menulis sendiri:

  • nagios.service David Kowis untuk Source Mage Linux
  • nagios.service ditambahkan ke paket nagios Arch Linux pada tahun 2012

systemd tidak datang dengan service shim perintah, tetapi beberapa distribusi Linux memiliki satu dari sumber lain.

Bacaan lebih lanjut

  • Bagaimana cara mengatur pemantauan layanan saya secara otomatis? Sehingga jika salah satu crash maka auto on the fly restart?

Linux
  1. Layanan OS Linux 'dhcpd'

  2. Layanan OS Linux 'anacron'

  3. Layanan OS Linux 'iptables'

  1. 'jaringan' Layanan OS Linux

  2. Layanan OS Linux 'smartd'

  3. Layanan OS Linux 'irqbalance'

  1. 'portmap' layanan OS Linux

  2. Layanan OS Linux 'rpcgssd'

  3. Layanan OS Linux 'yum-updatesd'