Freitag, 9. Dezember 2011

Icinga: Monitoring von VMWare ESX(i) Servern

Icinga: Monitoring von VMWare ESX(i) Servern / virtuellen Maschinen
--------------------------------------------------------------------


Nach dem Icinga installiert und eingerichtet ist kann man Icinga
dazu nutzen ESX(i) Server zu monitoren.

Es gibt in dem Beispiel gibt es nachher einen Benutzer/User: john
mit der email-addresse: john@domain.tld.
Dieser Benutzer gehört der Gruppe: esx-support.
Diese Gruppe hat Zugriff auf Services/Hosts die: "contactgroups esx-support"
enthalten.

Der User: icingaadmin hat zugriff auf alles also auch auf
den icingaserver (localhost.cfg).

Es gibt 3 Hostgruppen: "ESX Server", "ESXi Server" und "Windows Server"

Die Storage auf den ESX(i) Servern heissen "datastore1".


In der Anleitung gehe ich davon aus das Icinga unter: /usr/local/icinga installiert ist.


Downloaden von Status Map Icons:

http://exchange.nagios.org/directory/Graphics-and-Logos/Images-and-Logos/F*Nagios-Icon-Pack/details

Die Datei: FNagios.tar.gz im Verzeichnis /usr/local/icinga/share/images entpacken.


Das check plugin: check_esx3.pl laden von http://exchange.nagios.org/directory/Plugins/Operating-Systems/*-Virtual-Environments/VMWare/check_esx3/details
dieses nach /usr/local/icinga/libexec kopieren und ausführbar machen.

# chown icinga.icinga /usr/local/icinga/libexec/check_esx3.pl
# chmod 755 /usr/local/icinga/libexec/check_esx3.pl


Das check plugin: check_esxi_hardware.py laden von http://www.claudiokuenzler.com/nagios-plugins/check_esxi_hardware.php

# chown icinga.icinga /usr/local/icinga/libexec/check_esxi_hardware.py
# chmod 755 /usr/local/icinga/libexec/check_esxi_hardware.py



Das check_plugin: check_mem.pl laden von http://exchange.nagios.org/directory/Plugins/System-Metrics/Memory/check_mem-2Epl/details


/usr/local/icinga/etc/cgi.cfg

diese Zeile sollten angepasst werden, sprich "esx-support" hinzu

authorized_for_system_information=icingaadmin,esx-support
authorized_for_all_services=icingaadmin,esx-support
authorized_for_all_hosts=icingaadmin,esx-support
authorized_for_all_service_commands=icingaadmin,esx-support


/usr/local/icinga/etc/resource.cfg

# Sets $USER1$ to be the path to the plugins
$USER1$=/usr/local/icinga/libexec

# Store some usernames and passwords (hidden from the CGIs)
$USER6$=root
$USER7$=password
$USER8$=root
$USER9$=password2



Diese Datei ist dafür gedacht das keine Passwörter im klartext in den Konfigdateien stehen.




# htpasswd -c /usr/local/icinga/etc/htpasswd.users john

Für User: John ein password festlegen.

/usr/local/icinga/etc/objects/contacts.cfg


define contact{
contact_name icingaadmin ; Short name of user
use generic-contact ; Inherit default values from generic-contact template (defined above)
alias Icinga Admin ; Full name of user

email icinga@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
}


define contact{
contact_name john; Short name of user
use generic-contact ; Inherit default values from generic-contact template (defined above)
alias John Smith ; Full name of user

contactgroups esx-support
email john@domain.tld ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
}



define contactgroup{
contactgroup_name admins
alias Icinga Administrators
members icingaadmin
}


define contactgroup{
contactgroup_name esx-support
alias ESX Administrators
members icingaadmin, john
}





/usr/local/icinga/etc/objects/hostgroups.cfg

define hostgroup{
hostgroup_name esx-servers; The name of the hostgroup
alias VMWARE ESX; Long name of the group
members esxi01; Comma separated list of hosts that belong to this group
}

define hostgroup{
hostgroup_name esxi-servers; The name of the hostgroup
alias VMWARE ESXi; Long name of the group
members esxi01; Comma separated list of hosts that belong to this group
}

define hostgroup{
hostgroup_name windows-servers; The name of the hostgroup
alias Windows Server; Long name of the group
members vcenter01; Comma separated list of hosts that belong to this group
}



