pátek 16. listopadu 2012

Orabbix vs Zabbix 2.0


Dostal jsem za úkol monitorovat databázi Oracle. Volba padla na zatím nevyzkoušený nástroj Orabbix. Jedná se o Java aplikaci, která se přihlašuje do DB Oracle pomocí JDBC a pomocí definovaných dotazů odesílá metriky do Zabbix serveru, kde jsou nadefinovány patřičné hodnoty typu Zabbix trapper.

Popis užití je podrobně popsán zde.

Při konfiguraci jsem narazil na malou záludnost. Název db connection stringu musí být shodný s hostname definovanem v zabbixu, což jsem nikde v dokumentaci nedohledal, snad jen něco málo na fóru zabbix.

DatabaseList=ora-db1,ora-db2 # hostname in zabbix = prefix DatabaseList !!!

#define here your connection string for each database

ora-db1.Url=jdbc:oracle:thin:@192.168.42.142:1521:TESTDB1
ora-db1.User=zabbix
ora-db1.Password=xxxx
ora-db1.QueryListFile=./conf/query.props
 

ora-db2.Url=jdbc:oracle:thin:@192.168.42.143:1521:TESTDB2
ora-db2.User=zabbix
ora-db2.Password=xxxx
ora-db2.QueryListFile=./conf/query.props

Při hledání problému s příjmáním dat v zabbixu jsem narazil na chybu v zabbixu, kterou objevil autor aplikace, popsáno na jeho webu. Alespoň jsem si tím ujasnil, že klíče i hodnoty mohou být kódovány i pomocí base64, což může být matoucí.

úterý 6. listopadu 2012

SSH anonymně pomocí Tor


Pokud používáme v síti Tor a Privoxy viz můj postarší příspěvek. A chceme být anonymní i skrze SSH, budeme potřebovat aplikaci proxy-connect.

Na FreeBSD nainstaluju z portu.

cd /usr/ports/net/proxy-connect && make install clean

SSH se konektí skrze Tor.

ssh username@server.domena.cz -o ProxyCommand="/usr/local/sbin/proxy-connect -4 -S localhost:9050 %h %p"
nebo

ssh -l username -2 1.2.3.4 -o ProxyCommand="/usr/local/sbin/proxy-connect -4 -S localhost:9050 %h %p"


Další možností je:

Add to ~/.ssh/config

Host remote.outside.net
    ProxyCommand /usr/local/sbin/proxy-connect -S socks:1080 %h %p

RedHat Local Repo - reposync createrepo

