วิธีการตั้งค่าไคลเอนต์ระยะไกลของ Icinga2 โดยไม่ใช้ตัวช่วยสร้าง CLI


11

ฉันต้องการที่จะตั้งค่าลูกค้า Icinga2 ระยะไกลผ่านทางหุ่นกระบอก แต่ทั้งหน้าของเอกสารที่เป็นทางการเจรจาเกี่ยวกับการใช้ของพวกเขาน่ากลัวตัวช่วยสร้าง CLI ซึ่งจะต้องมีที่จะทำงานด้วยตนเอง

วิธีแก้ปัญหาใด ๆ บางทีฉันควรกลับไปที่ Nagios


เอกสารที่คุณลิงก์เพื่ออ้างอิงการตั้งค่า GUI สำหรับ Windows เท่านั้น นี่คือสิ่งที่คุณถามเกี่ยวกับ?
Keith

1
docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/ ...... ที่เอกสารล่าสุดมีส่วนที่ใช้สำหรับคำถามนี้
TryTryAgain

1
อัปเดต: เอกสารถูกย้ายไปยังตำแหน่งใหม่ของicinga.com/docs/icinga2/latest/doc/06-distributed-monitoring/ ......
Věroš K.

คำตอบ:


16

ฉันมีปัญหาเดียวกัน นี่คือสิ่งที่ฉันใช้หลังจากแยกลอจิกจากโค้ดตัวช่วยสร้างโหนด icinga2

ตัวแปรที่คุณต้องการ:

$pki_dir - /etc/icinga2/pki in the default installation
$fqdn - fully host+domain name of the client.
$icinga2_master - resolvable fqdn of the master
$icinga2_master_port - the port the master is connectable on.
$ticket - generated on the master via 'icinga2 pki ticket --cn $fqdn'

รหัส:

mkdir icinga:icinga 0700 $pki_dir
icinga2 pki new-cert --cn $fqdn --key $pki_dir/$fqdn.key --cert $pki_dir/$fqdn.crt
icinga2 pki save-cert --key $pki_dir/$fqdn.key --cert $pki_dir/$fqdn.crt --trustedcert $pki_dir/trusted-master.crt --host $icinga2_master
icinga2 pki request --host $icinga2_master --port $icinga2_master_port --ticket $ticket --key $pki_dir/$fqdn.key --cert $pki_dir/$fqdn.crt --trustedcert $pki_dir/trusted-master.crt --ca $pki_dir/ca.key
icinga2 node setup --ticket $ticket --endpoint $icinga2_master --zone $fqdn --master_host $icinga2_master --trustedcert $pki_dir/trusted-master.crt
systemctl restart icinga2  # or however you restart your icinga

1

มันเหมือน TryTryAgain เขียน เอกสารล่าสุดอธิบายสองวิธีที่ต่างกัน จากบนลงล่างเรียกคำสั่งระยะไกลและบนลงล่าง Config ซิงค์

ความแตกต่างของวิธีการนี้คือการดำเนินการคำสั่งระยะไกลจะเรียกคำสั่งทั้งหมดจากต้นแบบในขณะที่การซิงค์การกำหนดค่าจะซิงค์ไฟล์กำหนดค่าทั้งหมดที่อยู่ใน/etc/icinga2/zones.dโหนดลูก (ดาวเทียมเช่นเดียวกับลูกค้า) และการดำเนินการคำสั่งทริกเกอร์บนปลายทาง

ฉันชอบที่จะใช้วิธีการกำหนดค่าการซิงค์บนลงล่างเพราะไคลเอนต์จะเรียกใช้การตรวจสอบแม้ว่าต้นแบบจะขาดการเชื่อมต่อกับลูก

คุณต้องเปิดใช้งานAPIคุณสมบัตินี้ในทุกโหนด

# /etc/icinga2/features-enabled/api.conf

object ApiListener "api" {
  cert_path = "/etc/ssl/{{ hostname }}.pem"
  key_path = "/etc/ssl/{{ hostname }}-key.pem"
  ca_path = "/etc/ssl/rootca.pem"

  // only on satelites and clients
  accept_config = true
}

ตอนนี้สร้างไฟล์โซนและคัดลอกไปยังโหนดทั้งหมด

# /etc/icinga2/zones.conf

// global zone used for zone overlapping configs
object Zone "global" {
  global = true
}

// endpoints
object Endpoint "fqdn1.of.host" {
  host = "fqdn1.of.host"
}

object Endpoint "fqdn2.of.host" {
  host = "fqdn2.of.host"
}

// for each endpoint one zone
object Zone "fqdn1.of.host" {
  endpoints = [ "fqdn1.of.host" ]
}

object Zone "fqdn2.of.host" {
  endpoints = [ "fqdn2.of.host" ]
  parent = "fqdn1.of.host"
}

แนวปฏิบัติที่เหมาะสมที่สุดคือใช้ fqdn ของโหนดของคุณเป็นชื่อจุดปลายรวมถึงชื่อโซน เตือนความจำ : คัดลอกสิ่งนี้zones.confไปยังโหนดทั้งหมด

ขั้นตอนต่อไปคือการกำหนดบริการเทมเพลตและกลุ่มทั้งหมดภายใน/etc/icinga2/zones.d/และแต่ละโฮสต์ในโฮสต์ของตัวเองภายในไดเรกทอรีโซน

# /etc/icinga2/zones.d/global/templates.conf

template Host "generic-host" {
  max_check_attempts = 3                                                                                                                     
  check_interval = 1m 
  retry_interval = 30s

  check_command = "hostalive"
}

# /etc/icinga2/zones.d/fqdn1.of.host/hosts.conf

// this is the master
object Host "fqdn1.of.host" {
  import "generic-host"
  address = "fqdn1.of.host"
}

# /etc/icinga2/zones.d/fqdn2.of.host/hosts.conf

// this is a satelite/client
object Host "fqdn2.of.host" {
  import "generic-host"
  address = "fqdn2.of.host"
}

วิธีการของฉันคือป้องกันไม่ให้ใช้การกำหนดค่าภายใน/etc/icinga2/conf.dเพราะฉันเพิ่มสิ่งทั่วไป (และการใช้งานทั่วโลก) ทั้งหมดใน/etc/icinga2/zones.d/globalและสิ่งเฉพาะโฮสต์ภายใน/etc/icinga2/zones.d/fqdnX.of.host

สุดท้าย แต่ไม่ท้ายสุดคุณต้องลบคำสั่ง include สำหรับ conf.d

# /etc/icinga2/icinga2.conf

[...]
// include_recursive "conf.d"

แค่นั้นแหละ. การตั้งค่านี้จำเป็นต้องจัดการใบรับรองของคุณด้วยตนเองหรือด้วยการจัดการการกำหนดค่าที่คุณเลือก มันจะไม่สร้างมันขึ้นมาและไม่ได้ใช้ icinga pki ไม่เห็นเหตุผลที่ฉันควรใช้เครื่องมือเฉพาะ pki ตราบใดที่มีเครื่องมือเฉพาะสำหรับเรื่องนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.