Zobrazují se příspěvky se štítkemSNMP. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemSNMP. Zobrazit všechny příspěvky

čtvrtek 19. září 2013

FortiGate-100D vs Zabbix 2.0.8


V jedné lokalitě se postarší router Cisco PIX přesný model nevím, vyměnil za router od společnosti Fortinet s označením FortiGate-100D a to ještě v HA řešení. A bylo zapotřebí opět sledovat jednotlivé interface atd. Na routeru se povolil protokol SNMP verze 2c s patřičnou komunitou.

Našel jsem pro daný model Zabbix Template na GitHub u Jean-Jacques Martrès.

Jeho archív šablon obsahuje i celou řadu dalších vendorů. Template jsou vytvořevny velmi šikovně a hlavně naplno využívají nových vlastností Zabbix 2.x, tím mám na mysli Low Level Discovery.

Názvy použitých Template pro Fortinet devices:

zbx-fortinet-antivirus
zbx-fortinet-envmon             
zbx-fortinet-ha
zbx-fortinet-hardware           
zbx-fortinet-ids
zbx-fortinet-interfaces         
zbx-fortinet-vdom
zbx-fortinet-vpn


Některé template používají externí scripty např. pro vykonání discovery funkcí.

echo.something
if.speed
if.vdom
vpn.vdom


Psány jsou v jazyce Ruby a bylo třeba doinstalovat potřebný SNMP gem. Instalace Ruby rotšíření je v jednotlivých distribucích nebo OS jiná.

Ve FreeBSD jsem užil následující.

cd /usr/ports/net-mgmt/rubygem-snmp && make install clean

rubygem-snmp-1.1.1  SNMP library for Ruby

V nastavení v Zabbixu jsem užil všechny template. S tím že zafungují ty, které v routeru objeví adekvátní nastavení např. VPN, nebo Antivir. V případě rekonfigurace routeru není nutné v Zabbixu nic měnit, vše se objeví a začne adekvátně monitorovat.


sobota 8. prosince 2012

Squid3 with SNMP vs Zabbix 2.0


Na domácím testovacim serveru jsem si zprovoznil web proxy Squid verze 3. Chtěl jsem Squid nějak monitorovat. Existují v zásadě dva způsoby, jak na to.
 squid-3.2.3_2       HTTP Caching Proxy

Na wiki zabbix je popsán postup, jak monitorovat pomoci definovaných hodnot v zabbix agentu na serveru, kde Squid běží. Program squidclient, který je součástí Squida dokáže kontaktovat managera Squid, který předá potřebné informace o stavu cache.

Druhá možnost je Squid monitorovat pomocí SNMP. Squid v sobě integruje tuto funkcionalitu, která se musí nadefinovat v konfiguračním souboru. Ve FreeBSD jsem si Squid kompiloval z portů a SNMP je jedna z voleb, ktera musí být zakompilována.

[root@fbsd /var/db/ports/squid32]# make config && make install clean

# snmp config
acl snmp_host src 127.0.0.1
acl snmp_lmnet src 192.168.42.13/32
snmp_port 3401
acl snmppublic snmp_community public
snmp_access allow snmppublic
snmp_access allow snmp_host
snmp_access allow snmp_lmnet
snmp_access deny all


Vlastnosti použítí SNMP ve Squidu jsou podrobně popsány na Wiki projektu. Jsou zde pordobně popsány jednotlivé OID a podpora v jednotlivých verzích web proxy. Ve foru zabbix je ke stažení template zabbix_squid_smnp.xml. Import do Zabbix 2.0.x zobrazuje drobnou chybku, ale položky se vytvoří korektně. Mnou opětovně vyexportovaný template mám zde.

ukázka některých hodnot:
cd /usr/local/etc/squid

snmpwalk -m mib.txt -v2c -Cc -c public fbsd:3401 .1.3.6.1.4.1.3495.1.1
SQUID-MIB::cacheSysVMsize.0 = INTEGER: 71328
SQUID-MIB::cacheSysStorage.0 = INTEGER: 85036
SQUID-MIB::cacheUptime.0 = Timeticks: (16534677) 1 day, 21:55:46.77


snmpwalk -m mib.txt -v2c -Cc -c public fbsd:3401 .1.3.6.1.4.1.3495.1.2
SQUID-MIB::cacheAdmin.0 = STRING: webmaster
SQUID-MIB::cacheSoftware.0 = STRING: squid
SQUID-MIB::cacheVersionId.0 = STRING: "3.2.3"
SQUID-MIB::cacheLoggingFacility.0 = STRING: ALL,1
SQUID-MIB::cacheMemMaxSize.0 = INTEGER: 256
SQUID-MIB::cacheSwapMaxSize.0 = INTEGER: 100
SQUID-MIB::cacheSwapHighWM.0 = INTEGER: 95
SQUID-MIB::cacheSwapLowWM.0 = INTEGER: 90
SQUID-MIB::cacheUniqName.0 = STRING: fbsd