Rešil jsem takový malý problém. Mám 10 RHEL 6.3 serverů a při jejich aktualizaci nechci balíky stahovat pokaždé z RedHat RHN. S tím že Squid HTTP proxy je jen průtokáčem a nic se nekešuje :-( Komunikace s RHN se provádí skrze xmlrpc bránu.

1352209629.189   1482 192.192.42.13 TCP_MISS/000 2206 CONNECT xmlrpc.rhn.redhat.com:443 - FIRST_UP_PARENT/192.192.42.42 -

První plánované řešení bylo použít RHN Proxy Server. Tento server je součástí komerčního RedHat Network Satellite. Jistou variantou bylo použít komunitní verzi SpaceWalk, ale pro 10 serverů je to moc velký moloch, který se vyplatí používat jen u velkých firem o desítkách serverů.

Pan Google mě přivedl na tento návod. Kde se použije poněkud jednodužší řesení s reposync. Jeden s 10ti serverů vybereme jako ten pro stahovaní repo. Všechny servery jsou registrovány v RHN. 11cty server je CentOS, kde je zprovozněn NFS server, kde je repo fyzicky umístěný.

Vypíši si použité repositáře na RHEL serveru:

yum repolist 
repo id
rhel-x86_64-server-6
rhel-x86_64-server-ha-6
rhel-x86_64-server-supplementary-6


Příkazy pro synchronizaci repository. Je zapotřebí balík yum-utils

reposync -p /data/nfs/repo/ --repoid=rhel-x86_64-server-ha-6 -l
reposync -p /data/nfs/repo/ --repoid=rhel-x86_64-server-supplementary-6 -l
reposync -p /data/nfs/repo/ --repoid=rhel-x86_64-server-6 -l


Pro funkční repo musíme nainstalovat balíček createrepo

yum install createrepo

createrepo /data/nfs/repo/
...
Saving Primary metadata
Saving file lists metadata
Saving other metadata


V adresáři kam se syncují repositáře se vytvoří adresář repodata s metadaty o aktualizacích. Vzhledem k tomu, že tři uvedené repo obsahuji 16GB dat je vytvoření metadat o 9tisících souborech poněkud zdlouhavé.

ls -1 repodata/

filelists.xml.gz
other.xml.gz
primary.xml.gz
repomd.xml


Nastavení yum na jednotlivých RHEL serverech.

vi /etc/yum.repos.d/local.repo

[rhel-localrepo]
name=Local Red Hat Enterprise Linux $releasever - $basearch
baseurl=file:///data/nfs/repo
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release


Vypneme RHN krom aktualizačního serveru.

vi /etc/yum/pluginconf.d/rhnplugin.conf
[main]
enabled = 0


Provedeme aktualizace, za předpokladu, že všechny RHEL servery maji namontován NFS svazek do /data/nfs/repo.

yum clean all
yum list updates
yum update


A na závěr taková rejpavá poznámka. Proč ty komerční krámy musí být tak komplikované? CentOS má veřejné repo a např. Debianí svět má svou APT-Cacher NG.

pondělí 5. listopadu 2012

Bumblebee project


O víkendu se mi do rukou dostal notebook Lenovo IdeaPad G580 s tím, že majitel na něj nainstaloval Ubuntu 12.04 LTS. Ovšem nefungovalo mu OpenGL. Daný HW má v sobě dvě VGA karty.

00:02.0 VGA compatible controller: Intel Corporation Ivy Bridge Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 0de9 (rev ff)


Problém spočívá v tom, že klasické nVidia drivery nejsou funkční. Tento problém jsem měl již v lednu s tehdejším firemním notebookem. Onehdá však nebylo řešení. Od té doby vznikl projekt http://bumblebee-project.org/ , který daný problém řeší.  Projekt řeší podporu NVIDIA Optimus technology pod Linuxem. Osobně bych se při koupi NTB této technologii vyhnul.

Instalace na Ubuntu je velmi jednoduchá.

Přidáme potřebný repozitář.

sudo add-apt-repository ppa:bumblebee/stable

Zaktualizujeme repo data.

sudo apt-get update

Nainstalujeme potřebný balíky.

sudo apt-get install bumblebee bumblebee-nvidia

úterý 30. října 2012

Bráchové


Bráchové
Originally uploaded by SmEjDiL

Není co dodat ...

Samsung Smart TV používá XFS


K mé televizi 37" Samsung UE37ES6100 jsem připojil čtečku karet s Compact Flash a chtěl jsem na ní vyzkoušet nahrávání. TV mě oznámila, že si kartu zformátuje. Po formátu mi oznámila, že je vhodnější použít klasický disk, karta byla pomalá pro zápis. I tak jsem na kartu nahrál část Partičky.

Pak jsem neváhal a vzal jeden postarší 80GB disk co se mi válel pod stolem a pomocí patřičného konvertoru a napájení jej připojil k TV. Při volbě nahrávání mě TV opět vyzvala k formátování disku.

Po nahrávání jsem disk připojil k domácímu PC s OS Linux Ubuntu a mile jsem byl překvapen, když jsem zjistil zě TV používat filesystém XFS. Který je v UNIX/Linux OS doma. Tento žurnálový filesystém uvolnila společnost SGI - Silicon Graphics.

http://cs.wikipedia.org/wiki/XFS
http://en.wikipedia.org/wiki/XFS

Již chápu dotazy známých na téma, já si něco nahraju na disk z TV, ale když to připojím do Window$ tak tam nic není. To bude asi tím, že Win XFS neumějí :-) Samsung má u mě další kladné body.

Uložená nahrávka má vždy 5 souborů.

-rw-r--r-- 1 root root  572 1970-01-01 01:53 20121031021004.ss
-rw-r--r-- 1 root root 921M 1970-01-01 02:18 20121031021004.srf
-rw-r--r-- 1 root root 1,4M 1970-01-01 02:18 20121031021004.mdb
-rwxr-xr-x 1 root root 7,8K 1970-01-01 02:18 20121031021004.inf
-rw-r--r-- 1 root root  89K 1970-01-01 02:18 20121031021004.mta


Popis je např. zde.

Připojení disktu k Linuxu.

