pátek 29. července 2011

Test jabber klientů

Test Jabber klientůSparkPsiPidginMirandaJabbim

Test jabber klientů, a set on Flickr.

Ověřil jsem funkčnost 5ti Jabber/XMPP klientů na jednom firemním serveru.

Testováno na jabber.milcomdk.cz

Via Flickr:
psi-0.14-win-setup.exe
pidgin-2.9.0.exe
miranda-im-v0.9.25-unicode.exe
jabbim-win32-0.5.1.exe
spark_2_6_3.exe

čtvrtek 28. července 2011

Aplikace Nokia E72

Jsem uživatelem telefonu Nokia E72, který jsem vyfasoval v práci. Co potřebuji k práci to umí. Cisco VPNka ve spojeni s Putty je skutečně mocný nástroj. Již jsem ze zahradní párty kolegini rekonfiguroval Apache. Chvíli je člověk ve společnosti za autistu, ale dílo na serveru někde v tramtárii se povede. Osobně bych preferoval spíše telefon s Androidem, líbil se mi HTC Desire Z, dnes bych ale radši Samsung Nexus S. Ikdyž na Querty klavesnici jsem si již navykl.

Poznamenám si zde jaké aplikace hojně používám.
Na telefon někdy hodně zanadávám. Více puštěných aplikací telefon značně zpomalí. Někdy jsou reakce Symbianu, i s minimem aplikaci v paměti tak pomalé, že okamžitě dávám restart. Někdy telefon ne a ne komunikovat datově, opět až po restartu. Ale to se mi dlouho nestalo, takže to asi opravil poslední update. Jinak takovou aplikační a uživatelskou perlou je, že po posledním updatu telefonu prostě zahodil veškeré vazby na kontakty. Tím mám na mysli fotky u kontaktů, rychlou volbu vytáření atd.

čtvrtek 21. července 2011

GPSBabel

Kdo používá GPS tak povětčinou bude znát i aplikaci GPSBabel, která toho umí skutečně hodně. Podporuje nepřeberné množství GPS formátů a zařízení. Aplikace je hojně využívána pod Linux/Unix operačnímamy systémy, ale je portována pod kde co jiného. Jelikož si rád z cest na kole i z pěších tůr poznamenávam trasy, tato aplikace mi umožňuje stahovat track logy.

Pro stažení track logu používám následující příkaz:

gpsbabel -t -i garmin -f /dev/ttyUSB0 -o gpx -F DKnL_NA-20110719.gpx

Kde -f ukazuje na zařízení kernel modulu garmin_gps pokud modul nepoužíváme, můžeme použít volbu -f usb: Kolega RSA007 dohledal velmi pěkný příkaz, kterým můžeme z GPS získat tracklog jen z daného dne a hodiny. Přesněji řečeno, pokud máme v ACTIVELOGu zaznamenány data např. z dovolené, kde jsme jezdili na kole, můžeme si takto zpětně vytáhnout jen dané datumové intervaly.

gpsbabel -t -i garmin -f /dev/ttyUSB0 -x track,pack,split,move=+2h,title="DKnL > Nachod # %Y%m%d",start=2011071907,stop=2011071908 -o gpx -F DKnL_NA-20110719-07-08.gpx.gpx

Další variantou, kterou používám je script, který volám pro ulození GPX do GPS při stažení souboru např. z Geocaching.com

cat bin/gpx2gps
#!/bin/bash
FILE=$1
gpsbabel -i gpx -f $FILE -o garmin,power_off=0 -F /dev/ttyUSB0

Někdo možná bude mít dotaz k čemu takový track log je dobrý. Máme možnost si jej nahrát do aplikací jako je GoogleEarth nebo Viking či QLandkarte. Které nám ukáží mapu a pžez ní vidíme naši trasu. Dále můžeme např. získaný GPX soubor importovat do webové aplikace Endomondo nebo jí podobné. Toto občas dělám, když mi selže mobilní aplikace Endomondo. Pokud se extra nudíte, můžeme data z cesty zapsat do pořízených fotografii, pomocí aplikace GPSCorrelate. Po umístění takové fotky do inteligentních galerií se ukazuje fotka na mapě, kde byla pořízena. Ukázka např. na Flickru.

