pátek 30. března 2012

END of my story - O2-InternetHome

Koncem loňského roku jsem se nechal zlákat na pozici Network Integration ve společnosti Telefónica O2 Czech Republic přesněji v dceřinné společnosti InternetHome (příšernej web). Možnost práce v místě bydliště byla velmi lákavá. Dnes vím, že to byla velká chyba odcházet z FG.

Ve vedení společnosti IH jsou zjevně velmi nekompetentní lidé, kteří neumějí počítat! Po provedení nějakého auditu rozhodli, že z úsporných opatření vyhoděj všechny lidi ve zkušební době. Měl jsem zkušebku na tři měsíce. Ani mě nenapadlo, že to bude problém. A 14dni před koncem jsem dostal padáka. Na fotce je má hromádka.

Na druhou stranu jsem se důkladně seznámil s Mikrotikem a absolvoval zdarma školeni u DNS a.s na téma Juniper.

Pevně věřím, že až zase budou někoho schánět, nikdo se nenechá tak blbě zlákat jako já. Co mě nezabije to mě posílí jo a všechno špatný je k něčemu dobrý.

č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á :-)

úterý 13. března 2012

Datovka od labs.nic.cz

Aplikaci datovka jsem již zkoušel dříve a to na OS Linux Ubuntu, pro který je připraven PPA repository.

Nyní používám LMDE a tak jsem se pustil do manuální instalce. Poznamenávám si zde, jak sem si počínal. Datovka je psána v jazyce Python.

sudo aptitude install python-gtk2
sudo aptitude install python-dev
sudo aptitude install python-setuptools


Budeme potřebovat stáhnout src tarbaly odtud.

wget http://www.nic.cz/public_media/datove_schranky/releases/datovka-2.0.2/src/datovka-2.0.2.tar.gz
wget http://www.nic.cz/public_media/datove_schranky/releases/datovka-2.0.2/src/dslib-2.0.2.tar.gz
wget http://www.nic.cz/public_media/datove_schranky/releases/datovka-2.0.2/src/sudsds-1.0.tar.gz


Postupně rozbalíme archivy a vykonáme instalační rutinu.

tar xvzf sudsds-1.0.tar.gz
cd sudsds-1.0
sudo python setup.py install --install-layout=deb
...
...
Installed /usr/lib/python2.6/dist-packages/sudsds-1.0-py2.6.egg
Processing dependencies for sudsds==1.0
Finished processing dependencies for sudsds==1.0

tar xvzf dslib-2.0.2.tar.gz
cd dslib-2.0.2
sudo python setup.py install --install-layout=deb
...
...
Using /usr/lib/pymodules/python2.6
Finished processing dependencies for dslib==2.0.2

tar xvzf datovka-2.0.2.tar.gz
cd datovka-2.0.2/
sudo python setup.py install --install-layout=deb
...
...
Using /usr/lib/pymodules/python2.6
Finished processing dependencies for datovka==2.0.2


Po instalaci jsem ještě upravil zpouštěcí script.

sudo joe /usr/local/bin/datovka
#!/usr/bin/python
# EASY-INSTALL-SCRIPT: 'datovka==2.0.2','datovka'
__requires__ = 'datovka==2.0.2'
import pkg_resources
pkg_resources.run_script('datovka==2.0.2', 'datovka')

pondělí 5. března 2012

Holux gpsport 245 on Linux

Dobrým kompromisem mezi tachometrem a GPS trackerem pro kolo mi příjde tento model Holux gpsport 245. Cena je unosná a funcionalita též potěší.

Na stránkách výrobce se dá stáhnout USB Cable Driver(Linux), ale mají to šité horkou jehlou a nutná editace některých souborů kde koho odradí. Nehledě na to že návod mají jen pro RPM based distribuce. Kompilovat ručně se samozřejmně dá.

Daný model jsem si vypůjčil od bikera Pavla co jej vlastní již od vánoc. Též mě na něj přivedl. Po připojení Holuxu k mému pracovnímu ntb s LMDE, jsem zjisil, že onen driver nemusím kompilovat ručně, mám jej již v systému.

Mar 6 13:35:48 ntb kernel: [106595.448691] usb 2-1.3: new full speed USB device number 8 using ehci_hcd
Mar 6 13:35:48 ntb kernel: [106595.542836] usb 2-1.3: New USB device found, idVendor=10c4, idProduct=ea60
Mar 6 13:35:48 ntb kernel: [106595.542846] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Mar 6 13:35:48 ntb kernel: [106595.542852] usb 2-1.3: Product: CP2102 USB to UART Bridge Controller
Mar 6 13:35:48 ntb kernel: [106595.542857] usb 2-1.3: Manufacturer: Silicon Labs
Mar 6 13:35:48 ntb kernel: [106595.542862] usb 2-1.3: SerialNumber: 0001
Mar 6 13:35:48 ntb kernel: [106595.544056] cp210x 2-1.3:1.0: cp210x converter detected
Mar 6 13:35:48 ntb mtp-probe: checking bus 2, device 8: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3"
Mar 6 13:35:48 ntb kernel: [106595.616610] usb 2-1.3: reset full speed USB device number 8 using ehci_hcd
Mar 6 13:35:48 ntb kernel: [106595.709390] usb 2-1.3: cp210x converter now attached to ttyUSB0
Mar 6 13:35:48 ntb mtp-probe: bus: 2, device: 8 was not an MTP device


moduly v jádře

smejdil@ntb:~$ lsmod | grep cp210
cp210x 21121 0
usbserial 32046 2 cp210x,garmin_gps
usbcore 124242 8
cp210x,garmin_gps,usbserial,uvcvideo,btusb,usbhid,ehci_hcd


Nalezl jsem aplikaci mtkbabel pro práci s MTK čipama od MediaTek.

mtkbabel -s 38400
MTK Test OK
MTK Firmware: Version: 1, Release: M-core_2.12, Model ID: 0000
Log format: (8800003D) UTC,LATITUDE,LONGITUDE,HEIGHT,SPEED
Size in bytes of each log record: 21 + (0 * sats_in_view)
Logging TIME interval: 3.00 s
Logging DISTANCE interval: 0.00 m
Logging SPEED limit: 0.00 km/h
Recording method on memory full: (1) OVERLAP
Log status: (000100000010) AUTOLOG_ON,OVERLAP_WHEN_FULL,ENABLE_LOG
Next write address: 14296 (0x000037D8)
Number of records: 685


Pro stažení tracku puožiji mnou velmi oblíbený gpsbabel s tim že použiji file type m241, který je zjevně kompatibilní s m245.

gpsbabel -t -i m241 -f /dev/ttyUSB0 -o gpx -F Holux_test.gpx
data.bin
Holux_test.gpx


gpsbabel -D 4 -t -r -w -i m241 -f /dev/ttyUSB0 -o gpx -F Nocni_vyjizdka_`date +'%F%H%M'`.gpx

Získaný tracklog mohu importovat např. do Endomondo.