pondělí 24. září 2012

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 ******************************