We have installed Nagios in larger companies, with 1000+ devices/hosts and 10000+ service checks. Most of the tuning-info on the internet is focuced on smaller installations, with comments like “this will never be a problem, unless you have several hundred hosts.) Well, lots of people do. We also run lots of performance graphing using pnp4nagios, mrtg for all network devices and smokeping.
Here are a few key points to think about when planning your big installation:
- Buy a new server. You can run linux on old hardware, but in a large environment, you will hit the wall running with an old server.
- Use vanilla nagios, not a clone like opsview, with extended features. Opsview is driven by a MySQL database, and does not scale as well as a plain install. It is pretty though, and the web management is a very nice feature. But, everything has a cost… This one costs performance.
- Buy CPUs with high clock frequency, rather then several cores. Buy two, and cores is also nice, but not at the cost of frequency.
- RAM is cheap, 12 or 24 GB or so should be plenty. (Make sure that if you get a new processor -it will have memory in 3x, not 2x as before. So 6,12,18,24 GB etc.
- Disk IO. This is your most important consideration. You do not need much disk, but you need fast disks. Either get several 15K SAS drives in Raid10, or just go for two SSD-drives in Raid1. 2*SSD might be cheaper then 10*SAS, and you do not need the space anyways.
- Multiple Gigabit network cards using bonding (Network-IO and IRQs will be a problem at some point) At least 2* Gigabit, maybe more.
- Read this Nagios Performance Tuning
- Ignore the last point about hardware not being an issue
- With the tips from the article above, and a reasonable new box, you should have no problems monitoring at least 1000-2000 hosts and 10000-20000 services. Anyone with higher numbers, let me know what hardware you are using!
- pnp4nagios, mrtg and smokeping will also generate some IO, but for the numbers above, it should work OK. If you still have problems, you might need to think about splitting some of the testing to a seperate box, and deliver the results via passive checks to the main boks. Mrtg/smokeping can also be smart to move to another box.
- A few smaller things to remember:
- Make sure your plugins has as little overhead as possible. This means use compiled code ehen you can, if not possible, use perl, and make sure the tests supports the Nagios embedded perl. Try not to use shell/bash-scripts if at all possible
- Turn down the frequency of tests that does not have to be run often. i.e. version checks, every 12 hour or similar. (check_interval xxx) xxx in minutes
- Turn off performance data processing on tests that does not support performance output (process_perf_data 0)
- Did I forget anything ? -please leave a comment with suggestions!
Vi har installert Nagios i store installasjoner, med 1000+ devicer (servere, switcher,upser etc) og rundt 10000 servicesjekker. Det meste av informasjon som fins på nettet retter seg mot mindre installasjoner, der dei gjerne skriver “dette blir aldri et problem før du har fleire hundre hoster.” Det er det mange som har.
Vår erfaring er at det er et par viktige ting en bør tenke på.
- Kjøp en ny server. Det er alltids mulig å kjøre linux på en gammel server, og installere nagios på den -men med et stort miljø vil du alltid møte veggen på gammel hardware.
- Bruk vanilla nagios, ikkje kloner som Opsview. Desse har ofte en database-backend, som skalerer dårlig.
- Kjøp prosessor(er) med rask klokkefrekvens (Mange, raske, men klokkefrekvensen er viktigere enn antal kjærner)
- RAM er gratis, men veldig mykje RAM er ikkje så viktig, 12GB burde vere greitt.
- Disk IO er viktig. Mange SAS-disker i Raid 10 vil alltid vere bra. No er og SSD-disker mulig å få i standard servere -kan vere ei muligheit. Diskplass er skjeldan et problem, sjølv dei største installasjonane eg har sett klarer seg med 30-40 GB. 2* SSD i Raid1 er kanskje billigere enn 8* SAS i Raid10
- Multiple Gigabit nettverkskort med Bonding (Nettverks-IO og IRQ blir et problem) -minst 2 nettverkskort
- Les denne Nagios Performance Tuning
- Siste punktet i denne seier “NOTE: Hardware performance shouldn’t be an issue unless: 1) you’re monitoring thousands of services, 2) you’re doing a lot of post-processing of performance data, etc. ” -Mange har begge deler, og da _er_ hardware et problem.
- Med tipsa som står i Nagios Performance Tuning-dokumentet, og en relativt ny boks med hardware som overfor, bør 1000 hoster og 10000 tester vere greitt. Sjølv med en del performancegrafing. Har du et enda større miljø er det mulig du må tenkte på å flytte deler av testinga til en seperat boks, og bruk passive sjekker til å levere data til hovedboksen.
- Et par små ting å huske:
- Pass på at nagios-testane du bruker har minst mulig overhead. Det betyr at tester bør vere kompilert kode, eller perl, og helst ikkje bash/shell-scripting. perl-pluginsbør støtte embedded motoren i nagios.
- skru ned frekvensen på tester som ikkje må kjøres kvart 5 minutt. versjonssjekker kan t.d. kjøres kvar 12/24 time el.l. (check_interval xxx) xxx i minutt
- skru av performance-data prosessering på tester uten performance data (process_perf_data 0)
- Har eg gløymt noke her? -legg gjerne igjen en kommentar…