Jakožto vlastník GPS značky Garmin GPSMap 60CSx, musím si zde poznamenat tento odkaz.

pátek 15. července 2011

Test Archiva proxy

Jak otestovat funkčnost archiva proxy ? Toť moje otázka. Vzpoměl jsem si, že jsem kdysi v minulosti kompiloval projekt OpenNMS. A tak jsem oprášil starou dokumentaci, tak tetuji.


Aby Maven věděl, že má používat Archiva proxy, je třeba mu to říct a to v konfiguračním souboru ~/.m2/settings.xml

Pomocí gitu si stáhnu zdrojáky.

mkdir /tmp/test
cd /tmp/test
git clone git://opennms.git.sourceforge.net/gitroot/opennms/opennms
cd opennms
./run-tests.pl
[fbsd /tmp/test/opennms]$ ./run-tests.pl
[INFO] JAVA_HOME = /usr/local/diablo-jdk1.6.0/
[INFO] MVN = /tmp/test/opennms/maven/bin/mvn
[INFO] MAVEN_OPTS = -XX:PermSize=512m -XX:MaxPermSize=1g -Xmx1g -XX:ReservedCodeCacheSize=512m
[INFO] MAVEN_VERSION = 3.0.3
[INFO] running: /usr/local/bin/git clean -fdx .
[INFO] finished successfully
[INFO] running: /tmp/test/opennms/maven/bin/mvn -P!jspc install
[INFO] Scanning for projects......
....
Downloading: http://archiva.smejdil.cz/srv/archiva/repository/releases/dnsjava/dnsjava/2.1.1/dnsjava-2.1.1.jar
...

Vybral jsem jednu z mnoha knihoven dnsjava-2.1.1.jar pro dohledání v logách.

log archiva
2011-07-15 15:03:36 releases smejdil 80.250.16.10 "dnsjava/dnsjava/2.1.1/dnsjava-2.1.1.jar" "Modified File (proxied)"

log apache
80.250.16.10 - - [15/Jul/2011:15:03:36 +0200] "GET /srv/archiva/repository/releases/dnsjava/dnsjava/2.1.1/dnsjava-2.1.1.jar HTTP/1.1" 200 438761 "-" "Apache-Maven/3.0.3 (Java 1.6.0_07; FreeBSD 8.2-RELEASE)"

log tomcat
80.250.16.10 - - [15/Jul/2011:15:03:36 +0200] "GET /srv/archiva/repository/releases/dnsjava/dnsjava/2.1.1/dnsjava-2.1.1.jar HTTP/1.1" 200 438400

Po testu, kdy se stáhnou všechny závislosti ma repo mavenu 52M

Zase po sobe uklidim
rm -rf /tmp/test/

čtvrtek 14. července 2011

Archiva - Artifact Repository Manager

V práci na mě padlo provést aktualizaci Archiva - Artifact Repository Manager http://archiva.apache.org/, což je java aplikace. Něco jako repository pro Linux distribuce, ale Archiva slouží pro Java vývojáře. Aplikace má více rolí a jednou z nich je i Proxy. Jednoduše řečeno vývojáři nemusí ručně stahovat kamsi jednotlivé knihovny. O vše se postará Maven a Archiva. Doposud jsme používali verzi 1.2.2 a nově jsme přešli na aktuální verzi 1.3.5.

Popis prostředí

Jako server pro běh aplikace jsem zvolil Linux Ubunru 10.0.4 LTS 64bit. Aplikace Archiva vyžaduje ke svému běhu web server Apache, Java, Tomcat, Maven a databázi MySQL. Ikdyž existuje i verze Standalone s vlastnim web serverem Jetty. Použíl jsem veryi WAR, která běží pod se deployne v tomcatu.

  • Apache 2.2.14 - ubuntu package + moduly libapache2-mod-jk a libapache2-mod-macro
  • Java 1.6.0_26 64bit - instalována manuálně
  • Tomcat 6.0.26 - instalován manuálně
  • Maven 2.2.1 - instalována manuálně
  • MySQL 5.1.41 - ubuntu package
  • Archiva 1.3.5 - instalována manuálně
