pondělí 29. března 2010

bind95 pro Ubuntu 8.04.4 neexistuje

Dnes jsem chtěl interní DNS server začít monitorovat pomoci Zabbixu. Běží na něm OS Ubuntu 8.04.4 tudíž bind9 (9.4.2.dfsg.P2-2ubuntu0.5). Návod, jak monitorovat využívá podporu libxm2 v bind9, se kterou musí být kompilován. Funkce statistik je dostupná od verze bind95.

Direktiva která zapíná statistiku může vypadat následovně:

statistics-channels {
inet 192.168.0.1 port 8080 allow { 192.168.2.13; 192.168.2.15; };
inet 127.0.0.1 port 8080 allow { 127.0.0.1; };
};


Podrobnosti o konfiguraci i kompilaci jsou např. zde.

Musím trošku pohanět Ubuntu i Debian (a obdobně na tom jsou i ostaní distribuce), že balíky jsou vázané na release OS. A např. v průběhu dlouhého života např. LTS verze je dosti obtížné povýšit na novější verzi bindu. Zde je přehled verzí bind9 v jednotlivých vydání Ubuntu.

V tomto ohledu musím vypíchnost velmi dobrou vlastnost OS FreeBSD a hlavně portů, které umožňují instalaci odlyšných verzí bindu, bez návaznosti na verzi systému. Zde je přehned verzí bind9 v portech.

Ve FreeBSD 8 je BIND9 verze viz níže bez podpory libxml2

[root@FreeBSD ~]# named -V
BIND 9.6.1-P1 built with '--prefix=/usr' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--enable-threads' '--disable-ipv6' '--enable-getifaddrs' '--disable-linux-caps' '--with-openssl=/usr' '--with-randomdev=/dev/random' '--without-idn' '--without-libxml2'


Na domacím FBSD jsem si instaloval port dns/bind97. Nastavení je následující.

# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for bind97-9.7.0.1
_OPTIONS_READ=bind97-9.7.0.1
WITHOUT_SSL=true
WITH_LINKS=true
WITH_XML=true
WITHOUT_IDN=true
WITH_REPLACE_BASE=true
WITHOUT_LARGE_FILE=true
WITHOUT_SIGCHASE=true
WITHOUT_IPV6=true
WITHOUT_DLZ_POSTGRESQL=true
WITHOUT_DLZ_MYSQL=true
WITHOUT_DLZ_BDB=true
WITHOUT_DLZ_LDAP=true
WITHOUT_DLZ_FILESYSTEM=true
WITHOUT_DLZ_STUB=true
WITH_THREADS=true



Po kompilaci statistika funguje

[root@FreeBSD ~]# named -V
BIND 9.7.0-P1 built with '--localstatedir=/var' '--disable-linux-caps' '--disable-symtable' '--with-randomdev=/dev/random' '--disable-openssl-version-check' '--without-openssl' '--with-libxml2=/usr/local' '--without-idn' '--enable-threads' '--sysconfdir=/etc/namedb' '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info/' '--build=i386-portbld-freebsd8.0' 'build_alias=i386-portbld-freebsd8.0' 'CC=cc' 'CFLAGS=-O2 -pipe -fno-strict-aliasing' 'LDFLAGS= -rpath=/usr/local/lib' 'CXX=c++' 'CXXFLAGS=-O2 -pipe -fno-strict-aliasing'

pátek 26. března 2010

Ubuntu 10.04 BETA1


Ubuntu 10.04 BETA1 - SW Center
Originally uploaded by SmEjDiL

O nové LTS verzi Ubuntu bylo již napsáno hodně. Po přečtení zprávyčky sem si musel do VMware Workstation nainstalovat nově připravované Ubuntu 10.04 BETA1. Fialový vzhled se mi osobně až tak moc nelíbí, ale vše se dá přenastavit. Na druhou stranu změn není nikdy dost. Konzervy ovšem prskaj, že co verze, tak jiný vzhled. Uvítal jsem aktualizaci postarších balíku jako je zabbix-agent a např bacula-client. Dále jsem uvítal PSI+ a jiné změny. Až vyjde final release otestuju na domácím notebooku a až bude čas a chut instalnu na firemni vercajk ... :-)