/usr/local/icinga/etc/objects/commands.cfg



# 'check_by_ssh' command definition
define command{
command_name check_by_ssh
command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ -p $ARG1$ -l "$ARG2$" -C "$ARG3$" -t20
}




# 'check_mysql' command definition
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$
}


# 'check_ntp_time' command definition
define command{
command_name check_ntp_time
command_line $USER1$/check_ntp_time -H $HOSTADDRESS$
}

# 'check_mailq' command definition
define command{
command_name check_mailq
command_line $USER1$/check_mailq -w $ARG1$ -c $ARG2$
}

# 'check_dns' command definition
define command{
command_name check_dns
command_line $USER1$/check_dns -s $ARG1$ -H $ARG2$
}


# 'check_icinga' command definition
define command{
command_name check_icinga
command_line $USER1$/check_nagios -e 5 -F $ARG1$ -C $ARG2$
}


# 'check_mem' command definition
define command{
command_name check_mem
command_line $USER1$/check_mem.pl -w $ARG1$ -c $ARG2$ -f -C
}


# Hardwarecheck

# 'check_esxi_hardware' command definition
define command{
command_name check_esxi_hardware
command_line $USER1$/check_esxi_wbem.py https://$HOSTADDRESS$ $ARG1$ "$ARG2$" $ARG3$
}


# ESX(i) Server

define command{
command_name check_esx3_host_cpu_usage
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l cpu -s usage -w $ARG3$ -c $ARG4$
}


define command{
command_name check_esx3_host_mem_usage
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l mem -s usage -w $ARG3$ -c $ARG4$
}

define command{
command_name check_esx3_host_mem_overhead
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $USER12$ -l mem -s overhead -w $ARG3$ -c $ARG4$
}


define command{
command_name check_esx3_host_mem_memctl
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $USER12$ -l mem -s memctl -w $ARG3$ -c $ARG4$
}


define command{
command_name check_esx3_host_swap_usage
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l mem -s swap -w $ARG3$ -c $ARG4$
}

define command{
command_name check_esx3_host_net_usage
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l net -s usage -w $ARG3$ -c $ARG5$
}

define command{
command_name check_esx3_host_vmfs
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l vmfs -s "$ARG1$" -w "$ARG3$" -c "$ARG4$"
}


define command{
command_name check_esx3_host_vmfs_local
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l vmfs -s "$ARG3$"
}


define command{
command_name check_esx3_host_runtime_status
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l runtime -s status
}

define command{
command_name check_esx3_host_runtime_issues
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l runtime -s issues
}

define command{
command_name check_esx3_host_io_read
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l io -s read -w $ARG3$ -c $ARG4$
}

define command{
command_name check_esx3_host_io_write
command_line $USER1$/check_esx3.pl -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l io -s write -w $ARG3$ -c $ARG4$
}




## VM

define command{
command_name check_esx3_vm_cpu_usage
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG4$ -p $ARG5$ -N "$HOSTALIAS$" -l cpu -s usage -w $ARG2$ -c $ARG3$
}

define command{
command_name check_esx3_vm_cpu_mhz
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG4$ -p $ARG5$ -N "$HOSTALIAS$" -l cpu -s usagemhz -w $ARG2$ -c $ARG3$
}


define command{
command_name check_esx3_vm_mem_usage
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG4$ -p $ARG5$ -N "$HOSTALIAS$" -l mem -s usage -w $ARG2$ -c $ARG3$
}


define command{
command_name check_esx3_vm_mem_overhead
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG4$ -p $ARG5$ -N "$HOSTALIAS$" -l mem -s overhead -w $ARG2$ -c $ARG3$
}


define command{
command_name check_esx3_vm_swap_usage
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG4$ -p $ARG5$ -N "$HOSTALIAS$" -l mem -s swap -w $ARG2$ -c $ARG3$
}

define command{
command_name check_esx3_vm_net_usage
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG4$ -p $ARG5$ -N "$HOSTALIAS$" -l net -s usage -w $ARG2$ -c $ARG3$
}

define command{
command_name check_esx3_vm_runtime_cpu
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG4$ -p $ARG5$ -N "$HOSTALIAS$" -l runtime -s cpu -w $ARG2$ -c $ARG3$
}

define command{
command_name check_esx3_vm_runtime_mem
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG5$ -p $ARG5$ -N "$HOSTALIAS$" -l runtime -s mem -w $ARG2$ -c $ARG3$
}