Konfigurace

Apache

Nastavení webserveru apache2 jsem řešil dle balíčkové konfigurace.

apt-get install cronolog
apt-get install apache2 libapache2-mod-macro libapache2-mod-jk

joe /etc/apache2/envvars
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2.pid
export APACHE_ARGUMENTS="-Don -Dtrue -Dyes"
export APACHE_FG_INSTANCE_NAME="apache01"

joe /etc/apache2/ports.conf
NameVirtualHost 80.250.16.10:80
Listen 80.250.16.10:80

cd /etc/apache2/mods-enabled
ln -s ../mods-available/rewrite.load ./
ln -s ../mods-available/headers.load ./
ln -s ../mods-available/include.load ./
ln -s ../mods-available/info.conf ./
ln -s ../mods-available/info.load ./
ln -s ../mods-available/macro.load ./
ln -s ../mods-available/macro.conf ./

joe info.conf
joe status.conf
joe jk.conf
joe macro.conf

cd /etc/apache2/sites-
joe default
joe archiva

cd /www/
mkdir -p server_log/apache01/log/

/etc/init.d/apache2 restart


Tomcat

Tomcat byl instalován dle zvyklostí.

ubuntu:~/install/tomcat-6.0.26&gt ./install-tomcat.sh
Instaled 1 Tomcast's
Install tomcat01 ...
patching file catalina.sh
patching file setclasspath.sh
patching file server.xml
patching file tomcat-users.xml

Důležité nastavení je v těchto souborech.

cd /www/server/tomcat01/apache-tomcat
joe bin/setclasspath.sh
...
## Archiva
export CATALINA_OPTS="-Dappserver.home=/www/java/archiva-home -Dappserver.base=/www/java/archiva-home"

joe conf/server.xml

Archiva vyžaduje doinstalovat pár knihoven do tomcat lib

ubuntu:/www/server/tomcat01/apache-tomcat> cat lib/readme-lml.txt
Pridal jsem soubory (jsou potreba pro aplikaci Archiva):
activation-1.1.jar
derby-10.1.3.1.jar
derbytools-10.1.3.1.jar
mail-1.4.jar
mysql-connector-java-5.1.5.jar


Archiva

Je umístěna v adresáři

ubuntu:/www/java/> ls -1
archiva # link na aktualni verzi
archiva-1.2.2 # stara verze
archiva-1.3.5 # aktualni verze
archiva-home # repo conf log atd.

Další konfigurák je v conf adresáři Maven .m2

ubuntu:~/.m2> ls -1
archiva
archiva.xml
repository
settings.xml


Tyto záznamy jsou vesměs pro mě. Podrobně je vše zdokumentováno na tránkách projektu. Pokud bude zájem ještě mám v plánu archivu dokonfigurovat, aby se autentizovala oproti LDAPu.

Ještě malá poznámka na závěr. Verze 1.3.5 nevyžadovala žádné úpravy MySQL tabulek. Udělal jsem dump a ten nalil na nový server, kam jsem aplikaci stěhoval i s archiva-home a vše běží jak má. Na stěhování repo jsem užil rsync.

pondělí 11. července 2011

grub2 Ubuntu and FreeBSD

Na jednom počítači, který dříve okupoval nějaký grafik jsem si již v minulosti instaloval Ubuntu 10.04.2 LTS. Vyhledem k tomu, že tato stanice má 3 disky, rozhodl jsem si po nějaké době opět vyzkoušet FreeBSD 8.2 RELEASE amd64 jako Desktop s Gnome2.

Použil jsem grub jako zavaděč, což je v Ubuntu defaultní zavaděč. Bohužel stávající verze 1.98 zvaná jako grub2 se výrazně změnila co se konfigurování týže. Po instalaci FreeBSD jsem bootnul do Ubuntu a přidal následující.

sudo joe /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.