Oct 31 20:45:12 negr kernel: [11114.576017] usb 2-1: new high speed USB device using ehci_hcd and address 2
Oct 31 20:45:12 negr kernel: [11114.709809] usb 2-1: configuration #1 chosen from 1 choice
Oct 31 20:45:12 negr kernel: [11115.159838] Initializing USB Mass Storage driver...
Oct 31 20:45:12 negr kernel: [11115.159964] scsi8 : SCSI emulation for USB Mass Storage devices
Oct 31 20:45:12 negr kernel: [11115.160054] usbcore: registered new interface driver usb-storage
Oct 31 20:45:12 negr kernel: [11115.160056] USB Mass Storage support registered.
Oct 31 20:45:17 negr kernel: [11120.161478] scsi 8:0:0:0: Direct-Access     WDC WD80 0BB-00DAA1       3B02 PQ: 0 ANSI: 2 CCS
Oct 31 20:45:17 negr kernel: [11120.162192] sd 8:0:0:0: Attached scsi generic sg4 type 0
Oct 31 20:45:17 negr kernel: [11120.165306] sd 8:0:0:0: [sdd] 156301488 512-byte logical blocks: (80.0 GB/74.5 GiB)
Oct 31 20:45:17 negr kernel: [11120.166082] sd 8:0:0:0: [sdd] Write Protect is off
Oct 31 20:45:17 negr kernel: [11120.170339]  sdd: sdd1
Oct 31 20:45:17 negr kernel: [11120.192840] sd 8:0:0:0: [sdd] Attached SCSI disk
Oct 31 20:45:18 negr kernel: [11121.138362] SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled
Oct 31 20:45:18 negr kernel: [11121.140051] SGI XFS Quota Management subsystem
Oct 31 20:45:18 negr kernel: [11121.141832] XFS mounting filesystem sdd1

Ubuntu 12.04.1 LTS - Browsers

Na svém pracovním notebooku používám 3 prohlížeče. Identifikovány v logu webserveru Apache jsou takto.

FireFox
10.0.42.6 - - [30/Oct/2012:09:00:42 +0100] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0"

Chromium
10.0.42.6 - - [30/Oct/2012:09:01:31 +0100] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11"

Opera
10.0.42.6 - - [30/Oct/2012:09:02:18 +0100] "GET / HTTP/1.1" 200 3390 "-" "Opera/9.80 (X11; Linux x86_64; U; Edition Linux Mint; cs) Presto/2.10.289 Version/12.02"

neděle 28. října 2012

Samsung Smart TV + SERViiO


Po třech letech odkládání jsem konečně zahodil starou CRT TV + jeden z prvních Set-UP boxů Genius DVB-T. Už mě hodně vadilo, že okraje obrazu jsou značně ořezané, ale hlavním důvodem byla jakákoliv absence přehrávat data z FreeNAS.

Původně jsem chtěl plazmu, ale z velikosti TV jsem ustoupil a pořídil LED 37" Samsung UE37ES6100. Televize má integrované DLNA a tak jsem se zaměřil na jeho zprovoznění. Zprvu jsem čekal, že server Fuppes - Free UPnP Entertainment Service integrovaný ve FreeNAS 0.7 bude v TV podporován. Ale TV jej vůbec nevidí. Zaměřil jsem se na DLNA server  Mediatomb, který jsem zprovoznil na domácím FreeBSD serveru.

mediatomb-0.12.1_8  UPnP AV MediaServer

Tento media server se v TV objevil, ale nic z něj nešlo přehrávat. Nakonec jsem objevil Serviio, což je Java Media server. Též jsem jej instaloval na FreeBSD serveru z patřičného portu.

serviio-0.6.2       Transcoding DLNA-server implemented in Java

Tento server Serviio mě velmi mile překvapil. Bez velkého ladění najednou televize ožila. Pomocí GUI konzole jsem přidal adresáře namontované přez NFS z FreeNAS. DLNA server si obsah patřičně ošahal a zaindexoval. Pro každé zažízení v domácí síti, které chce DLNA využívat (TV, Mobil Android, PC Totem+Coherence) je možno přiřadit patřičný profil. Např. mi nešlo přehrávat MKV videa a po nastavení patřičného profilu Samsung TV / Player (C/D-series) k TV. Fungování MKV jsem otestoval a opět mě mile překvapilo fungování titulků skrze DLNA. V TV jsem jen nastavil českou verzi.

Vlastností DLNA server Serviio je celá řada.  Překvapila mě např. funkcionalita ohledně indexování souborů. Server skrze API kontaktuje server TheTVdb.com, výsledkem je možnost hledání filmů podle herců, producentů či režisérů. Po indexaci obsahu jsem pátral v systému, kam si to ukládá. Serviio využívá databázi Derby. Adresář, kam si ukládá svá data /var/db/serviio zabírá nyní 244M.

