Icinga2 Hierarchie: Unterschied zwischen den Versionen
David (Diskussion | Beiträge) |
David (Diskussion | Beiträge) |
||
| Zeile 309: | Zeile 309: | ||
==icinga-right-1 Konfigurieren== | ==icinga-right-1 Konfigurieren== | ||
| + | ===api anpassen=== | ||
| + | api conf bearbeiten | ||
| + | vi features-available/api.conf | ||
| + | |||
| + | <pre> | ||
| + | /** | ||
| + | * The API listener is used for distributed monitoring setups. | ||
| + | */ | ||
| + | |||
| + | object ApiListener "api" { | ||
| + | cert_path = SysconfDir + "/icinga2/pki/" + NodeName + ".crt" | ||
| + | key_path = SysconfDir + "/icinga2/pki/" + NodeName + ".key" | ||
| + | ca_path = SysconfDir + "/icinga2/pki/ca.crt" | ||
| + | |||
| + | accept_config = true | ||
| + | accept_commands = true | ||
| + | |||
| + | ticket_salt = TicketSalt | ||
| + | } | ||
| + | </pre> | ||
| + | api conf aktiviren | ||
| + | ln ./features-available/api.conf ./features-enabled/ | ||
| + | |||
| + | |||
===Zone & Namen definieren=== | ===Zone & Namen definieren=== | ||
Version vom 8. Juli 2016, 09:47 Uhr
Test Aufbau:
Ziehl
- 2 icinga Systeme (oder mehr) die verschieden bereiche getrennt überwachen sollen und ihre auswertungen an den master server senden
Rechner
icinga-admin 192.168.241.161 icinga-left 192.168.241.162 icinga-right 192.168.241.163 icinga-left-1 192.168.241.164 icinga-left-2 192.168.241.165 icinga-right-1 192.168.241.166 icinga-right-2 192.168.241.167
Plan
Installation
icinga admin installieren
packet Installation
- debian
unter debian repositorys hinzufügen
wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add - echo 'deb http://debmon.org/debmon debmon-jessie main' >/etc/apt/sources.list.d/debmon.list apt-get update
- ubuntu
unter ubuntu repositorys hinzufügen
apt install software-properties-common add-apt-repository ppa:formorer/icinga
- installieren
apt-get update apt-get upgrade apt-get install icinga2
icinga2 web
- icinga2 web aufsetzen
https://xinux.net/index.php/Icinga-web_ubuntu_16.04
icinga right installieren
- beschrieben wird nur icinga right für alle zusätlichen systeme muss genauso vorgegangen werden
- wir benutzen auf left Debian 8 & right Ubuntu 16.04
packet Installation
- debian
unter debian repositorys hinzufügen
wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add - echo 'deb http://debmon.org/debmon debmon-jessie main' >/etc/apt/sources.list.d/debmon.list apt-get update
- ubuntu
unter ubuntu repositorys hinzufügen
apt install software-properties-common add-apt-repository ppa:formorer/icinga
- installiern
apt-get update apt-get upgrade apt-get install icinga2
icinga2 web
- icinga2 web aufsetzen
https://xinux.net/index.php/Icinga-web_ubuntu_16.04
icinga right-1 installieren
- beschrieben wird nur icinga right-1 für alle zusätzliche Systeme muss genauso vorgegangen werden
packet installatieren
- debian
unter debian repositorys hinzufügen
wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add - echo 'deb http://debmon.org/debmon debmon-jessie main' >/etc/apt/sources.list.d/debmon.list apt-get update
- ubuntu
unter ubuntu repositorys hinzufügen
apt install software-properties-common add-apt-repository ppa:formorer/icinga
- installieren
apt-get update apt-get upgrade apt-get install icinga2
Zertifikate
- nach dem alle system installiert wurden am besten die Zertifikate direkt angehen
- auf der cert authority für jeden host ein Zertifikate generieren
- dann auf die Zertifikate auf die hosts kopieren mit scp in den ordner /etc/icinga2/pki
- darauf achten das die hostname & Endpoint Name mit den Zertifikate übereinstimmen
Konfiguration
icinga Master Konfiguration
unser name & zone:
- Node Name = icinga-admin.xinux.org
- Zone Name = icinga-admin.xinux.org
zone name:
- icinga-admin.xinux.org = icinga-admin.xinux.org
- icinga-left.xinux.org = icinga-left.xinux.org
- icinga-right.xinux.org = icinga-right.xinux.org
Zone & Namen definieren
/etc/icinga2/constants.conf
const NodeName = "icinga-admin.xinux.org" const ZoneName = "icinga-admin.xinux.org"
Zone anlegen
- die zonen des masters anlegen
/etc/icinga2/zones.conf
object Endpoint "icinga-admin.xinux.org" {
host = "icinga-admin.xinux.org"
}
object Zone "icinga-admin.xinux.org" {
endpoints = [ "icinga-admin.xinux.org" ]
}
/*
* Global zone for templates
*/
object Zone "global-templates" {
global = true
}
Health-check erstellen
vi /etc/icinga2/cluster/icinga-admin.conf
/*
* cluster health checks
* icinga-admin as master node [x]
* icinga-left as a Satellite node
* icinga-right as a Satellite node
*/
object Host "icinga-admin" {
display_name = "Health Checks on icinga-admin"
address = "icinga-admin.xinux.org"
check_command = "hostalive"
}
object Host "icinga-left" {
display_name = "icinga-left"
address = "icinga-left.xinux.org"
check_command = "hostalive"
}
object Host "icinga-right" {
display_name = "icinga-right"
address = "icinga-right.xinux.org"
check_command = "hostalive"
}
object Service "cluster" {
check_command = "cluster"
check_interval = 5s
retry_interval = 1s
host_name = "icinga-admin"
}
object Service "icinga" {
check_command = "icinga"
max_check_attempts = 3
check_interval = 60s
retry_interval = 30s
host_name = "icinga-admin"
}
/* check if checker zone is connected */
object Service "cluster-zone-checker" {
check_command = "cluster-zone"
check_interval = 5s
retry_interval = 1s
vars.cluster_zone = "icinga-left"
host_name = "icinga-admin"
}
/* check if checker zone is connected */
object Service "cluster-zone-icinga-right" {
check_command = "cluster-zone"
check_interval = 5s
retry_interval = 1s
vars.cluster_zone = "icinga-right"
host_name = "icinga-admin"
}
Neue Konfiguration anwenden
/etc/icinga2/icinga2.conf
# include_recursive "conf.d" include_recursive "cluster"
- Templates anlegen in zones.d
mkdir "icinga-right" "icinga-left" "icinga-admin" "global-templates" mv /etc/icinga2/conf.d/hosts.conf /etc/icinga2/zones.d/icinga-admin/ mv /etc/icinga2/conf.d/* /etc/icinga2/zones.d/global-templates
icinga state kopieren
scp /var/lib/icinga2/icinga2.state root@icinga-left.xinux.org:/var/lib/icinga2 scp /var/lib/icinga2/icinga2.state root@icinga-right.xinux.org:/var/lib/icinga2
Icinga neue hosts übernehmen
- in der nodliste müssten die neun node schon angezeigt werden (sofern sie schon online sind)
icinga2 node list
- mit node update-config werden die entsprechenden Einträge in repository.d angelegt
icinga2 node update-config
- nach einem reload werden die nodes auch im webinterface übernommen
service icinga2 reload
icinga right konfigurieren
- icinga left entsprechend anpassen
api anpassen
api conf bearbeiten
vi features-available/api.conf
/**
* The API listener is used for distributed monitoring setups.
*/
object ApiListener "api" {
cert_path = SysconfDir + "/icinga2/pki/" + NodeName + ".crt"
key_path = SysconfDir + "/icinga2/pki/" + NodeName + ".key"
ca_path = SysconfDir + "/icinga2/pki/ca.crt"
accept_config = true
accept_commands = true
ticket_salt = TicketSalt
}
api conf aktiviren
ln ./features-available/api.conf ./features-enabled/
Zone & Namen definieren
/etc/icinga2/constants.conf
const NodeName = "icinga-right.xinux.org" const ZoneName = "icinga-right.xinux.org"
Zonen anlegen
/etc/icinga2/zones.conf
/*
* Generated by Icinga 2 node setup commands
* on 2016-07-04 09:14:01 +0000
*/
object Endpoint "icinga-admin.xinux.org" {
host = "icinga-admin.xinux.org"
port = "5665"
}
object Zone "master" {
endpoints = [ "icinga-admin.xinux.org" ]
}
object Endpoint "icinga-right.xinux.org" {
}
object Zone "icinga-right.xinux.org" {
//this is the local node = "icinga-right.xinux.org"
endpoints = [ "icinga-right.xinux.org" ]
parent = "master"
}
#ADD the below lines
/*
* Global zone for templates
*/
object Zone "global-templates" {
global = true
}
Health-check erstellen
mkdir /etc/icinga2/cluster
vi /etc/icinga2/cluster/icinga-right.conf
object Host "icinga-right" {
display_name = "Health Checks on icinga-right"
address = "icinga-right.xinux.org"
check_command = "hostalive"
}
object Service "cluster" {
check_command = "cluster"
check_interval = 5s
retry_interval = 1s
host_name = "icinga-right"
}
Konfiguration anwenden
sicherstellen das die neue Konfiguration benutzt wird /etc/icinga2/icinga2.conf
# include_recursive "conf.d" include_recursive "cluster"
Icinga neue hosts übernehmen
- in der nodliste müssten die neun node schon angezeigt werden (sofern sie schon online sind)
icinga2 node list
- mit node update-config werden die entsprechenden Einträge in repository.d angelegt
icinga2 node update-config
- nach einem reload werden die nodes auch im webinterface übernommen
service icinga2 reload
icinga-right-1 Konfigurieren
api anpassen
api conf bearbeiten
vi features-available/api.conf
/**
* The API listener is used for distributed monitoring setups.
*/
object ApiListener "api" {
cert_path = SysconfDir + "/icinga2/pki/" + NodeName + ".crt"
key_path = SysconfDir + "/icinga2/pki/" + NodeName + ".key"
ca_path = SysconfDir + "/icinga2/pki/ca.crt"
accept_config = true
accept_commands = true
ticket_salt = TicketSalt
}
api conf aktiviren
ln ./features-available/api.conf ./features-enabled/
Zone & Namen definieren
/etc/icinga2/constants.conf
const ZoneName = "icinga-right-1.xinux.org" const NodeName = "icinga-right-1.xinux.org"
Zone anlegen
- die Zonen anlegen
/etc/icinga2/zones.conf
/*
* Generated by Icinga 2 node setup commands
* on 2016-07-04 13:28:43 +0000
*/
object Endpoint "icinga-right.xinux.org" {
host = "icinga-right.xinux.org"
port = "5665"
}
object Zone "master" {
endpoints = [ "icinga-right.xinux.org" ]
}
object Endpoint NodeName {
}
object Zone ZoneName {
endpoints = [ NodeName ]
parent = "master"
}
icinga neustarten
service icinga restart
Nütziches
Debuging
tail -f /var/log/icinga2/icinga2.log tail -f /var/log/icinga2/startup.log
- löschen des chache ordners
rm -r /var/lib/icinga2/api/zones/*
- debguen
icinga2 feature enable debuglog service icinga2 restart tail -f /var/log/icinga2/debug.log
links
https://wiki.icinga.org/display/howtos/Icinga2+Distributed+Cluster+Install+with+CentOS+6