pondělí 30. července 2012

Netdisco v praxi

Již v minulosti jsem zkoušel zprovoznit system Netdisco a zde na blogu jsem o tom psal velmi obecné informace. Onehdá jsem už neměl čas systém více poznat a použít jej tam kde je jeho silná stránka a tou jsou sítě s Layer 2 přepínačema. Nyní jsem provedl vesměs naprosto stejnou instalaci na FreeBSD 8.2.

Pro instalaci jsem volil port net-mgmt/netdisco/ který mi nainstaluje aktuální verzi 1.1.

n e t  d i s c o
--------------------------------------------------
Netdisco Version   : 1.1
SNMP::Info Version : 2.06
Net-SNMP Version   : 5.0701
Perl Version       : 118.53.46.49.52.46.50

Netdisco je dle webu vývojářů vyvýjeno na FreeBSD a tudíž v dokumentaci nechybí ani informace potřebné k instalaci. Jistá zastaralost dokumentace znát ovšem je. Volil jsem použití Apache 2.2 a PostgreSQL 9.1 s tím že tuto volbu port akceptuje.

Během instalace jsem měl jen jeden problém s konfliktem dvou balíků pkg_config a pkgconf. Musel jsem pkg_config odinstalovat a s nim i zavislosti. Posléze jsem instaloval port graphics/graphviz, který si pkgconf žádal. Zbytek instalace již nevykazoval problémy.

Po instalaci portu netdisco bylo třeba provést úkony v  postinstalačním postupu, který jsem zmiňoval již v prvním příspěvku. Tímto postupem importujeme db schéma do PostgreSQL a nastavíme systém tak, aby služby nastartovaly atd.

Pro přihlášení do Web GUI bylo třeba si přidat patřičného uživatele.

netdisco -u admin

Pro fungování v praxi jsem testoval přidávat switch Dell PowerConnect 5448 s public komunitou.

Pro přídání switchů jsem nejprve užil web GUI, ale i s debug režimem se mi nechtěl přidat i přes prověření funkčnosti SNMP pomocí snmpwalk, které odpovídalo.

snmpwalk -Os -c public -v 2c 192.168.0.42 system
sysDescr.0 = STRING: PowerConnect 5448
sysObjectID.0 = OID: enterprises.674.10895.3021
sysUpTimeInstance = Timeticks: (361894700) 41 days, 21:15:47.00
sysContact.0 = STRING: SmEjDiL
sysName.0 = STRING: switch42
sysLocation.0 = STRING: DKnL
sysServices.0 = INTEGER: 2
sysORLastChange.0 = Timeticks: (0) 0:00:00.00
sysORID.1 = OID: enterprises.89.73
sysORDescr.1 = STRING: RS capabilities
sysORUpTime.1 = Timeticks: (0) 0:00:00.00


Dle manuálové stránky patřičného modulu jsem se dočetl o potřebných MIB souborech.

man SNMP::Info::Layer3::Dell

Dále jsem postupoval tak, že jsem zařížení přidával za pomocí cmd.

netdisco -d 192.168.0.42
n e t  d i s c o
--------------------------------------------------
[
192.168.0.42] Discover starting
[
192.168.0.42] [Trying SNMP Version 1]
[
192.168.0.42]  Fetching Device Info
[
192.168.0.42]  Fetching Device Info
[
192.168.0.42]  Fetching Interface Information
[
192.168.0.42]   32 Interfaces.
[
192.168.0.42]  Fetching VLAN Information
[
192.168.0.42]   Scrubbing VLANs from device_port_vlan table... 0 removed
[
192.168.0.42]   Scrubbing VLANs from device_vlan table... 0 removed
[
192.168.0.42]   28 VLAN Interfaces, 1 names.
[
192.168.0.42]  Fetching Power Information
[
192.168.0.42]   0 Power Modules
[
192.168.0.42]  Fetching Module Information
[
192.168.0.42]   0 Modules.
[
192.168.0.42]  Fetching Neighbor Information
[
192.168.0.42]   ! CDP not Enabled.