Další zajímavou funkcionalitou je možnost sledování Online obsahu. Je možno nadefinovat internetová rádia či image gallery. Tyto vlastnosti budou teprve objevovat.

Už se těším až ve FreeBSD bude patřičný port aktualizován na aktuální verzi 1.0.1.

pátek 19. října 2012

RHEL 6.3 Bonding

Na OS RHEL 6.3 jsem rešil zprovoznění dvou síťovek za pomocí Bondingu. Konfigurace v režimu active-backup nebo 1. Nastavení je vcelku jednoduché. Vycházel jsem z oficiálná RedHat dokumentace Using Channel Bonding. Pěkný a ucelený návod je např. zde.

Nalezl jsem i bug, který je spojen s obdobným driverem, který používám na daném serveru. Naštěstí se mě netýkal.

Pro fungování bondigu je nutné aby byli síťovky zapojeny do Switch1 a Switch2. Konfiguraci na úrovni switchů jsem neřešil. Nevím, zda je tam pro bonding něco třeba. To třeba až zase někdy příště.

Driver "Ethernet Channel Bonding Driver" je možno konfigurovat složitěji. Např. se dají síťovky združovat a využít tak protokol LACP atd.

Výpis a informace o driveru pomocí ethtool.

ethtool -i eth0
driver: bnx2
version: 2.2.1
firmware-version: bc 5.2.3
bus-info: 0000:09:00.0


nebo

ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   1000baseT/Full
                                10000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  1000baseT/Full
                                10000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Speed: Unknown!
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: g
        Wake-on: d
        Link detected: yes


Info z lspci

09:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709S Gigabit Ethernet (rev 20)
09:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709S Gigabit Ethernet (rev 20)


Prověříme, zda je přítomen patřičný balik kvuli programu ifenslave.

yum install iputils

Začneme konfigurovat interface eth0 a eth1

cd /etc/sysconfig/network-scripts/

DEVICE="bond0"
IPADDR="192.168.42.13"
NETMASK="255.255.255.0"
GATEWAY="192.168.42.1"
DNS1="192.168.42.10"

HOSTNAME="rhel63-test"
ONBOOT="yes"
BOOTPROTO="none"
USERCTL="no"
NAME="bond0"
BONDING_OPTS="miimon=80 mode=1"

DEVICE="eth0"
NAME="System eth0"
BOOTPROTO="none"
HWADDR="E8:39:35:C0:11:BC"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
UUID="9ae66694-cff1-4cab-99d4-fc7de045369c"
SLAVE="yes"
MASTER="bond0"

DEVICE="eth1"
NAME="System eth1"
BOOTPROTO="none"
HWADDR="E8:39:35:C0:11:BE"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
UUID="badf918c-3cc1-4e77-94c2-c8dc24032133"
SLAVE="yes"
MASTER="bond0"


Nastavíme load kernel modulu.

vi /etc/modprobe.d/bond0.conf
alias netdev-bond0 bonding


Restart síťových rozhraní.

/etc/init.d/network

V /proc můžeme prověřit některé informace.

cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 80
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: e8:39:35:c0:11:bc
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: e8:39:35:c0:11:be
Slave queue ID: 0


ifenslave -a
The result of SIOCGIFFLAGS on lo is 49.
The result of SIOCGIFADDR is 7f.00.00.01.
The result of SIOCGIFHWADDR is type 772  00:00:00:00:00:00.
The result of SIOCGIFFLAGS on eth1 is 1043.
The result of SIOCGIFADDR is ffffffac.13.ffffffc8.20.
The result of SIOCGIFHWADDR is type 1  e8:39:35:c0:c0:e6.
 


Danou konfiguraci musím časem prověřit i ve FreeBSD. Zde je vodítko.

pondělí 24. září 2012

Automate Debian install

Sejně jako RedHat a odvozede distribuce mají Kickstart. Debian a odvozené distribuce maji Preseed.

Přehledný popis je na tomto blogu.

pátek 21. září 2012

nComputing on Ubuntu 10.04.4 LTS

Na jedné nejmenované základní škole mají učebnu s 20 terminaly L-300 od nComputing L-Series. Používaji primárně Windows 2008 serveru, který obhospodařuje danou učebnu.
Server pro nComputing s Win běží pod virtualizací. Jelikož zazněl požadavek, že by nebylo na škodu 8-9tým třídám ukázat i jiný OS. Provedl jsem tedy instalaci Linux Ubuntu Desktop 10.04.4 LTS i386. Společnost nComputing poskytuje svůj SW zvaný vSpace server i pro Linuxovou distribuci Ubuntu. Stáhl jsem tedy patřičný zip archív vSpace-L-3.1.4-r11465_release_for_Ubuntu-10.04.zip, který obsahuje deb baličky.