define command{
command_name check_esx3_vm_runtime_status
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG4$ -p $ARG5$ -N "$HOSTALIAS$" -l runtime -s status
}

define command{
command_name check_esx3_vm_runtime_tools
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG2$ -p $ARG3$ -N "$HOSTALIAS$" -l runtime -s tools
}


define command{
command_name check_esx3_vm_runtime_state
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG2$ -p $ARG3$ -N "$HOSTALIAS$" -l runtime -s state
}

define command{
command_name check_esx3_vm_runtime_issues
command_line $USER1$/check_esx3.pl -H $ARG1$ -u $ARG2$ -p $ARG3$ -N "$HOSTALIAS$" -l runtime -s issues
}





# ESX(i) Datacenter / vCenter --> check VMs

define command{
command_name check_esx3_dc_host_cpu_usage
command_line $USER1$/check_esx3 -D $ARG1$ -u $ARG2$ -p $ARG3$ -H "$HOSTALIAS$" -l cpu -s usage -w $ARG2$ -c $ARG4$
}

define command{
command_name check_esx3_dc_host_mem_usage
command_line $USER1$/check_esx3 -D $ARG1$ -u $ARG2$ -p $ARG3$ -H "$HOSTALIAS$" -l mem -s usage -w $ARG2$ -c $ARG4$
}

define command{
command_name check_esx3_dc_host_swap_usage
command_line $USER1$/check_esx3 -D $ARG1$ -u $ARG2$ -p $ARG3$ -H "$HOSTALIAS$" -l swap -s usage -w $ARG2$ -c $ARG4$
}

define command{
command_name check_esx3_dc_host_net_usage
command_line $USER1$/check_esx3 -D $ARG1$ -u $ARG2$ -p $ARG3$ -H "$HOSTALIAS$" -l net -s usage -w $ARG2$ -c $ARG3$
}

define command{
command_name check_esx3_dc_host_runtime_status
command_line $USER1$/check_esx3 -D $ARG1$ -u $ARG2$ -p $ARG3$ -H "$HOSTALIAS$" -l -l runtime -s status
}

define command{
command_name check_esx3_dc_host_runtime_state
command_line $USER1$/check_esx3 -D $ARG1$ -u $ARG2$ -p $ARG3$ -H "$HOSTALIAS$" -l -l runtime -s state
}

define command{
command_name check_esx3_dc_host_runtime_tools
command_line $USER1$/check_esx3 -D $ARG1$ -u $ARG2$ -p $ARG3$ -H "$HOSTALIAS$" -l runtime -s tools
}

define command{
command_name check_esx3_dc_host_runtime_issue
command_line $USER1$/check_esx3 -D $ARG1$ -u $ARG2$ -p $ARG3$ -H "$HOSTALIAS$" -l runtime -s issues
}






/usr/local/icinga/etc/icinga.cfg

cfg_dir=/usr/local/icinga/etc/objects


/usr/local/icinga/etc/objects/esxi01.cfg


# Define a host for the local machine

define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name esxi01
alias esxi01
address esxi01
statusmap_image vendors/vmware.png
contact_groups esx-support
notifications_enabled 1
}




###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################



# Define a service to "ping" the local machine

define service{
use local-service ; Name of service template to use
host_name esxi01
service_description PING
check_command check_ping!100.0,20%!500.0,60%
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esxi01
service_description SSH
check_command check_ssh
contact_groups esx-support
notifications_enabled 1

}


define service{
use generic-service
host_name esx01
service_description HARDWARE
check_command check_esxi_hardware!$USER6$!$USER7$!auto
notifications_enabled 1
}



define service{
use local-service ; Name of service template to use
host_name esxi01
service_description ESXI_HOSTCPUUSAGE
check_command check_esx3_host_cpu_usage!80!90
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name esxi01
service_description ESXI_HOSTMEM
check_command check_esx3_host_mem_usage!80!90
contact_groups esx-support
notifications_enabled 1
}



