Download ppt - Where I Want to be

Transcript
Page 1: Where I Want to be

2

Where I Want to be.....

+

Page 2: Where I Want to be

3

What I'll Settle For.....

Page 3: Where I Want to be

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: Where I Want to be

5

Tool Stack

Page 5: Where I Want to be

6

What????but #monitoringsucks and #ihatenagios

How could you?

Page 6: Where I Want to be

7

In defense of Nagios

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

Page 7: Where I Want to be

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: Where I Want to be

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: Where I Want to be

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: Where I Want to be

11

High Level View

Page 11: Where I Want to be

12

Configure Icinga Servers using Puppet Standard Types

Page 12: Where I Want to be

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: Where I Want to be

14

Configure Icinga using Nagios Types

Page 14: Where I Want to be

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: Where I Want to be

16

Configuring Hosts

Page 16: Where I Want to be

17

Overview

Page 17: Where I Want to be

18

Detailed Overview

Page 18: Where I Want to be

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: Where I Want to be

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: Where I Want to be

21

PRO TIP: Use your ENC

Page 21: Where I Want to be

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: Where I Want to be

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: Where I Want to be

24

PRO TIP: use tags

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

Page 24: Where I Want to be

25

Configuring Services/Commands

Page 25: Where I Want to be

26

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

Page 26: Where I Want to be

27

Icinga Commands

OR 'What actually gets run'

Use Macros to set paths in resource.cfg

Page 27: Where I Want to be

28

Dependencies

Page 28: Where I Want to be

29

PRO TIP: Dependencies

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

Page 29: Where I Want to be

30

Nagios_servicedependencies

Page 30: Where I Want to be

31

NRPE

Page 31: Where I Want to be

32

NRPE

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

Page 32: Where I Want to be

33

Configuring NRPE

Page 33: Where I Want to be

34

NRPE Checks

Page 34: Where I Want to be

35

Plugins

Page 35: Where I Want to be

36

exchange.nagios.org

Page 36: Where I Want to be

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: Where I Want to be

38

Workflows

Page 38: Where I Want to be

39

Watching Monitoring

Page 39: Where I Want to be

40

Scheduling Downtime

Page 40: Where I Want to be

41

Filtering

Page 41: Where I Want to be

42

Alerting

Page 42: Where I Want to be

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: Where I Want to be

44

Page 44: Where I Want to be

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