Instalace vSpace je podrobně a přehledně popsána v dokumentaci Ubuntu_10 04 2_L-series_Install_Guide_v0 3_Apr19-2011.pdf. Na instalaci není naprosto nic složitého. Vše jsem provedl v GUI, takže žádná příkazová řádka. Instalaci Linux Desktop i vSpace zvládne kdokoli.

Pro použití v dané škole jsem ještě doinstaloval Likewise Open, které popisuji zde. Rychle a jednoduše se tedy Linux dostal na 20 stanic. Žáci se mohou autentizovat pomocí svých školních účtů. Na Linux serveru (Desktop) se jim po přihlášení založí jejich home adresář a mohou se tak vesele seznamovat s jiným OS než jsou Window$.

Někdy v tomto školním roce zajdu na hospitaci ...

středa 19. září 2012

VMware vSphere Perl SDK

Potřeboval jsem si zprovoznit VMware API a šáhnul jsem po jednom z několika nástrojů, které VMware má k dispozici. Tyto nástroje hodlám použít pro monitorovani ESXi hypervisorů např. dle tohoto návodu na Zabbix fóru.

vSphere Perl SDK jsem si instaloval na třech různých OS. FreeBSD, CentOS a Ubuntu Desktop. Toto SDK má v sobě nejen Perlovské knihovny, ale i připravené CLI příkazy též postavené na Perlu, které umí poměrně hodně věcí. Již dříve jsem si CLI instaloval. Většina API nástrojů je integrována ve virtuálce vMA. Osobně jsem se rozhodl Perl SDK instalovat na své systémy.

FreeBSD 8.x i 9.x

Existuje port, který je momentálně ve verzi 5.0.0. Instalace všech závislostí je velmi snadná.

fetch http://nekde/VMware-vSphere-Perl-SDK-5.0.0-422456.i386.tar.gz
mv VMware-vSphere-Perl-SDK-5.0.0-422456.i386.tar.gz /usr/ports/distfiles/


cd /usr/ports/net/vmware-vsphere-cli && make install


Po instalaci je dobré zohlednit postinstalační zprávu.

========================================================================
Please note that, by default, an underlying Perl module does certificate
verification when communicating with vSphere hosts.

You must create a file that contains the public keys of all of your
vSphere hosts and then configure your Perl scripts to have the following
line:
$ENV{HTTPS_CA_FILE} = "/path/to/file";

If you want to disable this important security feature, you may set the
following variable to 0:
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}
========================================================================


Balíček se jmenuje přesně takto.

vmware-vsphere-cli-5.0.0 VMware vSphere SDK for Perl with CLI tools

Jakou verzi používáme zjistíme následovně.

perl -MVMware::VIRuntime -e 'print $VMware::VIRuntime::VERSION'
5.0


Pro programování v perlu jsou důležité tyto Perlovské moduly.

VMware::VIM25Runtime
VMware::VIM2Stub
VMware::VIM2Runtime
VMware::VICommon
VMware::VILib
VMware::VIM25Stub


Nutno dodat, že port neobsahuje binárky esxcli!

CentOS 6.3 x86_64

Instalace na této distribuci odvozené od RHEL je poněkud komplikovanější. Je to kombinace tří zdrojů. Některé baličky jsou z oficiálního repositáře. Dále je nutný EPEL a jeden Perl modul jsem musel instalovat ručně.

Instalaci jsem konfrontoval s oficiální dokumentací vsphere-esxi-vcenter-server-51-sdk-for-perl-installation-guide.pdf, kde není instalace kompletní. Sice se část nainstaluje dle návodu, ale spoustu Perl modulů - balíčků musíme instalovat sami. Já si své instalované moduly poznamenám.

Instalace dle návodu k RHEL

yum install openssl-devel libxml2-dev e2fsprogs-dev

Nastavení proxy bylo vyžadováno ...

export ftp_proxy=http://192.168.42.7:8080
export http_proxy=http://192.168.42.7:8080

Stáhneme si instalační soubor.

VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz

tar xvzf VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz
cd vmware-vsphere-cli-distrib && ./vmware-install.pl

Instalátor si žádá následující balíčky o kterých dokumentace píše obecně. Názvy uváděny nejsou.