pondělí 22. března 2010

MALLOC_CHECK - glibc vs java

S touto hláškou mě dnes lehce vyděsil kolega s kódovým označením PCI :-)

*** glibc detected *** double free or corruption ***

Hláška se objevila při spustění čehosi co je napsáno v jazyce Java a má to obludný název com.fg.pdf.cps.PdfToImageAction :-) Načítá si to PDF soubory a někam na určené místo to vyplivne obrázky. Budu dále pátrat co toto chování způsobuje, protože daný proces doslova sejme aplikační server Tomcat.

Řešením je pro uživatele pod kterým se to pouští nastavit tuto proměnnou. Tak jako tak je třeba přijít na příčinu přetékání paměti. MALLOC je subrutina jazyka C, která řídí dinamickou alokaci paměti.

export MALLOC_CHECK_=0

set | grep MALL
MALLOC_CHECK_=0


Testováno na Linux systémech s glibc těchto verzí:

libglib2.0-0 2.16.6-0ubuntu1.2
libglib2.0-0 2.10.3-0ubuntu1


Zde je použití proměnné MALLOC_CHECK pěkně popsané.

čtvrtek 11. března 2010

Postfix mail gate for Exchange

V práci používáme M$ Exchange no a nějak už nestíhaly odbavovat tu hromadu emailů. Tak padlo rozhodnutí strčit je dovnitř a předsadit před ně Postfix. Řešil jsem problém, jak získat z AD seznam adresátů. A nakonec jsem našel na stránkách postfix.org velmi šikovný návod, který používá tento perlový script, pro připojení k LDAPu se získá seznam adres, který se dále použije v této definici v main.cf.

relay_recipient_maps = hash:/etc/postfix/your_recipients

Do Cronu je vhodné dát např. toto:

#!/bin/sh

cd /etc/postfix ; ./getadsmtp.pl && postmap your_recipients

Příkaz postmap vytvoří postfixem čitelný soubor s tabulkou, která slouží jako seznam adresátů, na které SMTP server doručuje, ostatní emaily se zahazují.

Perlový script vyžaduje modul Net::LDAP v Ubuntu se balík jmenuje libnet-ldap-perl a ve FreeBSD p5-perl-ldap.

středa 10. března 2010

Zabbix a Postfix

Pokud provozujeme nějaký SMTP server např. s Postfixem, je vhodné sledovat vytížení a mailový trafic. Jako minitorovací systém je vhodný ZABBIX. Jak sledovat frontu postfixu nalezneme zde.

http://www.zabbix.com/wiki/howto/monitor/mail/postfix/monitoringpostfix

Pro fungování návodu musíme do systému dointalovat programy pro práci s logy a mailovou frontou.

apt-get install pfqueue
apt-get install pflogsumm
apt-get install logtail

pondělí 8. března 2010

mod_jk 1.2.30 na Ubuntu 8.04.4 ze src