Tento příkaz již napovídal, že mu chybí potřebné SNMP MIB definice. Netdisco má jeden balík MIBů. Tento balík obsahuje velké množství MIB souborů od ruzných výrobců i ty normované RFC, ale i přesto bylo třeba stáhnout MIBy od výrobce.

netdisco-mibs-0.9   Mibs for use with ports-mgmt/netdisco (and snmp)

Po chvilce googlování jsem požadované soubory postahoval např. z http://www.oidview.com/.

Během používání Netdisco jsem narazil na dvě chybové hlášky.

/usr/local/www/netdisco/device.html 789

Popis problému je v konferenci.

## line 789
## replace:
%  for my $f qw(fw hw sw) {
## with:
%  for my $f (qw(fw hw sw)) {


Např. pří restartu apache se objevovala tato druhá chyba na řádku ...

/usr/local/lib/perl5/site_perl/5.14.2/netdisco.pm 337

Stejné řešení s popisem problému zde.

pondělí 16. července 2012

iMedia WRAP


Jelikož jsem doma chtěl přejít na pfSense-2.0.1 musel jsem povýšit i HW a to z WRAP na ALIX. Zůstala mi již letitá, ale plně funkční deska WRAP.1E-1 a tak jsem pro ní hledal alespoň testovací využití. Nalezl jsem system multimediální distribuce http://www.imedialinux.com/ a její starší verzi i pro iMedia WRAP Linux.

Instalace byla snadná. Nutná byla drobná rekonfigurace IP atd. Deska ožila a plní funkci Linuxového serveru pro ověření funkcionality sitě atd.

čtvrtek 28. června 2012

sobota 16. června 2012

DHCP discovery

Někdy se může stát, že se v LAN nachází nějaký DHCP server a my nevíme, kde běží. Pro odhalení, kde běží nám může být nápomocen nmap.

nmap -sU -p 67 --script=dhcp-discover 192.168.42.1
Starting Nmap 6.00 ( http://nmap.org ) at 2012-06-16 21:04 CEST
Nmap scan report for alix.hide.lm.net (192.168.42.1)
Host is up (0.00025s latency).
PORT   STATE SERVICE
67/udp open  dhcps
| dhcp-discover:
|   DHCP Message Type: DHCPACK
|   Server Identifier: 192.168.42.1
|   Subnet Mask: 255.255.255.0
|   Router: 192.168.42.1
|   Domain Name Server: 192.168.42.1, 192.168.42.250
|   Domain Name: hide.lm.net
|_  NTP Servers: 195.113.144.201, 195.113.144.238
MAC Address: 00:0D:9B:10:DF:42 (PC Engines GmbH)

Podrobnější výpis je zajištěn tímto příkazem.

nmap -sU -p 67 -v -d -PN --script=dhcp-discover 192.168.42.1

Script v jazyce Lua dhcp-discover zajistí DHCP request, simuluje tedy chování DHCP klienta a vypíše nám hodnoty, které DHCP server poskytuje.

pátek 15. června 2012

ADSL pfSense 2.0.1

Připojení pomocí ADSL se mi vyhýbá a tak s ním nemám žádné technické zkušenosti. Změna nastala v momentě, kdy jsem byl požádán o použití routeru Alix/pfSense s ADSL konektivitou. Problém je v tom, že Alix deska nemá žádný modem. Jediným řešením je v pfSense nastavit WAN interface s použitím protokolu PPPoE. pfSense 2.0 má protokol PPPoE implomentován po novu.

ADSL modem, který jsem řešil byl dodán ISP model Zyxel Prestige P-660HW-T3 je nutno přenastavit /  Connection Setup- ISP Parameters for Internet Access / Mode - Bridge a vypnout DHCP server.

Snad jen IP modemu LAN musí být z jiného rozsahu než je LAN pfSense. Na strane ADSL routeru je LAN např. 10.1.1.1 a na straně pfSense se žádná IP na WAN nenastavuje, jen se tento interface nakonfiguruje na typ PPPoE, kde musíme znát username a password, které nám poskytne ISP.

Zabbix Java Gateway vs WebSphere

Konečně dozrál čas na otestovaní Zabbix Java Gateway s aplikačním serverem IBM WebSphere. Jak se na aplikáči povolí JMX pro vzdálené získání hodnot jsem si poznamenal minule zde. WAS tedy pomocí Jconsole poskytuje informace o java prostředí. Můžeme začít monitorovat.

V minulosti se k tomu používala aplikace ZapCat, která dělala most mezi JMX a Zabbixem, od Zabbix verze 2.0 je JMX monitoring implementován do Zabbixu a ZabCat již není nutné použít.

Zabbix Java Gateway je aplikace, která může běžet na Zabbix serveru, ale taktéž může běžet kdekoliv jinde, na jiném serveru nebo v jiné části sítě obdobně jako tomu je např u Zabbix Proxy.

V Zabbix serveru jsou nově 3 direktivy, pomocí kterých Zabbix server ví, kde ma Java Gateway a na jakém portu jí má kontaktovat.

JavaGateway=192.168.42.13
JavaGatewayPort=10052
StartJavaPollers=5


Instalace se provádí ze zdrojáků, zatím žádná ditribuce pro ZJG nevytvořila patřičný balíček, ale toho se uržitě časem dočkáme. Pro kompilaci je nutné mít instalováno Java JDK.

./configure --enable-java --prefix=$PREFIX && make && make install

Konfigurace klíču a hodnot zabbixu je popsána zde a je vcelku jednoduchá. V Default tamplatech Zabbix 2.0 jsou již některé použitelné hodnoty definované. Pro pochopeni definice je dobré otevřít si Jconsoli a pak už je jasné co znamená tento zápis.

jmx[“java.lang:type=Memory”,”HeapMemoryUsage.used”]

Monitorování WAS je tedy obdobné jako u jakého koliv jiného JVM, jen je obtížnější JMX remote zapnout. WAS ovšem poskytuje mnohem více hodnot, než které se v Jconsoli objevují. Pro získíní všech hodnot Performance Monitoring Infrastructure (PMI) budu muset ještě WAS déle studovat :-)

středa 13. června 2012

JMX with IBM WebSphere


Potřeboval jsem zprovoznit JMX v aplikačním serveru IBM WebSphere. Hledal jsem na Google a našel mi tento funkční návod. http://mallikarjungunda.blogspot.cz/2010/07/enable-jmx-remote-port-in-websphere.html

Do virtuálu ve Workstation jsem si nainstaloval WAS 7.0.0.21. Instalacky WAS mám bohužel jen pro Win 2008 server R2.

UPDATE:
Testoval nastaveni na RHEL 5.8 s WAS 7.0.0.27 a upravuji tedy návod.

Sručně co je třeba:

Deploynout tuto aplikaci PerfServletApp.ear, která je součásti WAS instalace.

Povolení PMI Data a nastavení All statistic.

Nastavíme Generic Jvm Argument na -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote

lepe

-Djavax.management.builder.initial= -Djava.rmi.server.hostname=192.168.1.72  -Dcom.sun.management.jmxremote

Upravíme soubor
../AppServer/java/jre/lib/management/management.properties

Kde odkomentujeme tyto volby
com.sun.management.jmxremote.port=9001
com.sun.management.jmxremote.ssl=false
com.sun.management.jmxremote.authenticate=false

com.sun.management.jmxremote.local.only=false

Pak WAS otočíme a otestujeme funkčnosti pomocí JConsole nebo mužeme pouzit pěknou utilitku jmxterm

$ java -jar jmxterm-1.0-alpha-4-uber.jar Welcome to JMX terminal. Type "help" for available commands.
$>open 192.168.42.10:9001


Toto nastaveni WAS potřebuji pro otestování Zabbix 2.0 Java Gateway.

sobota 9. června 2012

ALIX2d2 a pfSense 2.0.1

Přistály mi doma tři desky ALIX2d2 pro realizaci tří routerů s OS pfSense. Jelikož již existuje verze pfSense 2.0.1 delší dobu, nastal čas na důkladné otestování na daném HW.

Nová verze řady 2.x přináší spoustu nových vlastností. Např. nově tvůrci připravují arch. verze i386 a amd64, rovněž nově přibyla verze i s VGA konzolí, takže při použití desky ALIX3d3, bude VGA již funkční.

Instalace na CF se nezměnila, jen se mi 4G image (pfSense-2.0.1-RELEASE-4g-i386-nanobsd.img.gz) nevešla a 4GB CF, použil jsem 2G. Stará CF čtečka mi umřela a nová má asi velý buffer, protože dd provede výpis o ukončení, ale čtečka stále bliká a zapiseje. Na to tedy pozor a vyčkat!

Nových vlastností je kupa, ale první krůčky mi naznačují, že alespoň konfigurace Alias a Rules, lze importovat. Ještě musím otestovat import celé konfigurace z pfSence 1.2.3 a importnout ji do pfSense 2.0.1.

Mile mě překvapila existence balíčku zabbix-proxy, což se může velmi hodit u větších HW silnějších routerů.

čtvrtek 31. května 2012

gallery3 vs php 5.4.3

Na jedné základní škole provozuji php webovou galleri. Je to šikovná aplikace, která umí zpracovávat fotky přímo z foťáku, generuje si náhledy atd. Je plně lokalizována atd. Vlastnosti je celá řada.

Ovšem jak to bývá jsou s takovou aplikací někdy problémy. Naposledy jsem dlouze řešil problém s uploadem fotek, který mají dle mě nepochopitelně ve flash. Nástrojů pro generování náhledů se dá použít v gallerii hnedle několik. GD Graphic Library,  velmi známý ImageMagic a inovativní GraphicMagic. Problém spočíval v tom, že po uploadu fotky se předává ke spracování a zde to haprovalo. Naštěstí po hodinách laborování začal fungovat GraphicMagic.

Po včerejším upgradu PHP ve FreeBSD na verzi php5-5.4.3 se školní gallerie verze gallery3-3.0.3 odmlčela a na úvodní stránce byla jen bílá obrazovka. Marně jsem hledal v logách, ale marně. Poslední změnou byl upgrade PHP a tak jsem se zaměřil na dané verze.

gallery3-3.0.3 + php5-5.4.3

Googl mi napověděl :-)

http://sourceforge.net/apps/trac/gallery/ticket/1839
Don't call ob_end_clean() if PHP >= 5.4. Fixes #1839. Thanks to

Dohledal jsem si patřičný soubor Kohana.php, udelal kopii, upravil kod a pro jistotu udela patch.

pkg_info -L  gallery3-3.0.3 | grep -i Kohana.php
cd  /usr/local/www/gallery3/system/core/
cp  Kohana.php Kohana.php-inst
joe  Kohana.php
diff -u Kohana.php-inst Kohana.php
--- Kohana.php-inst    2012-05-30 21:43:45.000000000 +0200
+++ Kohana.php    2012-05-30 21:45:39.000000000 +0200
@@ -525,8 +525,12 @@
                 $close();
             }