define service{
use local-service ; Name of service template to use
host_name esxi01
service_description ESXI_HOSTSWAP
check_command check_esx3_host_swap_usage!80!90
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name esxi01
service_description ESXI_HOSTNETUSAGE
check_command check_esx3_host_net_usage!102400!204800
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esxi01
service_description ESXI_HOSTVMFS_LOCAL
check_command check_esx3_host_vmfs!datastore1!90%!95%
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esxi01
service_description ESXI_RUNTMIESTATUS
check_command check_esx3_host_runtime_status
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esxi01
service_description ESXI_HOSTIOREAD
check_command check_esx3_host_io_read!40!90
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esxi01
service_description ESXI_HOSTIOWRITE
check_command check_esx3_host_io_write!40!90
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name esxi01
service_description HTTPS
check_command check_https
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name esxi01
service_description HTTP
check_command check_http
contact_groups esx-support
notifications_enabled 1
}





/usr/local/icinga/etc/objects/esx01.cfg (über vCenter "vcenter01")


# Define a host for the local machine

define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name esx01
alias esx01
address esx01
statusmap_image vendors/vmware2.png
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name esx01
service_description PING
check_command check_ping!100.0,20%!500.0,60%
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esx01
service_description SSH
check_command check_ssh
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esx01
service_description HTTPS
check_command check_https
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name esx01
service_description HTTP
check_command check_http
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esx01
service_description ESX_HOSTCPUUSAGE
check_command check_esx3_host_cpu_usage!$USER6$!$USER7$!80!90
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name esx01
service_description ESX_HOSTMEM
check_command check_esx3_host_mem_usage!$USER6$!$USER7$!80!90
contact_groups esx-support
notifications_enabled 1
}



define service{
use local-service ; Name of service template to use
host_name esx01
service_description ESX_HOSTSWAP
check_command check_esx3_host_swap_usage!$USER6$!$USER7$!80!90
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name esx01
service_description ESX_HOSTNETUSAGE
check_command check_esx3_host_net_usage!$USER6$!$USER7$!102400!204800
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esx01
service_description ESX_HOSTVMFS_LOCAL
check_command check_esx3_host_vmfs!datastore1!$USER6$!$USER7$!90%!95%
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esx01
service_description ESX_RUNTMIESTATUS
check_command check_esx3_host_runtime_status!$USER6$!$USER7$
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esx01
service_description ESX_HOSTIOREAD
check_command check_esx3_host_io_read!40!90!$USER6$!$USER7$
contact_groups esx-support
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name esx01
service_description ESXI_HOSTIOWRITE
check_command check_esx3_host_io_write!$USER6$!$USER7$!40!90
contact_groups esx-support
notifications_enabled 1
}







/usr/local/icinga/etc/objects/vcenter01.cfg

WICHTIG ist das der alias = dem Namen auf dem ESX-Server ist (schreibweise beachten)



# Define a host for the local machine

define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name vcenter01
alias vcenter01
address vcenter01
statusmap_image vendors/vista.png
contact_groups esx-support
notifications_enabled 1
}

# Define a service to "ping" the local machine

define service{
use local-service ; Name of service template to use
host_name vcenter01
service_description PING
check_command check_ping!100.0,20%!500.0,60%
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name vcenter01
service_description HTTP
check_command check_http
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name vcenter01
service_description HTTPS
check_command check_https
notifications_enabled 1
}




define service{
use local-service ; Name of service template to use
host_name vcenter01
service_description VM_CPUUSAGE
check_command check_esx3_dc_host_cpu_usage!vcenter01!$USER8$!$USER9$!!80!90
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name vcenter01
service_description VM_MEM
check_command check_esx3_dc_host_mem_usage!vcenter01!$USER8$!$USER9$!80!90
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name vcenter01
service_description VM_SWAP
check_command check_esx3_dc_host_swap_usage!vcenter01!$USER8$!$USER9$!80!90
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name vcenter01
service_description VM_NETUSAGE
check_command check_esx3_dc_net_usage!vcenter01!$USER8$!$USER9$!102400!204800
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name vcenter01
service_description VM_RUNTMIESTATUS
check_command check_esx3_dc_runtime_status!$USER8$!$USER9$!vcenter01$USER8$!$USER9$
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name vcenter01
service_description VM_RUNTMIESTATE
check_command check_esx3_dc_runtime_state!vcenter01$USER8$!$USER9$
contact_groups esx-support
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name vcenter01
service_description VM_VMWARETools
check_command check_esx3_dc_runtime_tools!vcenter01$USER8$!$USER9$
contact_groups esx-support
notifications_enabled 1
}



/usr/local/icinga/etc/objects/localhost.cfg



# Define a host for the local machine