V Ubuntu Hardy Heron nebo číselně 8.04.4 LTS je velmi stará verze Apache2 modulu mod_jk 1.2.25 z 7.8..2007 :-( Např. ve FreeBSD je daný modul v aktuální vezi.

Pokud řešíte problém jako je nastavení workers.properties, ve kterém vyžaduji nastavení viz sekce v dokumentaci / Load Balancing Directives - sticky_session a Advanced Worker Directives - session_cookie / je problém na světě. Daná funkcinalita Tomcat Load Balancingu a chování session je funkční od až od veze 1.2.27. No a zde nám Debian a Ubuntu nějak usnulo. Neaktuálnost balíku v LTS verzi mě trošku zaráží. Hledal jsem nějaký externí repozitář, ale nenašel jsem. Rozhodl jsem se modul aktualizovat kompilací ze src.

Stručný popis, jak na to:

sudo su -
mkdir install
wget http:// kdesi cosi /tomcat-connectors-1.2.30-src.tar.gz
tar xvzf tomcat-connectors-1.2.30-src.tar.gz
cd tomcat-connectors-1.2.30-src/
less BUILD.txt

Dle popisu, jak kompilovat je patrné, že potřebuji APache eXtenSion tool pro Apache2. Hledám, v jakém balíčku se nachází.

apt-cache search apxs2
apache2-prefork-dev - development headers for apache2
apache2-threaded-dev - development headers for apache2

Jelikož používám apache2-mpm-worker volím druhý balík.

apt-get install apache2-threaded-dev

Kompiluji ...

cd native/
./configure --with-apxs=/usr/bin/apxs2
make
make install

Installing files to Apache Modules Directory...
/usr/bin/apxs2 -i mod_jk.la
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' mod_jk.la /usr/lib/apache2/modules
/usr/share/apr-1.0/build/libtool --mode=install cp mod_jk.la /usr/lib/apache2/modules/
cp .libs/mod_jk.so /usr/lib/apache2/modules/mod_jk.so
cp .libs/mod_jk.lai /usr/lib/apache2/modules/mod_jk.la
cp .libs/mod_jk.a /usr/lib/apache2/modules/mod_jk.a
ranlib /usr/lib/apache2/modules/mod_jk.a
chmod 644 /usr/lib/apache2/modules/mod_jk.a
PATH="$PATH:/sbin" ldconfig -n /usr/lib/apache2/modules
----------------------------------------------------------
Libraries have been installed in:
/usr/lib/apache2/modules

Je třeba si uvědomit, že příkazem make install se nám přepíše modul z instalované verze v systému libapache2-mod-jk 1:1.2.25-2. Dále je třeba brát v patrnosti, fakt, že jsme vzali čisté zdrojáky, ale na systémový balíček je aplikován patch udržovatelů daného balíčku. Takže je velkou neznámou, zda je možno tuto verzi modulu takto zkompilovanou nasadit na produkční server.

Dále jsem si všiml, že direktivu JkMount jem musel z jk.conf přesunout do souboru kde definuji virtualni web server, ale to si musí každý vyzkoušet sam. Jistá změna tam prostě je.

středa 3. března 2010

QR code


RQ code
Originally uploaded by SmEjDiL

Dnes jsem se seznámil s tímto typem kódu :-). No a vyzkoušel jsem si program qrencode na příkazové řádce. Dále jsem si do Androinda nainstaloval Barcode Scanner, který umí dané kódy krásně číst. Dík za pěkný článek na rootu.

úterý 2. března 2010

Reinstal MySQL na Ubuntu

Dnes se mi povedlo poněkud rozbít instalaci MySQL na jednom serveru s Ubuntu 8.04.4 LTS. Prováděl jsem čachry s Replikací, přesněji sem si připomínal, jak se to nastavuje.

Instalace meta balíčku mysql-server provádí více nastaveni. A to trošku vyžaduje šetrné zacházení. Dostal jsem se do stavu, kdy databáze nešla odinstalovat. Dle chyby jsem usoudil, že jsou špatně práva uživatele root v databázi. Řešením bylo nastartovat databázi s nastavením --skip-grant-tables.

/usr/sbin/mysqld --skip-grant-tables --skip-networking

Podrobný popis, jak měmit práva a ostatní je zde.

dpkg -r mysql-server-5.0 mysql-server mysql-common mysql-client-5.0 libmysqlclient15off libdbd-mysql-perl
dpkg -P libmysqlclient15off mysql-common mysql-server-5.0
reboot
apt-get install mysql-server


Když se mi podařilo databázi odinstalovat, znovu nešla nainstalovat, pomohl až restart OS, což mi lehce připomíná obdobný problém s Oracle XE, kde se do /proc nastavila kupa hodnot, které zamezily opětovnou instalaci. Patrně u MySQL bude něco podobného, po tom jsem už nepátral.