-            // Store the Kohana output buffer
-            ob_end_clean();
+            // Store the Kohana output buffer.  Apparently there was a change in PHP
+            // 5.4 such that if you call this you wind up with a blank page.
+            // Disabling it for now.  See ticket #1839
+            if (version_compare(PHP_VERSION, "5.4", "<")) {
+                ob_end_clean();
+            }
         }
     }

pondělí 28. května 2012

NetSetMan


Většina OS mají spávce síťových připojení jakožto součást sama sebe. Např. v Linuxu s Gnome je Network Manager a Mac OS X ma asi network configuration. Win 7 nemá nic :-( Jen někteří výrobci dodávají s HW i kupu svých aplikaci např. Lenovo má nějaká spravce připojení. Pro widle mi jeden znamý doporučil aplikaci NetSetMan. Za Pro verzi asi nebudu váhat zaplatit.

pátek 18. května 2012

grep ve Windows

Pokud potřebujeme takzvaně grepnout nějaký textový soubor na výskyt nějakého řetězce, potřebujeme na to aplikaci grep, alespoň v UNIXových systémech je to věc prastará. Do windows si můžeme nainstalovat UnxUtils, ale ne vždy můžeme na servery toto instalovat.

Pokud je v systému PowerShell můřeme použít krkolomný příkaz Select-String.

PS C:\temp> Select-String -Path .\test.txt -Pattern "test"

test.txt:1:Tento text je testovaci.
test.txt:2:Testovat je treba.
test.txt:3:Kazdy testuje vse kolem sebe.

Druhá ukázka je z Cygwin ...

maly@nbmaly-tmp /cygdrive/c/temp
$ grep.exe -ni "test" test.txt 
1:Tento text je testovaci.
2:Testovat je treba.
3:Kazdy testuje vse kolem sebe.

středa 2. května 2012

UnxUtils for Windows

Pokud si člověk na něco navykne, už to vyžaduje všude. Jelikkož dlouhodobě jako desktop používám Linux s prostředím Gnome. Dost často se mi stává, že po přihlášení do WinXXX postrádám unixové příkazy, tail, grep atd.

Na Wiki je pekně popsáné UnxUtils
http://en.wikipedia.org/wiki/UnxUtils

Doposud používám Cygwin, ale odlehčenějších verzí UnxUtils je více.

http://unxutils.sourceforge.net/

Instalace je názorně popsána zde.
http://www.redantigua.com/unxutils-win.html

GNU Win II je další implementace UnxUtils.
http://gnuwin.epfl.ch/apps/unxutils/en/

Nemůžu říct, že by mi Cygwin nevyhovoval, ale asi budu postupně zkoušet i další možnosti.

pátek 20. dubna 2012

VMWare Converter

V novém zaměstnání jsem obdržel dočasný NTB Dell Latitude D630, stará vrána a na něm Win7. Asi 14 dni jsem s daným HW musel vydržel. V momentě, kdy jsem si byl vyfasovat nový výkonný ntb, řešil jsem jak částečné vyladěný systém přenést do Linuxu, který hodlám používat spolu s VMware Workstation 8.0.2.

Řešením bylo do Win7 nainstalovat VMware-converter-all-5.0.0-470252.exe. S tímto SW jsem pak nechal fyzický OS konvertovat do formátu Workstation. Kvůli nedostatku místa na lokále jsem připojil externí disk přez USB. A na něj nechal uložit nově vzniklou virtuálku. Daný adresář s Win7.vmdk diskem a souborem definujícím virtualku Win7.vmx (#!/usr/bin/vmware
) jsem zkopíroval do prostoru Linux Ubuntu 12.04 LTS (beta2). Ve workstation jsem si už jen danou virtuálku pustil. Po zpuštění jsem jen odinstaloval nVidia divery a doinstaloval VMware Tools a přenesený systém je tam kde jsem jej chtěl mit.

úterý 10. dubna 2012

Zabbix 2.0 Java gateway

Ručně jsem si zprovoznil Zabbix 2.0.rc2. Jíž konfigurace před kompilací odhalila nové vlastnosti serveru i agenta. Přibudla nám nová podpora Javy hlavně JMX. Přesněji řečeno Zabbix má v nové verzi Java gateway též nazýváno JMX monitoring.

Stavající verze zabbixu 1.8.11 používá ZABCAT pro sledování např. Tomcat serverů atd.

Zabbix Java Gateway - daemon přidávající nativní podporu pro monitoring JMX applikací.

Pro zprovoznění na Zabbix serveru potřebujeme JDK a zkompilovanou podporu.

aptitude install sun-java6-jdk

./configure --enable-server --enable-java ...

V konfiguračním serveru pribudly nové direktivy.

JavaGateway=Zabbix
JavaGatewayPort=10052
StartJavaPollers=1


U serveru se objevil nový adresář.

zabbix:/opt/zabbix-server# ls -1 -R sbin/zabbix_java/
sbin/zabbix_java/:
bin
lib
settings.sh
shutdown.sh
startup.sh

sbin/zabbix_java/bin:
zabbix-java-gateway-2.0.0rc2.jar

sbin/zabbix_java/lib:
logback-classic-0.9.27.jar
logback-console.xml
logback-core-0.9.27.jar
logback.xml
org-json-2010-12-28.jar
slf4j-api-1.6.1.jar


Danou funkcionalitu budu i nadále objevovat a seznamovat se s novými vlastnostmi :-)