menuentry "FreeBSD 8.2 RELEASE amd64" {
insmod ufs2
set root=(hd1,1,a)
search --no-floppy --fs-uuid --set 4a86db44195cac47
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ad8s1a
set kFreeBSD.vfs.root.mountfrom.options=rw
}


Pak už nechat jen vzgenerovat grub.cfg

sudo update-grub

Ten poslední disk jsem se rozhodl použít jako disk pro výměnu dat mezi systémy. Současné ubuntu používá ext4. Namontovat jde, ale FreeBSD naruší journal a je vždy třeba dělat fsck. Proto jsem daný disk naformátoval na ext2, který je ve FreeBSD plně podporován. Je třeba mít podporu v kernelu ext2fs.ko

/dev/ad10s1 on /media/disk (ext2fs, local, nosuid)

[root@lmlpc-bsd ~]# atacontrol list
ATA channel 0:
Master: ad0 ATA/ATAPI revision 5
Slave: acd0 ATA/ATAPI revision 5
ATA channel 2:
Master: no device present
Slave: no device present
ATA channel 3:
Master: no device present
Slave: no device present
ATA channel 4:
Master: ad8 SATA revision 2.x
Slave: no device present
ATA channel 5:
Master: ad10 SATA revision 2.x
Slave: no device present
ATA channel 6:
Master: no device present
Slave: no device present
ATA channel 7:
Master: no device present
Slave: no device present

čtvrtek 7. července 2011

Zabbix monitoruje sám sebe

Právě jsem si do Zabbix serveru přidal Template template_zabbix_server.xml , který se dá stáhnout z blogu autorů "monitoring how busy zabbix processes are" Blog popisuje jednotlivé typy procesů a spoustu dalších podrobností, které Zabbix interně používá. Template je možné použít v současné poslední verzi 1.8.5, využívá hlavně Itemu type Zabbix internal, což je novinka. Na grafech hnedle vidím který typ monitorovacího procesu Zabbixu je přetížen atd.

čtvrtek 30. června 2011

UPS NetVision vs Zabbix

Dostal jsem se k UPS od společnosti Socomec Sicon UPSIDENTMODEL = DIGYS 3/3 10 kVA UPSIDENTAGENTSWVERSION = Net Vision v5.01. Rozhodl jsem se danou UPS sledovat pomocí monitorovacího systému Zabbix. Hledal jsem u výrobce nějaký SNMP MIB, ale marně. Nakonec jsem našel SW pro monitoring UPSsek s názvem Nut (Network UPS Tool) v jednom ze zdrojových souborů netvision-mib.c jsem hodledal potřebné SNMP OID.

Pomocí snmpwalk jsem prověřil, zda UPS vrací korektní hodnoty.

snmpwalk -Os -c public -v 1 ups .1.3.6.1.4.1.4555.1.1.1.1.1.1.0
enterprises.4555.1.1.1.1.1.1.0 = STRING: "DIGYS 3/3 10 kVA"


