+ All Categories
Home > Documents > 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

Date post: 17-Dec-2015
Category:
Upload: dwight-obrien
View: 216 times
Download: 1 times
Share this document with a friend
Popular Tags:
44
2 Where I Want to be..... +
Transcript
Page 1: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

2

Where I Want to be.....

+

Page 2: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

3

What I'll Settle For.....

Page 3: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

4

Requirements

Rock solid stability Automated node addition (discovery) Scales horizontally Service dependency models Easy to write plugins Promotes sane workflows Unified front end view Flexible configuration

Page 4: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

5

Tool Stack

Page 5: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

6

What????but #monitoringsucks and #ihatenagios

How could you?

Page 6: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

7

In defense of Nagios

Been around since 1996 Has Service dependencies Easy to write plugins Easy-ish to troubleshoot ROCK SOLID

Page 7: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

8

Valid attacks on Nagios

No automated discovery It's complicated to setup Text files – really? Front end won't win any beauty contests Development is slow Stats collection is a PITA

Page 8: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

9

Solutions Use Icinga! Use Puppet to auto configure Stats – leave it to graphite. It's really good at that Big boys and girls learn their tools

Page 9: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

10

Icinga Fork of Nagios Configurations are compatible More solid architecture ( core, API, Web, IDODB ) Nice front end, nice mobile front end Can use NRPE

Page 10: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

11

High Level View

Page 11: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

12

Configure Icinga Servers using Puppet Standard Types

Page 12: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

13

Things to configure with Standard Types

icinga.cfg (file) => icinga main config file Apache icinga.conf (file) => http access to each server cgiauth.cfg (file) => cgi access cgi.cfg (file) => options, users templates.cfg (file) got lazy => use for basic classes idomod.cfg (template) => template for hostname to DB

Page 13: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

14

Configure Icinga using Nagios Types

Page 14: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

15

Puppet Nagios Types

nagios_command nagios_contact nagios_contactgroup nagios_host nagios_hostdependency nagios_hostescalation nagios_hostextinfo

nagios_hostgroup nagios_service nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo nagios_servicegroup nagios_timeperiod

Page 15: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

16

Configuring Hosts

Page 16: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

17

Overview

Page 17: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

18

Detailed Overview

Page 18: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

19

Store Configs

Store puppet info in a DB Retrieve information from

DB Share info across nodes Use thin_storeconfigs Set up on puppet master

Page 19: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

20

Exporting Nagios_host Resources

Export = Save to DB Use facter for dynamic data PRO TIP: use ENC PRO TIP: use targets PRO TIP: hostgroups PRO TIP: use tags

Page 20: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

21

PRO TIP: Use your ENC

Page 21: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

22

PRO TIP: use targets

Use cfg_dir in icinga.cfg Create a unique file per host

or service Addition and removal are

now super easy Also default dirs are in a

horrible place /etc/nagios

Page 22: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

23

PRO TIP: hostgroups Add machines to a

hostgroup Add services to a hostgroup New machines inherit all of

the services associated with a hostgroup

Page 23: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

24

PRO TIP: use tags

Tags allow you to filter resources so that you only realize those resources that you need

Page 24: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

25

Configuring Services/Commands

Page 25: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

26

Icinga Services OR 'Stuff I want to monitor' Associate with a hostgroup Use a target

Page 26: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

27

Icinga Commands

OR 'What actually gets run'

Use Macros to set paths in resource.cfg

Page 27: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

28

Dependencies

Page 28: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

29

PRO TIP: Dependencies

Unreliable services Cut down on the number of alerts Tell me what's really wrong Route alerts accordingly

Page 29: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

30

Nagios_servicedependencies

Page 30: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

31

NRPE

Page 31: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

32

NRPE

Runs on client Secured via SSL Has ACLs Runs as nobody Can run commands Useful for other things...

Page 32: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

33

Configuring NRPE

Page 33: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

34

NRPE Checks

Page 34: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

35

Plugins

Page 35: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

36

exchange.nagios.org

Page 36: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

37

Writing Plugins

Write in any language Output 1 line to stdout NRPE/Icinga/Nagios all use exit

codes to determine status Run by hand to check

Page 37: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

38

Workflows

Page 38: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

39

Watching Monitoring

Page 39: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

40

Scheduling Downtime

Page 40: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

41

Filtering

Page 41: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

42

Alerting

Page 42: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

43

#monitoringisawesome

REMOVE unreliable checks Just MONITOR – don't bolt on - especially stats TIER your monitoring Use timeperiods for sanity Delegate responses Use dependencies to pin down problems quickly Work smart

Page 43: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

44

Page 44: 1 Automating Monitoring with Puppet Chris Mague Moovweb May 23, 2012.

45

Resources Icinga

http://icinga.org

Puppet

http://docs.puppetlabs.com/references/latest/type.html#nagioscommand

NRPE

http://nagios.sourceforge.net/docs/3_0/addons.html

IRC

##infra-talk, #icinga, #puppet

Contact

[email protected], @maguec, #gaijin (freenode), http://blog.mague.com

Thanks

Yvonne Kong, Michael Catlin, Juan Ortega, Anthony Kong, Puppet Labs, Icinga Team


Recommended