Do template asi jestě přidám nějaký graf, Počet příchozích a odchozích dat, počet aktuálně přihlášených klientů atd. Nasbíraných hodnot je celá řada.

pondělí 3. září 2012

Printer Toner Level Service vs Zabbix

Pokud chceme monitorovat IT infrastrukturu, můžeme začít hnedle u praktické informace a tou je stav spotřebního materiálu v tiskárnách a tou je toner.

Mnoho tiskáren má výrobcem implementován protokol SNMP. Protokol existuje v několika verzích, ale pro tiskárny doporučuji používat SNMPv1.

Na stránkách Zabbix wiki je k dispozici template pro HP Color LaserJet, z něj jsem vycházel a patřičně si jej upravil na BW a Color verzi.

Po chvilce googlování jsem našel stránku popisující Printer Toner Level Service, kde jsou popsány potřebné OID pro získání informace o toneru. Nutné je, aby tiskárna pordporovala SNMP Printer-MIB (RFC1759). Zde jsou OID v pěkné přehledné tabulce.

Pro manuální kontrolu můžeme použít tyto příkazy (test device Canon iPF600):

SNMP index of the toner cartridge / prtMarkerSuppliesDescription
snmpwalk -Os -c public -v 1 192.168.42.13 .1.3.6.1.2.1.43.11.1.1.6
mib-2.43.11.1.1.6.1.1 = STRING: "CyanInkCartridge"
mib-2.43.11.1.1.6.1.2 = STRING: "MagentaInkCartridge"
mib-2.43.11.1.1.6.1.3 = STRING: "YellowInkCartridge"
mib-2.43.11.1.1.6.1.4 = STRING: "MattBlackInkCartridge"
mib-2.43.11.1.1.6.1.5 = STRING: "MattBlackInkCartridge"
mib-2.43.11.1.1.6.1.6 = STRING: "BlackInkCartridge"
mib-2.43.11.1.1.6.1.7 = STRING: "WasteInkTank"


The maximum capacity of toner cartridge.
snmpwalk -Os -c public -v 1 192.168.42.13 .1.3.6.1.2.1.43.11.1.1.8
mib-2.43.11.1.1.8.1.1 = INTEGER: 1300
mib-2.43.11.1.1.8.1.2 = INTEGER: 1300
mib-2.43.11.1.1.8.1.3 = INTEGER: 1300
mib-2.43.11.1.1.8.1.4 = INTEGER: 1300
mib-2.43.11.1.1.8.1.5 = INTEGER: 1300
mib-2.43.11.1.1.8.1.6 = INTEGER: 1300
mib-2.43.11.1.1.8.1.7 = INTEGER: 10000


The current level of the toner cartridge.
snmpwalk -Os -c public -v 1 192.168.42.13 .1.3.6.1.2.1.43.11.1.1.9
mib-2.43.11.1.1.9.1.1 = INTEGER: 1040
mib-2.43.11.1.1.9.1.2 = INTEGER: 1300
mib-2.43.11.1.1.9.1.3 = INTEGER: 520
mib-2.43.11.1.1.9.1.4 = INTEGER: 1300
mib-2.43.11.1.1.9.1.5 = INTEGER: 1040
mib-2.43.11.1.1.9.1.6 = INTEGER: 780
mib-2.43.11.1.1.9.1.7 = INTEGER: 2000


Pro obecný Zabbix Template je překážkou to, že si výrobci RFC1759 vykládají patrně jinak. A např. HP a Cannon maji na OID mib-2.43.11.1.1.6.1.1 jinou cartridge, konkrétně Cannon Cyan a HP Black.

Mé template jsou zde Template_Printer_Toner_BW.xml a Template_Printer_Toner_Colour.xml s tím že 100% funkční budou u HP tiskáren u jiných můžou být tonery zpřeházené. Mírnou úpravou si každý admin Zabbixu lehce upraví :-). Pro Testovací tiskárnu jsem si udělal extra template dle jména výrobce Template_Printer_Canon_Toner_Color.xml.

Pro trigger jsem užil jednoduchého vzorce (Level / Max Capacity) x 100 pro procentuální vyjádření úrovně spotřebování toneru.

čtvrtek 22. března 2012

Zabbix - SNMP vs Mikrotik

Chtěl jsem začít pomocí Zabbixu monitorovat routery s RouterOS Mikrotik. Jednou z možností je si vytvořit template z textového výstupu příkazu snmpwalk pomoci patřičného perlového scriptu. Tím, ale získáme template pro dané zařízení, což asi nechceme. Pro univerzálnější použití je vhodné si vytvořit template pro obecné užití na routerech Mikrotik.