Posléze jsem vytvořil Template_Netvision_UPS-6.0.yaml, který stačí jen importovat do Zabbixu a posléze přiřadit sledovanému Hostu. U hodnot Battery status a Output source jsem v Zabbixu přidal hodnoty Value Maping, dle zdrojového souboru z Nut. V Template jsem vytvořil i Trigger pro případné zaslání Notifikací u hraničních hodnot. Dále jsem udělal pár grafů. Časem možná ještě budu Template vylaďovat. Je škoda, že SNMP neumí zjistit teplotu baterii :-(.

Greylisting - kladivo na SPAM

Již několik let je Greylisting známá a hlavně účinná metoda jak snížit příjem SPAMu. Po dlouhé době jsem se rozhodl nasadit postgrey na servery s MTA Postfix. Zprovoznění je velmi snadné a je pěkně posané např. zde, ale zakousl jsem se na mé původní konfiguraci postfixu. Postgrey je perlový script, který se pouští jako daemon a naslouchá na nastaveném portu TCP nebo na UNIX socketu. Postfix při kontrolách emailu předá email k prověření Postgrey. Ten pozdrží doručení emailu a tím nám sice email dorazí později, ale pleva se nedoručí. Doposud jsem SPAM označoval SpamAssasinem a filtroval do složky. Po nasazeni Graylistingu skutečně 98% spamu nedorazí do mého mailboxu.

Instalace Ubuntu:

aptitude install postgrey

Adding system user `postgrey' (UID 109) ...
Adding new group `postgrey' (GID 117) ...
Adding new user `postgrey' (UID 109) with group `postgrey' ...
Not creating home directory `/var/lib/postgrey'.

Creating config file /etc/postgrey/whitelist_clients with new version
Creating config file /etc/postgrey/whitelist_recipients with new version
Creating config file /etc/default/postgrey with new version
Starting postfix greylisting daemon: postgrey.

joe /etc/default/postgrey
POSTGREY_OPTS="--inet=127.0.0.1:10023 --delay=120 --max-age=20"

joe postfix/main.cf
smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination,
check_policy_service inet:127.0.0.1:10023


Narazil jsem na problém s mou původní konfiguraci postfixu, do které jsem jen přidal check_policy_service .... Ale s níže uvedenou konfiguraci postfix nic nepředáva postgrey.

smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination,
check_relay_domains,
check_policy_service inet:127.0.0.1:10023
permit

Patráním po problému jsem strávil spoustu času. Zkousel jsem i UNIX Socket, ale problém byl v check_relay_domains.

Alespoň jsem si dle rad zkušenějších vyzkoušel strace -r při bezradném pátrání po problému.

Instalace FreeBSD:
cd /usr/ports/mail/postgrey/
make install clean

joe /etc/rc.conf
postgrey_enable="YES"

/usr/local/etc/rc.d/postgrey start

Opět je v portech FreeBSD aktuálnější verze než v Ubuntu 8.04.4 LST :-)

Ubuntu
postgrey 1.31-2 greylisting implementation for Postfix

FreeBSD
postgrey-1.33_1 Greylisting policy server for Postfix

úterý 21. června 2011

Zabbix API

Monitorovací systém ZABBIX poskytuje API pro získávání dat ze systému. Zabbix komunikuje mezi serverem a agentama pomocí svého protokolu ZBX a ten uvnitř používá JSON a API používá JSON-RPC. Frondend Zabbixu je napsán v jazyce PHP, proto je na snadě použít PHP pro komunikaci s Zabbix API. Existuje tato implementace zabbix 1.8 api-php-class. Máme tedy možnost získat data o sledovaných systémech atd.

Dalším zajimavým systémem využívajícím API je MoZBX, což je mobilní nástroj na nahlížení na grafy v Zabbixu. Zdrojové kódy jsou dostupné na GIThubu.

neděle 19. června 2011

První Wherigo

Rozhodl jsem se vydat zdolat tuto novou cache Zvicinsky vyslap! - GC2T61J
Včera večer jsem si prvně instaloval java aplikaci OpenWIG, která je funkční pod firemním telefonem Nokia E72. Bohužel nemám GPS s podporou Wherigo, tak to řeším touto berličkou. Dorazil jsem na místo, které velmi dobře znám. Záznam z endomonda mam zde. Cartridge jsem stahoval ze stránek wherigo.com. Výjezd po turistický sjezdovce byl hustej a zvládl jsem to v jednom zátahu (žádná chůze) můj čas byl 12:47 min.

pátek 17. června 2011

GIOM 3000 - ETHERNET ANEMO vs Zabbix

Nedávno se mi dostalo do browseru webové rozhraní od meteostanice GIOM 3000 od společnosti Mikrovlny s.r.o. Poblíž na síti se nacházel monitorovaci systém Zabbix. Když jsem uviděl stránku s MIB hodnotama neváhal jsem a hnedle jsem provětral snmpwalk a fungovalo to pěkně.

snmpwalk -Os -c public -v 1 giom 0.1.3.6.1.4.1.21287.15.14.0
ccitt.1.3.6.1.4.1.21287.15.14.0 = STRING: "17.6"



V rámci učení se s Zabbixem, musel jsem vytvořit Template Template_GIOM_3000. Definuje 18 hodnot dle MIB definice a 8 grafů. Toto zařízení si budu muset časem pořídit. Po chvíli googlování zjišťuji, že dané zařízení je hojně využíváno v projektu meteo4u.cz. Z tohoto projektu jsem odvodil grafy v template, ale ještě budou chtít doladit.

středa 8. června 2011

autofs

Již dlouho jsem chtěl používat autofs pro rychlé a snadné připojování síťových disků. Ale nikdy nějak nebyl čas. Předeběhl mě kolega, který si jej poladil na Arch linuxu. Používám všude Ubuntu, tak jsem se prokousával zde, používám jej pro SMB/CIFS i pro NFS.

Pro zprovoznení musíme provést tyto kroky.

Nainstalujeme potřebné Ubuntu balíčky:

sudo aptitude install smbfs
sudo aptitude install autofs


Do tohoto souboru přidáme na konec definici, kde se mají prohledavat nastavení.

sudo joe /etc/nsswitch.conf
...
automount: files

Vytvoříme potřebné adresáře. Distribuce ubuntu má konfiguraci v /etc, ale my chceme mít konfiguraci oddělenou v patřičném adresáři.

sudo mkdir /media/nfsshares
sudo mkdir /media/smbshares
sudo mkdir /etc/autofs

Nastavení služby autofs přenastavíme např takto. První direktiva mění umístění hlavního souboru, poslední volba zajistí podrobnější logování.

sudo joe /etc/default/autofs
MASTER_MAP_NAME="/etc/autofs/auto.master"
NEGATIVE_TIMEOUT=60
UMOUNT_WAIT=12
BROWSE_MODE="yes"
MOUNT_NFS_DEFAULT_PROTOCOL=3
LOGGING="verbose"


cat auto.master
/media/nfsshares /etc/autofs/auto.nfs --timeout=60
/media/smbshares /etc/autofs/auto.smb --timeout=60


Heslo do Windows je uloženo zde, bohužel nešifrovaně, proto je vhodné upravit práva pro čtení jen pro roota:

cat /etc/autofs/credentials
username=malyl
password=123456
domain=LMNET


Definice montování je zde s tím že je třeba pozměnit napr UID pokud používáte jiné.

cat /etc/autofs/auto.smb
data1 -fstype=cifs,ip=192.168.1.3,file_mode=0644,dir_mode=0755,uid=1000,gid=1000,credentials=/etc/autofs/credentials,rw,iocharset=utf8 ://samba/malyl\$

cat /etc/autofs/auto.nfs
data2 -fstype=nfs,rw 192.168.1.2:/mnt/tank/data


Nakonec provedeme restart autofs

sudo /etc/init.d/autofs restart

Po restartu můžeme v logu vidět následující:

Jun 8 14:04:42 bubu automount[10335]: Starting automounter version 5.0.4, master map /etc/autofs/auto.master
Jun 8 14:04:42 bubu automount[10335]: using kernel protocol version 5.01
Jun 8 14:04:42 bubu automount[10335]: mounted indirect on /media/nfsshares/data1 with timeout 60, freq 15 seconds
Jun 8 14:04:42 bubu automount[10335]: ghosting enabled
Jun 8 14:04:42 lmlnb automount[10335]: mounted indirect on /media/smbshares/data2 with timeout 60, freq 15 seconds
Jun 8 14:04:42 bubu automount[10335]: ghosting enabled


Dále se sem loguje přimontování a odmontování, které vyvoláme vstupem do adresářů. Tato konfigurace bude fungovat i v jiných Linuxových distribucích, jen může být jiné umístění konfiguračních souborů atd. Konfiguraci je možno vyladit i na Vaše domáci NASy či jiná sdílená datová prostředí.

Linuxu na desktopu zdar.

sobota 14. května 2011

První dvorský CITO Event


První dvorský CITO Event
Originally uploaded by SmEjDiL

Dnes proběhl CITO Event ve Dvoře Králové nad Labem, jsem rád, že se účastnilo tolik lidí, dík za pomoc při úklidu.