yum install perl-Archive-Zip perl-Compress-Zlib perl-Crypt-SSLeay perl-Class-MethodMaker perl-HTML-Parser perl-SOAP-Lite perl-XML-SAX perl-ExtUtils-CBuilder perl-libxml-perl perl-XML-LibXML-Common

Né vše je v oficiálním repo.

rpm -i http://ftp.fi.muni.cz/pub/linux/fedora/epel/6/i386/epel-release-6-7.noarch.rpm
yum update
zum install uuid-perl perl-Data-Dump


Instalátor si žádá verzi UUID 0.03 or newer, která není ani v jednom repo.

Doinstalujeme si nástroje pro build.

yum install make gcc libuuid-devel

Na stránce  http://search.cpan.org/~jnh/UUID/UUID.pm si najdeme odkaz ke stažení src.

wget http://search.cpan.org/CPAN/authors/id/J/JN/JNH/UUID-0.04.tar.gz
tar xvzf UUID-0.04.tar.gz && cd UUID-0.04
perl Makefile.PL
make install clean

Instalace již doběhla s varováním, které zatím ignoruji. Co jsem od SDK potřeboval fungovalo.

The following Perl modules were found on the system but may be too old to work
with vSphere CLI:

Compress::Zlib 2.037 or newer
Compress::Raw::Zlib 2.037 or newer
version 0.78 or newer
IO::Compress::Base 2.037 or newer
IO::Compress::Zlib::Constants 2.037 or newer
LWP::Protocol::https 5.805 or newer

Enjoy,

--the VMware team

Ubuntu 12.04 LTS Desktop

Naposledy jsem si instaloval VMware vSphere Perl SDK na notebook. Instalace je opět pro Ubuntu 10.04 popisována v dokumentaci. Taktéž je doporučeno instalovat jen něco.

32 bit
sudo apt-get install build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl
64 bit
sudo apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl

Doinstalovávám tyto deb balíky

libarchive-zip-perl
libcrypt-ssleay-perl
libclass-methodmaker-perl
libdata-dump-perl
libsoap-lite-perl


tar xvzf VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.tar.gz
cd vmware-vsphere-cli-distrib


Test verze Perl SDK.

perl -MVMware::VIRuntime -e 'print $VMware::VIRuntime::VERSION'
5.1.0


Test spojeni s ESXi pomocí připravených ukázkových scriptů.

cd /usr/lib/vmware-vcli/apps/general/
./connect.pl --url https://192.168.42.13/sdk/webService --username root --password ***
Connection Successful
Server Time : 2012-09-19T12:31:19.505723Z


Pokud se nám objevuje chybová hláška začínající ...

Server version unavailable at ...

Slevíme z bezpečnosti a nastavíme si danou proměnnou na zero.

export PERL_LWP_SSL_VERIFY_HOSTNAME=0

Teď už jen zažít programovat :-) Jinak mnoho zajímavých informací je na blogu vmware http://blogs.vmware.com/vsphere/tag/vsphere-api

Zabbix

Pro otestování Perl SDK je možno užít a mírně modifikovat tento script

time ./zabbix_perl_api_vmware.pl 192.168.42.13 ahKaer5a root
0

real    0m27.655s
user    0m19.087s
sys    0m0.253s


Tento script do /tmp/vmware_api_IP.txt vytvoří soubor s informacema o běhu ESXi.