Pod ruku se mi dostalo velké spektrum verzí Mikrotiků. Nejstarší byla verze 3.30, dále 4.x a aktuální 5.x verze. Nutno dodat, že implementace SNMP se s verzí MK dost odlišuje. Snažil jsem se vytvořit Template pro sekci /system resources, vycházel jsem z těchto hodnot. Byl jsem nucen si vytvořit template pro 4kovou verzi a pro 5kovou.

Zabbix umí používat jak OID číselné tak i textové. Pro textové je třeba mít v systému doinstalovanou sadu MIB od IETF obecných definičních souborů. Pak můžeme lépe získat některé informace o zařízení.

aptitude install snmp-mibs-downloader

snmpwalk -On -c public -v 2c 10.10.1.2 IF-MIB::ifType
.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.3.3 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.3.4 = INTEGER: ieee80211(71)
.1.3.6.1.2.1.2.2.1.3.5 = INTEGER: ieee80211(71)
.1.3.6.1.2.1.2.2.1.3.6 = INTEGER: ieee80211(71)

Tento Mikrotik má tři ethery a tři wlan karty.

snmpwalk -c public -v 2c 10.10.1.2 IF-MIB::ifNumber
IF-MIB::ifNumber.0 = INTEGER: 6
snmpwalk -On -c public -v 2c 10.10.1.2 .1.3.6.1.2.1.2.1
.1.3.6.1.2.1.2.1.0 = INTEGER: 6

Zde je názorná ukázka ja se dá použít jak textový název OID tak jmenný dle definice MIB.

snmpwalk -c public -v 2c 10.10.1.2 IF-MIB::ifTable
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifIndex.3 = INTEGER: 3
IF-MIB::ifIndex.4 = INTEGER: 4
IF-MIB::ifIndex.5 = INTEGER: 5
IF-MIB::ifIndex.6 = INTEGER: 6
IF-MIB::ifDescr.1 = STRING: ether1
IF-MIB::ifDescr.2 = STRING: ether2
IF-MIB::ifDescr.3 = STRING: ether3
IF-MIB::ifDescr.4 = STRING: ap54a
IF-MIB::ifDescr.5 = STRING: ap54b
IF-MIB::ifDescr.6 = STRING: ap54c
IF-MIB::ifType.1 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.3 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.4 = INTEGER: ieee80211(71)
IF-MIB::ifType.5 = INTEGER: ieee80211(71)
IF-MIB::ifType.6 = INTEGER: ieee80211(71)
IF-MIB::ifMtu.1 = INTEGER: 1500
IF-MIB::ifMtu.2 = INTEGER: 1500
...

OID IF-MIB::ifTable nám vypíše veškeré informace o síťových interface, název, rychlost, MTU, chyby, status atd. Více je pěkně popsáno zde.

Mikrotik má i svůj MIB, který když nepřidáme do správného adresáře, objeví se nám tato hláška.

snmpwalk -Os -c public -v 2c 10.10.1.2 MIKROTIK-MIB::mikrotik
MIB search path: /home/smejdil/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Cannot find module (MIKROTIK-MIB): At line 1 in (none)
MIKROTIK-MIB::mikrotik: Unknown Object Identifier


Tento soubor MIKROTIK-MIB.mib musíme umístit do některé z těchto cest.

snmpwalk -Os -c public -v 2c 10.10.1.2 MIKROTIK-MIB::mikrotik
snmpwalk -Os -c public -v 2c 10.10.1.2 MIKROTIK-MIB::mtxrSystem
snmpwalk -Os -c public -v 2c 10.10.1.2 MIKROTIK-MIB::mtXRouterOs
snmpwalk -Os -c public -v 2c 10.10.1.2 MIKROTIK-MIB::mtxrWireless
snmpwalk -Os -c public -v 2c 10.10.1.2 MIKROTIK-MIB::mtxrLicense
snmpwalk -Os -c public -v 2c 10.10.1.2 MIKROTIK-MIB::mtxrScripts

Takto se dostaneme k hodotám popisovaných v MIBu.

Nutno ještě dodat, že při snaze monitorovat interface několika mikrotiků, narážel jsem na nejednotnost ifIndex hodnot. U zařízení, kde je např. 6 interface bych očekával, že ifIndexy budou 1,2,3,4,5,6, ale u některých Mikrotiků jsem běžně vídal ifIndexy 4,7,8,12,15,16, asi je to způsobeno přidáváním a ubíráním karet. Jeden 1U x86 router s Mikrotik 5.x měl 4 interface a ifIndex byl 96,97,98,99, což mě skutečně zaskočilo. Řešením je mít template ifIndex_1 a ten si dle potřeb naklonovat a upravit dle hodnoty požadované v konkrétním routeru.

Zabbix umožňuje vytvořit Template_RB443, který tvoří dílčí Template. např. CPU, Ifindex1-6 atd. Má zkušenost se SNMP a Mikrotikama je dosti rozpačitá :-)