define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name localhost
alias localhost
address 127.0.0.1
statusmap_image vendors/ubuntu.png
}



define service{
use local-service ; Name of service template to use
host_name localhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description Root Partition
check_command check_local_disk!20%!10%!/
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description Current Users
check_command check_local_users!20!50
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name localhost
service_description Total Processes
check_command check_local_procs!250!400!RSZDT
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description Current Load
check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name localhost
service_description Swap Usage
check_command check_local_swap!20!10
notifications_enabled 1
}



define service{
use local-service ; Name of service template to use
host_name localhost
service_description SSH
check_command check_ssh
notifications_enabled 1
}



define service{
use local-service ; Name of service template to use
host_name localhost
service_description HTTP
check_command check_http
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description MySQL
check_command check_mysql!icinga!icinga
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description NTPTime
check_command check_ntp_time
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description SMTP
check_command check_smtp
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description MailQ
check_command check_mailq!5!10
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description DNS
check_command check_dns!192.168.1.1!www.heise.de
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name localhost
service_description Icinga
check_command check_icinga!/usr/local/icinga/var/status.dat!/usr/local/icinga/bin/icinga
notifications_enabled 1
}


define service{
use local-service ; Name of service template to use
host_name localhost
service_description MySQL-Query
check_command check_mysql_query!icinga_systemcommands!localhost!icinga!icinga!icinga
notifications_enabled 1
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description Memory
check_command check_mem!10!5
contact_groups admins
notifications_enabled 1
}







Prüfen der Konfiguration:

# /usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg


Wenn OK, Icinga durchstarten

# /etc/init.d/icinga reload

Icinga auf Ubuntu Server 11.10

Icinga auf Ubuntu Server 11.10 (64bit)
--------------------------------------

0. Installation Ubuntu Server

apt-get update
apt-get upgrade
1. apt-get install -y libdbi-dev libdbd-mysql build-essential libgd2-xpm-dev libjpeg62-dev libpng12-dev mysql-server mysql-client apache2 openssl libssl-dev libmysqlclient16-dev

2. useradd -m icinga
passwd icinga
groupadd icinga-cmd
usermod -a -G icinga-cmd icinga
usermod -a -G icinga-cmd www-data


3. cd /var/tmp
wget http://sourceforge.net/projects/icinga/files/icinga/1.6.1/icinga-1.6.1.tar.gz/download

tar xvfz icinga-1.6.1.tar.gz

cd /var/tmp/icinga-1.6.1
./configure --with-command-group=icinga-cmd --enable-idoutils
make all
sudo make fullinstall

4. cd /var/tmp
wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz/download
tar xvfz nagios-plugins-1.4.15.tar.gz

cd /usr/src/nagios-plugins-1.4.15
./configure --prefix=/usr/local/icinga --with-nagios-user=icinga
make
sudo make install


5.

sudo htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin
sudo /etc/init.d/apache2 restart
sudo mysql -u root -p
create database icinga;
GRANT USAGE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
GRANT SELECT , INSERT , UPDATE , DELETE ON icinga.* TO 'icinga'@'localhost';
flush privileges;
quit

cd /var/tmp/icinga-1.0.2/module/idoutils/db/mysql
sudo mysql -u root -p icinga < mysql.sql

sudo mv /usr/local/icinga/etc/ido2db.cfg-sample /usr/local/icinga/etc/ido2db.cfg
sudo mv /usr/local/icinga/etc/idomod.cfg-sample /usr/local/icinga/etc/idomod.cfg

sudo vi /usr/local/icinga/etc/ido2db.cfg

db_user und db_password anpassen wenn nicht "icinga" als password verwendet wurde.

sudo vi /usr/local/icinga/etc/icinga.cfg

broker_module=/usr/local/icinga/bin/idomod.o config_file=/usr/local/icinga/etc/idomod.cfg

sudo /etc/init.d/ido2db start
sudo /etc/init.d/icinga start
sudo update-rc.d ido2db defaults 50
sudo update-rc.d icinga defaults 51



püfen der config

cd /usr/local/icinga/bin
sudo ./icinga -v /usr/local/icinga/etc/icinga.cfg




sudo apt-get install sendmail mailutils

vi /etc/mail/sendmail.mc

add: FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl

vi /etc/mail/mailertable

example:

.domain.tld esmtp:[mailserver]


sendmailconfig



mail user@domain.tld

check mail recivied