Array_0.Queue_Command_Latency.average:    0
Uptime:    2251653
Array_0.Disk_Write_Requests.summation:    2768
Array_0.Disk_Read_Requests.summation:    1872
CpuUsed:    800000000
MEM_consumed:    5467086848
Array_0.Physical_Device_Write_Latency.average:    0
vmnic1.duplex:    0
Array_0.Disk_Command_Latency.average:    3
MEM_shared:    337231872
vmnic1.state:    0
MEM_swapused:    0
Array_0.Disk_Commands_Issued.summation:    4641
Volume.Capacity_datastore1:    744371519488
MEM_heapfree:    8821760
MEM_overhead:    329478144
Array_0.Disk_Command_Aborts.summation:    0
vmnic0.Network_Packets_Received.summation:    926
MEM_unreserved:    7255425024
vmnic1.speed:    0
Array_0.Queue_Read_Latency.average:    0
Volume.Free_NFSDATA:    5556114989056
MEM_zero:    188387328
vmnic0.Network_Data_Receive_Rate.average:    65536
Array_0.Disk_Bus_Resets.summation:    0
Volume.Capacity_NFSDATA:    5902284800000
MEM_swapout:    0
MEM_vmmemctl:    0
MaintenanceMode:    0
MEM_sysUsage:    382578688
Array_0.Queue_Write_Latency.average:    0
MEM_reservedCapacity:    321536
Array_0.Disk_Read_Rate.average:    1150976
MEM_swapin:    0
MEM_usage:    6522880
Array_0.Kernel_Disk_Command_Latency.average:    0
Array_0.Disk_Write_Rate.average:    2843648
vmnic0.state:    1
Array_0.Physical_Device_Read_Latency.average:    7
Array_0.Kernel_Disk_Read_Latency.average:    0
Array_0.Disk_Read_Latency.average:    7
MEM_state:    0
MEM_granted:    5213470720
Volume.Free_datastore1:    158921129984
vmnic0.duplex:    1
Array_0.Disk_Write_Latency.average:    1
MemSize:    8582520832
Array_0.Physical_Device_Command_Latency.average:    3
vmnic0.speed:    1048576000
Array_0.Kernel_Disk_Write_Latency.average:    1
MemUsage:    5465178112
MEM_active:    647704576
MEM_sharedcommon:    132751360
CpuTotal:    11304000000
vmnic0.Network_Data_Transmit_Rate.average:    565248
vmnic0.Network_Packets_Transmitted.summation:    886

pátek 7. září 2012

SSHFS Linux a FreeBSD


Velmi pěkný na dané téma je článek na root.cz. Hnedle jsem zkoušel instalovat na Debian nebo Ubuntu.

Na FreeBSD je instalace obdobná, jen se musí zprovoznit FUSE jako modul do kernelu.

Debian/Ubuntu

apt-get install sshfs

FreeBSD (pro kompilaci modulu je třeba mít stažene /usr/src)

/usr/ports/sysutils/fusefs-sshfs && make install

Do systému se nám nainstaluje i port fusefs-kmod, který obsahuje fuse.ko.

kldload /usr/local/modules/fuse.ko
/usr/ports]# kldstat | grep fuse
 7    1 0xc8331000 e000     fuse.ko


a můžeme montovat vzdálený home.

sshfs user@server.domena.cz: /mnt/server_home


pondělí 3. září 2012

Printer Toner Level Service vs Zabbix

Pokud chceme monitorovat IT infrastrukturu, můžeme začít hnedle u praktické informace a tou je stav spotřebního materiálu v tiskárnách a tou je toner.

Mnoho tiskáren má výrobcem implementován protokol SNMP. Protokol existuje v několika verzích, ale pro tiskárny doporučuji používat SNMPv1.

Na stránkách Zabbix wiki je k dispozici template pro HP Color LaserJet, z něj jsem vycházel a patřičně si jej upravil na BW a Color verzi.

Po chvilce googlování jsem našel stránku popisující Printer Toner Level Service, kde jsou popsány potřebné OID pro získání informace o toneru. Nutné je, aby tiskárna pordporovala SNMP Printer-MIB (RFC1759). Zde jsou OID v pěkné přehledné tabulce.

Pro manuální kontrolu můžeme použít tyto příkazy (test device Canon iPF600):

SNMP index of the toner cartridge / prtMarkerSuppliesDescription
snmpwalk -Os -c public -v 1 192.168.42.13 .1.3.6.1.2.1.43.11.1.1.6
mib-2.43.11.1.1.6.1.1 = STRING: "CyanInkCartridge"
mib-2.43.11.1.1.6.1.2 = STRING: "MagentaInkCartridge"
mib-2.43.11.1.1.6.1.3 = STRING: "YellowInkCartridge"
mib-2.43.11.1.1.6.1.4 = STRING: "MattBlackInkCartridge"
mib-2.43.11.1.1.6.1.5 = STRING: "MattBlackInkCartridge"
mib-2.43.11.1.1.6.1.6 = STRING: "BlackInkCartridge"
mib-2.43.11.1.1.6.1.7 = STRING: "WasteInkTank"


The maximum capacity of toner cartridge.
snmpwalk -Os -c public -v 1 192.168.42.13 .1.3.6.1.2.1.43.11.1.1.8
mib-2.43.11.1.1.8.1.1 = INTEGER: 1300
mib-2.43.11.1.1.8.1.2 = INTEGER: 1300
mib-2.43.11.1.1.8.1.3 = INTEGER: 1300
mib-2.43.11.1.1.8.1.4 = INTEGER: 1300
mib-2.43.11.1.1.8.1.5 = INTEGER: 1300
mib-2.43.11.1.1.8.1.6 = INTEGER: 1300
mib-2.43.11.1.1.8.1.7 = INTEGER: 10000


