monitoring as code
TRANSCRIPT
![Page 1: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/1.jpg)
Cfgmgmt Camp | Gent | 07.02.2017
Monitoring as CodeIcinga 2
07.02.2017
![Page 2: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/2.jpg)
• Blerim Sheqa• Product Manager Partners & Integration• Working @netways• @bobapple
![Page 3: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/3.jpg)
![Page 4: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/4.jpg)
Introduction to Icinga 2
![Page 5: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/5.jpg)
Icinga is a scalable and extensible monitoring system which checks the availability of your resources, notifies users of outages and provides extensive metrics.
availability notifiesmetrics
![Page 6: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/6.jpg)
Checker
Notify
Gelf
Perfdata Graphite
IDO
InfluxDB
Livestatus
• Multithreaded• Modular
Features• Zone support• Secure Agent
![Page 7: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/7.jpg)
• Availability and scaling zones• Automatic redistribution of
checks• Zones for multitenancy
environments
zonesredistribution
multitenancy
![Page 8: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/8.jpg)
Automation
![Page 9: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/9.jpg)
![Page 10: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/10.jpg)
Configuration
![Page 11: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/11.jpg)
• Objects• Rule based• Conditions• Loops• Custom Functions
Rule
![Page 12: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/12.jpg)
object Host "demo.icinga.com" { import "generic-host"
address = "127.0.0.1" address6 = "::1"
vars.os = "Linux }
vars.os = "Linux"
![Page 13: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/13.jpg)
Rules
![Page 14: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/14.jpg)
apply Service "ssh" { import "generic-service"
check_command = "ssh"
assign where host.vars.os == "Linux" ignore where host.vars.dev == true }
assign
![Page 15: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/15.jpg)
![Page 16: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/16.jpg)
More Rules
![Page 17: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/17.jpg)
object Host "demo.icinga.com" { import "generic-host"
address = "127.0.0.1" address6 = "::1"
vars.http_vhosts["Icinga Web 2" http_uri = "/icingaweb2" }
vars.http_vhosts["Grafana"] = { http_port = 3000 }}
vars.http_vhosts["Icinga Web 2"] = { http_uri = "/icingaweb2" }
![Page 18: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/18.jpg)
apply Service for ( ){ import "generic-service"
display_name = "http " + http_vhost check_command = "http"
}vars += config
http_vhost => config in host.vars_http_vhosts
![Page 19: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/19.jpg)
![Page 20: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/20.jpg)
object Host "demo.icinga.com" { import "generic-host"
address = "127.0.0.1" address6 = "::1"
vars.mysql_instance["instance-1"] = { mysql_health_port = 3306 mysql_health_username = "user1” mysql_health_password = "supersecret” }
vars.mysql_instance["instance-2"] = { mysql_health_port = 3307 mysql_health_username = "user2” mysql_health_password = "verysecret" }}
![Page 21: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/21.jpg)
Conditions
![Page 22: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/22.jpg)
apply Service "dummy" { import "generic-service"
check_command = "dummy"
if (host.vars.environment == "dev { check_interval = 30m } else { check_interval = 5m }
assign where match("srv-*", host.name)}
if (host.vars.environment == "dev")
![Page 23: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/23.jpg)
Functions
![Page 24: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/24.jpg)
object Service ”Load" { check_command = "load” host_name = ”backup.abc.com”
vars.load_warning = {{ { return 20 } else { return 5 } }}
}
if (get_time_period("backup").is_inside)
![Page 25: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/25.jpg)
API
![Page 26: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/26.jpg)
• HTTP with RESTful Url Schema • X.509 and/or Basic Auth• Create, Modify and Delete objects• Event Stream based on Types and
Filters
RESTful
![Page 27: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/27.jpg)
Director
![Page 28: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/28.jpg)
• Config via Webinterface• Config Import• Versioning• API
![Page 29: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/29.jpg)
• Import Sources• AWS• SQL• LDAP• PuppetDB• Files
![Page 30: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/30.jpg)
object Host "demo.icinga.com" { import "generic-host"
address = "127.0.0.1" address6 = "::1"
vars.kernel = ”linux” vars.osfamily = “debian” vars.domain = “example.com” vars.manufacturer = “Dill” vars.is_virtual = false}
![Page 31: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/31.jpg)
![Page 32: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/32.jpg)
• Periodic Imports• Hands-Free Config Deployments
![Page 33: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/33.jpg)
![Page 34: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/34.jpg)
• Versioning• Full Audit Log• Fast Config Reverts
![Page 35: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/35.jpg)
![Page 36: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/36.jpg)
Conclusion
![Page 37: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/37.jpg)
• Download Icinga 2 and Icinga Web 2
• Play with the Vagrant boxes• Rethink your configuration• Give us feedback
Vagrant boxes
![Page 38: Monitoring as code](https://reader035.vdocument.in/reader035/viewer/2022062523/58a299c41a28ab36508b729d/html5/thumbnails/38.jpg)
www.icinga.orgdev.icinga.orggit.icinga.org
Thank You!@icinga/icinga+icinga