GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara memantau “https” jarak jauh dengan Icinga versi 2?

Host Anda mendefinisikan atribut khusus "http_vhosts" sebagai kamus tetapi itu tidak pernah digunakan (tidak berlaku untuk aturan yang ditentukan yang mengulangi kamus itu dan objek layanan geberat).

Alih-alih aturan penerapan layanan (tanpa for loop) hanya menerapkan layanan "httpS". Secara tidak sengaja atribut khusus host "http_ssl" disetel - seharusnya terbaca benar sebagai boolean alih-alih angka sebagai string (itu selalu benar).

Anda mungkin ingin memeriksa beberapa URI, bukan hanya /.

Proposal saya (2 solusi):

1) Perbaiki aturan penerapan layanan Anda dan hapus atribut khusus http_* dari definisi objek Host Anda. Alih-alih menambahkannya ke aturan penerapan layanan:

apply Service "httpS" {
  import "generic-service"
  check_command = "http"
  vars.http_uri = "/"
  vars.http_ssl = true
  assign where host.name == "mailserver-01"
}

Anda dapat menemukan semua atribut khusus yang digunakan sebagai parameter perintah untuk http CheckCommand dalam dokumentasi:http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/plugin-check-commands#plugin-check-command-http

2) Gunakan layanan berlaku untuk aturan sebagai gantinya dan lewati kamus http_vhosts yang ditentukan di host.

vars.http_vhosts["https /"] = {
  http_ssl = true
  http_uri = "/"
}

Perhatikan penamaan di sini:"https /" akan menjadi nama layanan yang dihasilkan. http_ssl dan http_uri adalah nama yang sama persis dengan atribut khusus yang diperlukan oleh http CheckCommand.

Keajaiban terjadi di dalam aturan berlaku untuk:Kunci kamus akan menjadi nama layanan. Nilai kamus adalah kamus bersarang dan berisi http_uri dan http_ssl sebagai kunci. Dalam contoh yang disebut "config". Kamus konfigurasi itu memiliki struktur yang sama persis dengan atribut "vars" sehingga kita bisa menambahkannya di dalam service apply for definition.

apply Service for (servicename => config in host.vars.http_vhosts) {
  import "generic-service"
  check_command = "http"
  vars += config
}

Verifikasi konfigurasi menggunakan icinga2 daemon -C lalu lihat objek layanan yang dihasilkan untuk melihat atribut khusus mana yang dihasilkan (daftar objek icinga2).

Satu hal yang baik - semua host yang memiliki atribut khusus http_vhosts yang ditentukan akan menghasilkan objek layanan ini, tidak perlu extea "assign where" ekspresi (mungkin lebih baik tambahkan abaikan di mana untuk pengecualian). Dengan strategi yang tepat, Anda akan menulis berlaku untuk aturan sekali saja, dan hanya menambahkan host baru dengan kamus atribut khusus yang cocok di masa mendatang :-)

http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/monitoring-basics#using-apply-for

Meskipun solusi 2) membutuhkan pengetahuan lanjutan tentang bahasa konfigurasi icinga 2 dan kata kuncinya, tipe nilai, dan trik sulap. Namun menurut kami metode dan praktik terbaik tersebut membantu mengurangi pemeliharaan jangka panjang dengan mengadopsi dan mengubah file.

Anda juga bisa melangkah lebih jauh dan menggunakan kondisi if-else untuk threshookd yang berbeda berdasarkan nama host. Atau gunakan fungsi untuk menentukan ambang dinamis berdasarkan jangka waktu misalnya.


Saya mencari di Google dan menemukan perintah http di

/usr/share/icinga2/include/command-plugins.conf

Dalam contoh ini saya telah mencoba memantau https://mail.google.com Di bawah ini adalah /etc/icinga2/conf.d/hosts.conf

object Host "www.google.com" {
address = "74.125.136.84"
check_command = "http"
vars.http_vhost = "mail.google.com"
vars.http_ssl = "1"
}

Berikut tampilannya di dashboard icingaweb2

Contoh2

object Host "secure.example.com" {
    address = "14.28.83.22"
    check_command = "http"
    vars.http_vhosts["secure.example.com"] = {
    http_uri = "/merchant/login.aspx"    
    }
        vars.notification["mail"] = {
        groups = [ "icingaadmins" ]
        }
    vars.http_ssl="1"
}

Linux
  1. Cara Mengelola Layanan Systemd dengan Systemctl di Linux

  2. Perintah SCP di Linux:Cara Menggunakannya, dengan Contoh

  3. Bagaimana cara mengkonfigurasi server log jarak jauh dengan rsyslog?

  1. Cara Memantau Kinerja Sistem Linux dengan Sysstat

  2. Cara Memantau Keamanan Server Linux dengan Osquery

  3. Bagaimana Cara Menentukan HELO keluar dengan sendmail?

  1. Cara Memantau Sistem Linux dengan Perintah Sekilas

  2. Cara Menjalankan Container sebagai Layanan Systemd dengan Podman

  3. Cara Memantau Kinerja Sistem Linux dengan perintah iostat