The current level of the toner cartridge.
snmpwalk -Os -c public -v 1 192.168.42.13 .1.3.6.1.2.1.43.11.1.1.9
mib-2.43.11.1.1.9.1.1 = INTEGER: 1040
mib-2.43.11.1.1.9.1.2 = INTEGER: 1300
mib-2.43.11.1.1.9.1.3 = INTEGER: 520
mib-2.43.11.1.1.9.1.4 = INTEGER: 1300
mib-2.43.11.1.1.9.1.5 = INTEGER: 1040
mib-2.43.11.1.1.9.1.6 = INTEGER: 780
mib-2.43.11.1.1.9.1.7 = INTEGER: 2000


Pro obecný Zabbix Template je překážkou to, že si výrobci RFC1759 vykládají patrně jinak. A např. HP a Cannon maji na OID mib-2.43.11.1.1.6.1.1 jinou cartridge, konkrétně Cannon Cyan a HP Black.

Mé template jsou zde Template_Printer_Toner_BW.xml a Template_Printer_Toner_Colour.xml s tím že 100% funkční budou u HP tiskáren u jiných můžou být tonery zpřeházené. Mírnou úpravou si každý admin Zabbixu lehce upraví :-). Pro Testovací tiskárnu jsem si udělal extra template dle jména výrobce Template_Printer_Canon_Toner_Color.xml.

Pro trigger jsem užil jednoduchého vzorce (Level / Max Capacity) x 100 pro procentuální vyjádření úrovně spotřebování toneru.

neděle 2. září 2012

Zabbix Upgrade 1.8.13 to 2.0.2 on FreeBSD

Postupováno dle tohoto nándou.

http://www.zabbix.com/documentation/2.0/manual/installation/upgrade

1 Stop Zabbix server

/usr/local/etc/rc.d/zabbix_server stop

2 Back up the existing Zabbix database

mysqldump -u zabbix -p zabbix > zabbix-1.8.sql
gzip zabbix-1.8.sql


3 Back up configuration files, PHP files and Zabbix binaries

mkdir /tmp/backup
cp /usr/local/etc/zabbix/zabbix_server.conf ./
cp /usr/local/etc/zabbix/zabbix_agentd.conf ./
cp /usr/local/www/zabbix/conf/zabbix.conf.php ./
cp /usr/local/etc/php.ini ./


4 Install new server binaries

pkg_info | grep zabbix
zabbix-agent-1.8.13,2 Enterprise-class open source distributed monitoring (agent)
zabbix-frontend-1.8.13,2 Enterprise-class open source distributed monitoring (fronte
zabbix-server-1.8.13,2 Enterprise-class open source distributed monitoring (server

pkg_delete zabbix-*

cd /usr/ports/net-mgmt/zabbix2-agent && make install clean
cd /usr/ports/net-mgmt/zabbix2-server && make install clean

5 Review server configuration parameters

.

6 Upgrade the database

cd /usr/ports/net-mgmt/zabbix2-server/work/zabbix-2.0.2/upgrades/dbpatches/2.0/mysql

mysql -u zabbix -p zabbix < patch.sql


7 Install new Zabbix web interface

cd /usr/ports/net-mgmt/zabbix2-frondend && make install clean
+ missing dependece in port :-(
/usr/ports/devel/php5-gettext && make install clean
/usr/ports/textproc/php5-simplexml && make install clean


8 Start new Zabbix binaries

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

60274:20120903:104426.033 Zabbix Server stopped. Zabbix 1.8.13 (revision 27486).
 65378:20120903:122344.555 Starting Zabbix Server. Zabbix 2.0.2 (revision 29214).
 65378:20120903:122344.558 ****** Enabled features ******
 65378:20120903:122344.558 SNMP monitoring:           YES
 65378:20120903:122344.558 IPMI monitoring:           YES
 65378:20120903:122344.558 WEB monitoring:            YES
 65378:20120903:122344.558 Jabber notifications:      YES
 65378:20120903:122344.558 Ez Texting notifications:  YES
 65378:20120903:122344.558 ODBC:                       NO
 65378:20120903:122344.558 SSH2 support:              YES
 65378:20120903:122344.558 IPv6 support:              YES
 65378:20120903:122344.558 ******************************
 65378:20120903:122344.558 NodeID:                      1
 65378:20120903:122344.558 ******************************