C++/QT4 és SNMP ill. SSH

Fórumok

Sziasztok!

Pár éve fejlesztek egy programot, saját célra, hálózatfelügyelethez. A program eddig Perl/PHP/MySQL-ben készült. Jelenleg igencsak rászorul egy újragondolásra/újraírásra (esetleg olyan formában, ami alkamas arra, hogy közkincsé tegyem).
Mivel elég jól elvagyok a QT4-el, arra gondoltam, hogy az új verzió ebben készülne. Sajnos néhány dologgra nem igazán találok jó megoldást:
Az információgyűjtésre az SNMP-t használom, amit eddig a NET-SNMP-tools parancsfáljain keresztül oldottam meg, a programkimenet szövegének feldolgozásával. Ez ugye nem a leghatékonyabb megoldás. A QT-hez nincs SNMP modul, amit eddig néztem: net-snmp C API : nem nevezném sem egyszerűnek, sem túldokumentáltnak. SNMP++ szintén nem egyszerű, de legalább rosszul dokumentált (nyomtatott könyv van róla, kb 10 éves, de ennek a beszerzése elég macerás, letölteni nem tudtam). snmpkit könyvtár: ha jól értem csak az SNMP v1-et támogatja, ami nem elég. Felmerült annak a lehetősége, hogy beágyazott PERL-en keresztűl csinálom az SNMP kéréseket, de nem tudom megéri-e, félek, hogy a perl modulok dokumentáltsága sem sokkal jobb. Nekem úgy tűnik, hogy az SNMP tudorok szerint elég, ha elolvasom az RFC-ket és megnézem a forrását a könyvtáraknak, és abból minden kiderül. Ez igaz, de erre sem időm, sem kedvem (és bizonnyal az angol tudásom sem elég), és nem tudora akarok lenni a témának, csak lehetőleg hatékonyan szeretnék egy programban nagyszámú SNMP lekérdezést csinálni. Szivesen fogadnék tippeket, a legkevésbé kűzdelmes megoldás kiválasztásában.
A régi rendszer egyes lekérdezéseket SSH-n keresztül csinálta, van valamilyen egyszerű módszer az SSH kapcsolatok kezelésére C/C++-ban, vagy itt nics más megoldás mint az ssh parancsot hívogatni, ill. a módszert elfelejteni.
Esetleg arra is várok tippeket, hogy milyen kész programokat tudék beolvasztani a sajátomba:
Eddigi öletek: A nagios integrálása. Ezt csak tegnam kezdtem körbejárni. Jó lenne egy olyan doksi, ami gyengébb angol udással is felfogható, és nem csak a nagyon alapokról szól.
A forgalom grafikonok rajzolsához rrdtools-t haszáltam, ezt a részt lehetne egyszerűsíteni a munin, vagy a cacti esetleg más bevonásával. A munin-t kipróbáltam, és a legegyerübb felállásban nem igazán akar működni.
A régi program folyamatosan feltérképezte a switch-ek kapcsolódását, a kliens gépek helyét-mozgását, a VLAN kiosztást, a kliensek ip címeit, ill. annak változását. A switch portok állapotát, és erre épülve figyelmeztetést adott, ha egy (figyelt) eszközt eltávolítottak a rendszerből. Nem tudom, hasonló feladatokra vannak-e kész programok. Ha igen, esetleg használhatnám/bevonhatnám azokat is, ill. adhatnának ötleteket.

Előre is köszönöm a tippeket.

Hozzászólások

Eddig szimpla parancshívás volt, és tulajdonképpen egy megfelelő kapacitású géppel működött is. Így, ha nem találok valami kevésbé embertpóbáló modszert a hatéponyság növelésére, akkor marad ez.
De úgy gondoltam egy próbálkozást/kérdésfeltevést megér a dolog. Folyamatosan nagy mennyiségű lekérdezésről van szó, és egy programon bellűl elintézve a lekérdezéseket, jobb eredményt érhetünk el mintha 50x meghívok egy külső programot, és oda-viszza konvertálgatom az eredményt.
A linket megnéztem. Az egyik válasz szerint használjak net-snmp-t, és elmagyarázza az installálást, biztos az én hibám, de ettől nem lettem okosabb. Elolvastam a net-snmp doksiját, és a példaprogramokat is, de nem egy nyitott kérdés maradt, kisérletezni, forrás fájlokból kitalálni a használatát pedig se kedvem se időm nincsen, lehet, hogy öregszem, de ez van.
Később ajánl egy nem free, sem nyilt forrású rendszert (mg-soft). Bár munkahelyem ennél jóval fölöslegesebb dolgokra is költ jóval többet (egy főiskola), erre nem fog egy fillért sem.
A http://www.snmplink.org/ -ot még nem néztem át, de ha emlékeim nem csalnak itt már keresgéltem régebben, nem sok eredménnyel. Persze az az elején volt, és akkor még azt hittem találok jobb helyeket is.

szerintem j2eeben csinald, ugysem tudok javas halozatfelugyeleti cuccrol :)

ssh-hoz van libssh2 esetleg megnezegetheted, ill. snmp-hez nezd meg a net-snmp-ben a megfelelo tool-ok forrasat, hatha nem olyan bonyolult atalakitani oket.

--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.