Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Config-MGMT / Puppet im Monitoring-Umfeld

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Config-MGMT / Puppet im Monitoring-Umfeld

Vortrag zur Nutzung des Config Management Systems Puppet im Monitoring Umfeld, im Zusammenspiel mit Check_MK. Gehalten von Sascha Brechmann

Avatar for mc-chaos

mc-chaos

May 16, 2014
Tweet

More Decks by mc-chaos

Other Decks in Technology

Transcript

  1. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    1 / 39 Puppet im Monitoring-Umfeld Übersicht zum Einsatz von Nagios / Check_MK, unterstützt/gesteuert durch Puppet.
  2. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    2 / 39 Vita: Sascha Brechmann • Linux-User seit Debian „Bo/Hamm“ • Nagios-User seit 2005 • Puppet-User seit 2010 • Check_MK User seit 2010/2011 • Projekt-Leader „Customer-Cloud“ • Projekt-Leader “Puppet“ • Projekt-Leader „Log-Analyse“ • Projekt-Leader „Hadoop“
  3. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    3 / 39 Nagios-Umgebung, in welcher ich tätig bin • Nodes (Server; VMs;Storage; Network Devices) – >6.500 • Services – >22.000 • Nagios/OMD Server – >16 ▪ Locationen - Europe (Hannover 2 Datacenter) - Nord- / Süd-Amerika (Miami 1 Datacenter) - Asien / China (Shanghai 1 Datacenter)
  4. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    5 / 39 Puppet Nagios_* Resources • Vorraussetzungen: – Exported Resources ist eingerichtet – Server + Clients Puppet Managed – Nagios-Config ist unter /etc/nagios zu finden • Ein alternativer Path geht auch, dann funktioniert aber das automatische Löschen nicht mehr sauber
  5. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    6 / 39 Puppet Nagios_* Resources Übersicht der wichtigsten Nagios Resourcen: • nagios_host / nagios_hostgroup • nagios_service / nagios_servicegroup • nagios_contact / nagios_contactgroup • nagios_timeperiod • nagios_command => http://docs.puppetlabs.com/references/latest/type.html
  6. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    7 / 39 Puppet Nagios Resources class nagios::client { package{ 'nagios-plugins- ping': ensure => present, } #package # set resources and # populate # /etc/nagios/nagios_*.cfg @@nagios_host { $fqdn: ensure => present, alias => $hostname, address => $ipaddress, use => "generic-host", } #nagios_host @@nagios_service { "check_ping_$ {hostname}": use => "check_ping", host_name => "$fqdn", } #nagios_service } #class
  7. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    8 / 39 Puppet Nagios Resources class apache::vhost::monitoring { ## Check_HTTP Remote Host via check_http @@nagios_service { "check_http_${hostname}": use => "check-http", host_name => "$fqdn", } #nagios_service ## Check Apache Prozess via NRPE @@nagios_service { "check_http_processes_${hostname}": use => "remote-nrpe-httpd-procs", host_name => "$fqdn", } #nagios_service } #class
  8. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    9 / 39 Puppet Nagios Resources class nagios::server { package { 'nagios3' : ensure => installed, } #package service { 'nagios3' : ensure => running, require => Package[nagios3], } #service # collect resources and populate /etc/nagios/nagios_*.cfg Nagios_host <<||>> Nagios_service <<||>> } #class
  9. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    10 / 39 Puppet-Check_MK-Module • Puppet Modul zum Installieren von CMK/OMD – http://forge.puppetlabs.com/erwbgy/check_mk – https://github.com/jthornhill/puppet-checkmk Server.pp: class { 'check_mk': filestore => 'puppet:///files/check_mk', package => 'omd-1.10-rh61-31.x86_64.rpm', Site => 'customer-name', } #class --------------------- Agent.pp: include check_mk::agent
  10. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    11 / 39 Weitere Themen • Advance Agent-Usage – Host Templates – MRPE • Host-Dokumentation – Exportierte Resourcen • MK-Files • Host_Parents • local_checks • plugin_checks
  11. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    12 / 39 Advance Agent-Usage • Setzen der Check_MK Tags via Puppet – Beim Template • Via „Puppet“ check_mk_tags Variable bzw. hiera • Via Puppet Facts – FQDN – Operationsystem – usw. ->Facter • Via Custom Facts • Via if „has_variable“ • Setzen von Hostalias und Notes_/Action_URL
  12. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    13 / 39 all_hosts += [ " <%= fqdn -%>|CG_netde | CG_customer | <%= architecture -%>| <%= operatingsystem -%> | processorcount_<%= processorcount -%> | network_<%= scope.lookupvar('::ipaddress').split(".")[0..2].join('_') -%> | <% if hostname[/stage|dev/] == nil %>tcp<% else %>ping<% end %> | <% if @mysql_role %>mysql_role_<%=mysql_role-%><%else%>no_mysql_role<%end%> | <% if @puppet_classes_csv %> <%= puppet_classes_csv.split(",").join('|').split(":").join('_') -%> <%end%>|<%= mktags.join('|') %> ", ] extra_host_conf['alias'] += [ ( '<%= hostname -%>', ['<%= fqdn -%>'], ), ] extra_host_conf['notes_url'] += [ ("/<%= omd_site -%>/wiki/doku.php?id=nagios_doku:hosts:<%= hostname -%>", ['<%= fqdn -%>'], ), ] → $OMD_ROOT/etc/check_mk/conf.d/$FQDN.mk + CMK -I $FQDN + CMK -O Puppet Tags im host.erb Template Statischer Text
  13. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    14 / 39 all_hosts += [ " <%= fqdn -%>|CG_netde | CG_customer | <%= architecture -%>| <%= operatingsystem -%> | processorcount_<%= processorcount -%> | network_<%= scope.lookupvar('::ipaddress').split(".")[0..2].join('_') -%> | <% if hostname[/stage|dev/] == nil %>tcp<% else %>ping<% end %> | <% if @mysql_role %>mysql_role_<%=mysql_role-%><%else%>no_mysql_role<%end%> | <%= mktags.join('|') %> ", ] extra_host_conf['alias'] += [ ( '<%= hostname -%>', ['<%= fqdn -%>'], ), ] extra_host_conf['notes_url'] += [ ("/<%= omd_site -%>/wiki/doku.php?id=nagios_doku:hosts:<%= hostname -%>", ['<%= fqdn -%>'], ), ] → $OMD_ROOT/etc/check_mk/conf.d/$FQDN.mk + CMK -I $FQDN + CMK -O Puppet Tags im host.erb Template Facter Fact
  14. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    15 / 39 all_hosts += [ " <%= fqdn -%>|CG_netde | CG_customer | <%= architecture -%>| <%= operatingsystem -%> | processorcount_<%= processorcount -%> | network_<%= scope.lookupvar('::ipaddress').split(".")[0..2].join('_') -%> | <% if hostname[/stage|dev/] == nil %>tcp<% else %>ping<% end %> | <% if @mysql_role %>mysql_role_<%=mysql_role-%><%else%>no_mysql_role<%end%> | <%= mktags.join('|') %> ", ] extra_host_conf['alias'] += [ ( '<%= hostname -%>', ['<%= fqdn -%>'], ), ] extra_host_conf['notes_url'] += [ ("/<%= omd_site -%>/wiki/doku.php?id=nagios_doku:hosts:<%= hostname -%>", ['<%= fqdn - %>'], ), ] → $OMD_ROOT/etc/check_mk/conf.d/$FQDN.mk + CMK -I $FQDN + CMK -O Puppet Tags im host.erb Template if; than; else Schleife
  15. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    16 / 39 all_hosts += [ " <%= fqdn -%>|CG_netde | CG_customer | <%= architecture -%>| <%= operatingsystem -%> | processorcount_<%= processorcount -%> | network_<%= scope.lookupvar('::ipaddress').split(".")[0..2].join('_') -%> | <% if hostname[/stage|dev/] == nil %>tcp<% else %>ping<% end %> | <% if @mysql_role %>mysql_role_<%=mysql_role-%><%else%>no_mysql_role<%end%> | <%= mktags.join('|') %> ", ] extra_host_conf['alias'] += [ ( '<%= hostname -%>', ['<%= fqdn -%>'], ), ] extra_host_conf['notes_url'] += [ ("/<%= omd_site -%>/wiki/doku.php?id=nagios_doku:hosts:<%= hostname -%>", ['<%= fqdn -%>'], ), ] → $OMD_ROOT/etc/check_mk/conf.d/$FQDN.mk + CMK -I $FQDN + CMK -O Puppet Tags im host.erb Template Transformation einer Variable
  16. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    17 / 39 all_hosts += [ " <%= fqdn -%>|CG_netde | CG_customer | <%= architecture -%>| <%= operatingsystem -%> | processorcount_<%= processorcount -%> | network_<%= scope.lookupvar('::ipaddress').split(".")[0..2].join('_') -%> | <% if hostname[/stage|dev/] == nil %>tcp<% else %>ping<% end %> | <% if @mysql_role %>mysql_role_<%=mysql_role-%><%else%>no_mysql_role<%end%> | <%= mktags.join('|') %> ", ] extra_host_conf['alias'] += [ ( '<%= hostname -%>', ['<%= fqdn -%>'], ), ] extra_host_conf['notes_url'] += [ ("/<%= omd_site -%>/wiki/doku.php?id=nagios_doku:hosts:<%= hostname -%>", ['<%= fqdn -%>'], ), ] → $OMD_ROOT/etc/check_mk/conf.d/$FQDN.mk + CMK -I $FQDN + CMK -O Puppet Tags im host.erb Template Überprüfung ob eine Variable gesetzt ist
  17. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    18 / 39 all_hosts += [ " <%= fqdn -%>|CG_netde | CG_customer | <%= architecture -%>| <%= operatingsystem -%> | processorcount_<%= processorcount -%> | network_<%= scope.lookupvar('::ipaddress').split(".")[0..2].join('_') -%> | <% if hostname[/stage|dev/] == nil %>tcp<% else %>ping<% end %> | <% if @mysql_role %>mysql_role_<%=mysql_role-%><%else%>no_mysql_role<%end%> | <%= mktags.join('|') %> ", ] extra_host_conf['alias'] += [ ( '<%= hostname -%>', ['<%= fqdn -%>'], ), ] extra_host_conf['notes_url'] += [ ("/<%= omd_site -%>/wiki/doku.php?id=nagios_doku:hosts:<%= hostname -%>", ['<%= fqdn -%>'], ), ] → $OMD_ROOT/etc/check_mk/conf.d/$FQDN.mk + CMK -I $FQDN + CMK -O Puppet Tags im host.erb Template Puppet-Array
  18. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    19 / 39 all_hosts += [ " <%= fqdn -%>|CG_netde | CG_customer | <%= architecture -%>| <%= operatingsystem -%> | processorcount_<%= processorcount -%> | network_<%= scope.lookupvar('::ipaddress').split(".")[0..2].join('_') -%> | <% if hostname[/stage|dev/] == nil %>tcp<% else %>ping<% end %> | <% if @mysql_role %>mysql_role_<%=mysql_role-%><%else%>no_mysql_role<%end%> | <% if @puppet_classes_csv %> <%= puppet_classes_csv.split(",").join('|').split(":").join('_') -%> <%end%>|<%= mktags.join('|') %> ", ] extra_host_conf['alias'] += [ ( '<%= hostname -%>', ['<%= fqdn -%>'], ), ] extra_host_conf['notes_url'] += [ ("/<%= omd_site -%>/wiki/doku.php?id=nagios_doku:hosts:<%= hostname -%>", ['<%= fqdn -%>'], ), ] → $OMD_ROOT/etc/check_mk/conf.d/$FQDN.mk + CMK -I $FQDN + CMK -O Puppet Tags im host.erb Template Custom Puppet-Fact, welcher alle Puppet-Klassen eines Hosts enthält. ->/var/lib/puppet/classes.txt
  19. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    20 / 39 all_hosts += [ " <%= fqdn -%>|CG_netde | CG_customer | <%= architecture -%>| <%= operatingsystem -%> | processorcount_<%= processorcount -%> | network_<%= scope.lookupvar('::ipaddress').split(".")[0..2].join('_') -%> | <% if hostname[/stage|dev/] == nil %>tcp<% else %>ping<% end %> | <% if @mysql_role %>mysql_role_<%=mysql_role-%><%else%>no_mysql_role<%end%> | <%= mktags.join('|') %> ", ] extra_host_conf['alias'] += [ ( '<%= hostname -%>', ['<%= fqdn -%>'], ), ] extra_host_conf['notes_url'] += [ ("/<%= omd_site -%>/wiki/doku.php?id=nagios_doku:hosts:<%= hostname -%>", ['<%= fqdn -%>'], ), ] → $OMD_ROOT/etc/check_mk/conf.d/$FQDN.mk + CMK -I $FQDN + CMK -O Puppet Tags im host.erb Template Setzen von host-spezifischem Alias
  20. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    21 / 39 all_hosts += [ " <%= fqdn -%>|CG_netde | CG_customer | <%= architecture -%>| <%= operatingsystem -%> | processorcount_<%= processorcount -%> | network_<%= scope.lookupvar('::ipaddress').split(".")[0..2].join('_') -%> | <% if hostname[/stage|dev/] == nil %>tcp<% else %>ping<% end %> | <% if @mysql_role %>mysql_role_<%=mysql_role-%><%else%>no_mysql_role<%end%> | <%= mktags.join('|') %> ", ] extra_host_conf['alias'] += [ ( '<%= hostname -%>', ['<%= fqdn -%>'], ), ] extra_host_conf['notes_url'] += [ ("/<%= omd_site -%>/wiki/doku.php?id=nagios_doku:hosts:<%= hostname -%>", ['<%= fqdn -%>'], ), ] → $OMD_ROOT/etc/check_mk/conf.d/$FQDN.mk + CMK -I $FQDN + CMK -O via „exportierter Resource“ Puppet Tags im host.erb Template
  21. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    22 / 39 Advance Agent-Usage • Nutzung von Puppet-Concat um Agent-Konfig- Files aus Fragmenten zu erstellen – /etc/check_mk/mrpe.cfg – /etc/check_mk/logwatch.cfg – /etc/check_mk/fileinfo.cfg
  22. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    23 / 39 Check_MK MRPE Nagios NRPE Ersatz, sehr gut geeignet um lokale Nagios-Checks mit den Nagios-Plugins durch zuführen. Leider werden alle Checks mit dem gleichen Interval ausgeführt wie der Agent (default= 1min), es gibt aber einen Patch um dieses zu ändern → http://mathias-kettner.de/checkmk_mrpe.html
  23. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    24 / 39 Puppet-Concat „mrpe.cfg“ # Build mrpe.cfg from Fragments !!! concat{'/etc/check_mk/mrpe.cfg': Mode => '0644', owner => root, group => root, require => File['/etc/check_mk'], } # concat concat::fragment{'mrpe.cfg_header': target => '/etc/check_mk/mrpe.cfg', TARGET muss vorher definiert sein !!! content => template('check_mk/mrpe_head_cfg.erb'), order => 01, } #concat::fragment concat::fragment{'mrpe.cfg_User_Logged_in': Fragmente können überall erstellt werden. target => '/etc/check_mk/mrpe.cfg', Diese werden dann zusammen gesetzt in einer Datei. content => "User_Logged_in /usr/lib64/nagios/plugins/check_users -w 4 -c 6\n", order => 10, } #concat::fragment
  24. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    25 / 39 check_mk::agent.pp: @@file { "${wiki_confdir}/hosts/${::hostname}.txt": content => template('check_mk/wiki_hosts.txt.erb'), } #file Host-Dokumentation ==== General ==== ^ Hostname | <%= hostname -%> | ^ Domain | <%= domain -%> | ^ Virtualisiert | <%= is_virtual -%>, <%= virtual -%> | ^ CPU | vCPU | ^ Summe CPUs/Cores | <%= physicalprocessorcount -%> / <%= processorcount -%> | ^ RAM | <%= memorysize -%> | ^ Swap | <%= swapsize -%> | ^ Size HDD | <% if defined? lvm_pv_size %><% then %><%= lvm_pv_size %><% end %> | ^ OS-Version | <%= kernel -%> <%= operatingsystem -%> <%= operatingsystemrelease -%> | ^ Kernel-Version | <%= kernelrelease -%> | ^ Zeitzone | <%= timezone -%> | ==== Network ==== ^ Interfaces | <%= interfaces -%> | ^ IPs | <%= ipaddress -%> | ^ MACs | <%= macaddress -%> | ==== Zugewiesene Puppet Klassen ==== <% classes.each do |klass| -%> <%= klass -%> \\ <% end -%> http://www.nagios-wiki.de/nagios/howtos/wiki_hardware
  25. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    27 / 39 Doku-Agent Der „Doku-Agent“ ist ein Bash/Shell Skript, auf das via xinetd zugegriffen werden kann. Hier werden umfangreiche Systeminformationen gesammelt. Beispielsweise: - Block-Disk Devices - LVM Devices - Mount-Points - Installierte Software - Puppet-Klassen - Installations-Log (lokale Datei auf dem System)
  26. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    28 / 39 Doku-Agent #!/bin/bash #make sure tools work as expected LANG=C #this specifies which Headline level is used HL='====' echo "" echo -e "$HL PCI $HL\n" echo "^ Bus Address ^ Device Class ^ Details ^" /sbin/lspci |\ sed 's/\([0-9]\{2\}:[0-9a-z]\{2\}.[0-9]\)\([a-zA-Z0-9() ]\+\):\(.*\)$/| \1 | \2 | \3 |/g' echo echo -e "$HL Filesystems $HL\n" df -hPT -x tmpfs | awk '{print "| " $1 " | " $2 " | " $3 " | " $7 " |"}' echo echo -e "$HL Filesystems LVM $HL\n" echo "<code>" /sbin/lvdisplay echo "</code>" if [ "$(ls -1d /sys/block/sd* 2> /dev/null)" ]; then echo -e "$HL SCSI devices $HL\n" for DEV in `ls -1d /sys/block/sd* |sed 's/.*\///'` do MODEL=`cat /sys/block/ $DEV/device/model` SIZE=`cat /sys/block/$DEV/size` SIZE=`expr $SIZE / 2097152` echo "| /dev/$DEV | $MODEL | $SIZE GB |" done echo fi echo "</code>" echo -e "$HL Software $HL\n" echo "<code>" yum list installed -C -q echo "</code>"
  27. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    29 / 39 MK-Files • Puppet File Resource – $OMD_ROOT/etc/check_mk/conf.d/ • extra_host_conf.mk extra_host_conf['notification_period'] = [ # ( 'Nagios-Notification-Period-Name', [ 'TAG1', 'TAG2', 'TAG3' ], ALL_HOSTS ), ] • extra_service_conf.mk extra_service_conf["max_check_attempts"] = [ ("5", ALL_HOSTS, [""]) ] check_parameters = [ # ( (warn, crit), [ 'tag1, 'tag2' ], ALL_HOSTS, [ "check_name"]), ]
  28. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    30 / 39 Host_Parents • Puppet kennt das Netz und das default GW – Fact „ipaddress“ + Custom-Fact „gateway“ – check_mk TAG im Host.ERP Template parent.mk: parents = [ ## Parent -> Hostname #( "Nagios-Parent-Name", [ "Nagios_Host_Name1" ] ) ## Parent -> TAG #( "Nagios-Parent-Name2", ["TAG1"], ALL_HOSTS ), ]
  29. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    31 / 39 Hosts-Groups • Erzeugen von dynamischen Host-Groups auf Basis des Custom-Facts „Puppet_classes_csv“ – Alle Host, welche das Tag „mysql__server“ (das ist die Puppet-classe „mysql::server“ in umgewandelter Form) haben sollen in die Hostgrouppe MySQL-Server • Erzeugen von dynamischen Host-Groups auf Basis der IP (Front-/Back-/Verwaltungs-LAN) • Erzeugen von dynamischen Host-Groups auf Basis des Environment (DEV; Stage; QA; Prod)
  30. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    33 / 39 • Check_MK Systemtime: Interessant bei VMs, da dort kein NTP vorhanden sein muss. /usr/lib/check_mk_agent/plugins/systemtime: Damit wird der „Windows“-Check Systemtime unter Linux benutzbar. Ein einfacher Check ob die Systemtime OK ist. Plugin_Checks #!/bin/bash /bin/echo '<<<systemtime>>>' /bin/date '+%s'
  31. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    34 / 39 Weitere Plugin_Checks • apache_status • check_puppet (->github.com; Status des Puppet-Agent) • mk_logwatch • mk_postgres / mk_mysql • mk_job (Überwachung von Cronjobs) • agent_vsphere (VMWare ESXi + VCenter) • agent_emcvnx (EMC VNX Storage) • Check_ipmi remote (iLO / iDRAC with own interface) • check_bi_local
  32. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    35 / 39 Host-Icons zur besseren Übersichtlichkeit • Zuordnung von Host-Icons zu Tags – Tag“mysql__server“ -> MySQL Icon – Tag“apache__vhost“ -> Apache Icon • Beim Überscheidungen von mehreren Tags gilt das Prinzip „first match“. D.H. Wir haben spezifischere Icons (Blog/WebShop/Media-Sites) in der Reihenfolge weiter oben und dann eher unspezifische Icons wie Apache-Webserver • Am besten offizielle Pojekt-Icons nutzen (48x48)
  33. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    36 / 39 Host-Icons directory • Icons müssen meistens noch in die OMD Site kopiert werden. Hierfür bietet sich eine Puppet-File- Resource an: File{'${omd_root}/....: ensure => directory, recurse => true, purge => true, source => „puppet:///modules/check_mk/icons“ } #file
  34. 15.-16.05-2014 Monitoring Workshop 2014 © Sascha Brechmann Puppet im Monitoring-Umfeld

    37 / 39 Icons.mk: extra_host_conf["icon_image"] = [ # spezific icons ( 'webshop.png', ['customer_webshop'], ALL_HOSTS ), ( 'blog.png', ['customer_blog'], ALL_HOSTS ), # generic icons ( 'mysql.png', ['mysql__server'], ALL_HOSTS ), ( 'apache.png', ['apache__vhost'], ALL_HOSTS ), ( 'centos.png', ['centos'], ALL_HOSTS ), # all hosts with tag 'linux' ( 'tux.png', ['linux'], ALL_HOSTS ), # all hosts with tag 'linux' ] Beispiele für Icons-Regeln