pátek 22. února 2013

PLCComS vs Zabbix

Pro společnost CeProgress jsem řešil instalaci programu PLCComS od splečnosti Teco a.s. PLCComS je to jednoduchá aplikace běžící pod Windows/Linux, která po TCP/IP komunikuje s PLC automatem řady Foxtrot pomocí protokolu EPSNET. Nadefinované proměnné přenese z PLC zařízení a dále je dokáže vypsat na portu 5010 pomocí telnetu a jednoduchého textového protokolu.

root@server:~$ telnet localhost 5010
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GETINFO:
GETINFO:VERSION,Ver 2.9 Aug 23 2012 14:09:38
GETINFO:VERSION_EPSNET,Ver 1.8 Aug 23 2012 13:22:47
GETINFO:VERSION_INI,Ver 3.2 Apr 24 2012 08:36:13
GETINFO:VERSION_PLC,CP1020K   B 2.7 7.4
GETINFO:IPADDR_PLC,192.168.5.60
GETINFO:PUBFILE,2/82 [FIXED_Foxtrot.pub,//Hlavni_m.pub]
GETINFO:NETWORK,1/10 [127.0.0.1]
GETINFO:

...
EN:TOPENI_STAVY_2NP[211].POZTEPLOTA
GET:TOPENI_STAVY_2NP[211].POZTEPLOTA
GET:TOPENI_STAVY_2NP[211].POZTEPLOTA,10.000000
 



Rozhodl jsem se hodnoty z čidel zaznamenávat do Zabbixu a patřičně dále data reportovat skrze grafy. Zabbix disponuje monitorovacím typem - Telnet agent, který, bohužel vyžaduje autentizaci. A bez ni se mi Item pro hodnotu nepovedlo nastavit. PLCComS autentizaci nemá implementovánu. Pro získání hodnot jsem si napsal jednoduchý Perl script, využívající modul Net::Telnet. Na server, kde běží aplikace se ze Zabbixu přihlašuji pomoci SSH agenta a pouštím perlový script, který Telnet modulem ziska patřičné hodnoty.

Bylo by dobré, kdyby společnost Teco a.s. tento svuj SW vylepšila o Telnet s autentizaci. A ještě lepší by bylo implementovat protokol SNMP a možnost mapovat proměnné přímo na hodnoty získatelné pomocí MIBu, ale to jsem moc náročnej.

Jako další úkol si zadávám pomocí Zabbix API a patřičné PHP knihovny vykreslit grafy na jiném web serveru serveru než kde běží Zabbix.

pondělí 11. února 2013

EDU MuDK

8.2.2013
 Server byl migrován z fyzického serveru do virtualizovaného v prostředí MUDK. Před migrací byl server v podstatě znovu instalován se všemi aktuálními aplikacemi. Data mailserveru byla přenesena z původního serveru. Virtuální prostředí bude prý pravidelně zálohováno. Další změnou je ukončení používáni Webmailu SquireelMail a jeho náhrada za Roundcube. SquirrelMail není momentálně podporován s php 5.4. Existuje nějaký patch, ale oficiální poslední release si s verzí php 5.4 nerozumí. Roundcube dospěl do stavu, kdy vypadá lepe i funkčněji, proto se na něj přešlo.

OpenFire

5.4.2009
Na mailový server byl nainstalován Jabber/XMPP server OpenFire, který je propojen s OpenLDAP adreářem. Uživatelé emailu mají stejné heslo i v jabberu. Je otázkou, jak moc budou Jabber učitelé používat.

21.11.2008
Po dlouhé době jsem zprovoznil emailový server pro školy, který je fyzicky umístěn na Městském úřadě ve Dvoře Králové nad Labem. Na tento server by se postupně měly přemístit ZŠ Schulzovy sady. Jestli budou následovat i ostatní školy, se teprve uvidí. Nový mail server přináší pár výhod, jako je Quota, dále pak centrální adresář LDAP, ve kterém jsou všichni uživatelé systému.

Více informací o serveru je sepsáno na stránce serveru:
http://edu.mudk.cz/edumail/

pondělí 4. února 2013

pfSense package Zabbix 2


Oblibená Firewall distribuce - FreeBSD / pfSense má nově možnost instalovat balíček Zabbix agent verze 1.8.x i 2.0.x formou pfSense balíčků.

Package Name    Category    Package Version
Zabbix-2 Agent  Services    zabbix2-agent-2.0.4 pkg v0.5

Nový aktuální balíček zabbix2-agent je příjemným rozšířením, které nám umožní podrobně monitorovat firewall s tímto systémem.

Verze zabbix 2 má mnoho rozšíření, hlavně je přínosný Low-level discovery, který umožňuje automatickou detekci fs, net devices a SNMP oid.
  • discovery of file systems;
  • discovery of network interfaces;
  • discovery of SNMP OIDs.

úterý 29. ledna 2013

OpenCMS 8.5.0 OpenJDK 7 FreeBSD 9.1


Ve FreeBSD jsem zaznamenal změny v portech využívajících Javu. Konkrétně jsem si všiml, že Serviio má v závislostech OpenJDK a dříve se používala hojně Java - port java/diablo-jdk16. Tento port je již označen DEPRECATED. Pamatuji se, že pro kompilaci OpenJDK bylo nutno mít právě Diablo-JDK16, to se změnilo. A tak jsem si instaloval port java/openjdk7.

Pro vyzkoušení OpenJDK jsem zvolil Servlet container Tomcat7 s APR - Tomcat native library.

tomcat-7.0.34 Open-source Java web server by Apache, 7.x branch
tomcat-native-1.1.24 Tomcat native library


Běh JVM jsem si sledoval v Zabbixu pomoci JMX. Definováno v rc.conf.

tomcat7_enable="YES"

tomcat7_java_opts="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=10053
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.awt.headless=true"


Dále jsem si vzpoměl na CMS, které je psané v Javě. Zajimavý seznam Java based CMS jsem našel zde. Řekl jsem si že vyzkouším instalaci OpenCMS. Popis instalace je velmi jednoduchý. Zkráceně pořtěbujeme Tomcat a MySQL. Popis instalace je dostatečně popsán zde. Z portů jsem si nainstaloval ještě.

mysql-server-5.5.29 Multithreaded SQL database (server)
apache22-2.2.23_4   Version 2.2.x of Apache web server with prefork MPM.
ap22-mod_jk-1.2.37_2 Apache2 JK module for connecting to Tomcat using AJP1X


Stáhnul jsem si zip file opencms_8.5.0.zip.


Archive: opencms_8.5.0.zip
extracting: opencms.war
extracting: history.txt
extracting: install.html
extracting: license.txt
extracting: OpenCms_Documentation_8.5.0_v1.pdf

Po deploy war souboru jsem již mohl pustit instalačni vizard, který celou instalaci dokončil.

Z webu OpenCMS jsem dohledal českou společnost NelaSoft, která tento CMS systém implementuje. Instalace je vcelku jednoduchá, ovšem použití tohoto systému vyžaduje patřičné znalosti. Apropo o daném systému jsem se prvně dozvěděl v FG. OpenCMS je použito u webu ČNB :-)

pondělí 28. ledna 2013

Plex


Je velmi zajimavý SW z kategorie multimedia pro TV, který má podporu i v Samsung Smart TV. Zkoučel jsem server instalovat na Ubuntu 10.04.1 desktop. Jedná se o aplikaci, psanou v jazyce Python.

www.plexapp.com

Stáhl jsem si Linuxovou verzi. Podporovány jsou distribuce Ubuntu, Fedora a CentOS.

plexmediaserver_0.9.7.11.386-d353989_i386.deb

Po spuštění aplikace bežela web aplikace na portu 32400. Existuje i aplikace pro Android.

http://localhost:32400/web/index.html

Idealni bude, když se časem daný SW objeví jako Plugin do FreeNAS :-)

Existuji takzvané NAS Appliances pro Synology, Qnap a další. Kdo koketuje s tím, jak TV plnit obsahem Plex je velmi povedený SW.

pátek 18. ledna 2013

FreeNAS vs NAS4Free


Již nějakou dobu doma provozuji FreeNAS 7, přesněji verzi 0.7. Tato verze vychází z projektu otevřeného firewalu m0n0wall. Nedávno jsem studoval podrobnosti o ZFS a na wiki A objevil jsem pro mě novou skutečnost, že FreeNAS 7 žije dál jako projekt NAS4Free.

V dokumentaci NAS4Free je podrobně popsána historie. Společnost iXsystems v roce 2011 legálně získala FreeNAS a celkově jej pozměnila a vydala celkově přepracovanou verzi FreeNAS 8, která je i dále k dispozici zdarma. S tím, že tato společnost nabízí hardware s komerční verzí TuneNAS, která spolu s jejich HW zaujímá své místo v Enterprice sféře.
NAS4Free tedy žije dál s tím, že tvůrci jej i nadále staví na posledních verzích FreeBSD. Tím se zajišťuje podpora nového HW atd. NAS je často spojován např. se steemováním audia a videa. NAS4Free má tyto aplikace přímo v sobě. u FreeNAS 8 je nutno zprovoznit Pluginy za pomocí Jailu.

Pluginy pro FreeNAS 8
Osobně v brzké době plánuji přejít na verzi FreeNAS 8.

pondělí 14. ledna 2013

Reset Windows hesla

Jedním z možných řešení jak resetovat heslo ve windows je použít Offline Windows Password & Registry Editor, Bootdisk / CD



http://pogostick.net/~pnh/ntpasswd/

Stačí stáhnout ~3MB - Bootable CD image a uvést na jakém disku se systém nachází.

Nokia Play 360°


O víkendu jsem zahlédl pěkný kousek HW z oblasti audio. Jedná se o reproduktor Nokia MD-50W (Nokia Play 360) BT. Ideální na cesty. Kdy modrou kostku spárujeme s mobilem nebo s notebookem pomoci Bluetooth 2.1. Daný kousek je ovšem poměrně drahý.

Měl jsem možnost jej otestovat s HTC Desire S a s notebookem kde je Ubuntu 12.04 LTS a vše fungovalo naprosto bezproblémově. Je podporováno spojit dvě kostky mezi sebou, čímž bychom měli získat stereo.

Spárované audio zažízení pomocí BT 2.1



sobota 22. prosince 2012

pfSense 2.0.2 Auto update


Vyšla nová verze oblíbeného firewalu pfSense. Dozvěděl jsem se to z pfSense Digest http://blog.pfsense.org/ Na oficiálních stránkách změna zatím neproběhla.


Aktualizoval jsem povětšinou z předchozí verze 2.0.1. Je doporučeno aktualizovat pomocí System / Firmware / Auto update. Aktualizace stáhne novou verzi sama, zaktualizuje se a proběhne restart. Po celou dobu bylo spojení funkční. Nastal jen krátký výpadek při rebootu. Zároveň se zaktualizovali i instalované balíčky.

Nová verze pfSense 2.0.2 je hlavně opravnou verzí.

pátek 14. prosince 2012

Zabbix repository - ZabbixZone

 Zabbix jakožto monitorovací systém je možné zprovoznit na všemožných verzích systémů. Ale ve většině případů budete muset kompilovat ze zdrojových kódů, což je plně funkční, ale méně komfortní pro dlouhodobý provoz.

Aktuální verzí Zabbixu je 2.0.4, která vyšla 8.12.2012. Mnoho distribucí má Zabbix ve svých oficiálních repositářích, ale bohužel nejsou moc aktuální.
  • Ubuntu 12.04 LTS - Zabbix 1.8.11
  • Ubuntu 10.04 LTS - Zabbix 1.8.1
  • Ubuntu 8.04 LTS - Zabbix 1.4.2
  • Ubunt 12.10 - Zabbix 2.0.2
  • Debian 6.0.6 - Zabbix 1.8.2
  • Fedora 17 - Repo EPEL
  • CentOS 6 - Repo EPEL
  • RedHat 6.3 - Repo EPEL
Řešením je aktuální Zabbix repository http://repo.zabbixzone.com/, který je dostupný pro distribuce CentOS 5, CentOS 6 and Debian 6 (Squeeze). Spravuje jej Kodai Terashima, který je zaměstnán společností Zabbix SIA. Aktuálnost repository jsem již několikrát prověřil. Existují zde balíčky pro agent, server, proxy, java-gatevay, ale také jen get a sender, které se též mohou hodit.

Operační systém FreeBSD má ve svých portech dokonce obě verze Zabbixu 1.8.x a 2.0.x

Mnou doporučené Operační systémy pro provoz monitorovacího systému Zabbix jsou:
  • CentOS + ZabbixZone
  • Debian + ZabbixZone
  • FreeBSD

Pevně veřím, že společnost RedHat začne vnímat Zabbix jako skutečný enterprice monitorovací systém. A začlení jej do oficiálních repositářů. Naději u mě podporuje fakt, že letošní Zabbix konferenci RedHat sponzoroval jako Gold sponzor.

sobota 8. prosince 2012

Squid3 with SNMP vs Zabbix 2.0


Na domácím testovacim serveru jsem si zprovoznil web proxy Squid verze 3. Chtěl jsem Squid nějak monitorovat. Existují v zásadě dva způsoby, jak na to.
 squid-3.2.3_2       HTTP Caching Proxy

Na wiki zabbix je popsán postup, jak monitorovat pomoci definovaných hodnot v zabbix agentu na serveru, kde Squid běží. Program squidclient, který je součástí Squida dokáže kontaktovat managera Squid, který předá potřebné informace o stavu cache.

Druhá možnost je Squid monitorovat pomocí SNMP. Squid v sobě integruje tuto funkcionalitu, která se musí nadefinovat v konfiguračním souboru. Ve FreeBSD jsem si Squid kompiloval z portů a SNMP je jedna z voleb, ktera musí být zakompilována.

[root@fbsd /var/db/ports/squid32]# make config && make install clean

# snmp config
acl snmp_host src 127.0.0.1
acl snmp_lmnet src 192.168.42.13/32
snmp_port 3401
acl snmppublic snmp_community public
snmp_access allow snmppublic
snmp_access allow snmp_host
snmp_access allow snmp_lmnet
snmp_access deny all


Vlastnosti použítí SNMP ve Squidu jsou podrobně popsány na Wiki projektu. Jsou zde pordobně popsány jednotlivé OID a podpora v jednotlivých verzích web proxy. Ve foru zabbix je ke stažení template zabbix_squid_smnp.xml. Import do Zabbix 2.0.x zobrazuje drobnou chybku, ale položky se vytvoří korektně. Mnou opětovně vyexportovaný template mám zde.

ukázka některých hodnot:
cd /usr/local/etc/squid

snmpwalk -m mib.txt -v2c -Cc -c public fbsd:3401 .1.3.6.1.4.1.3495.1.1
SQUID-MIB::cacheSysVMsize.0 = INTEGER: 71328
SQUID-MIB::cacheSysStorage.0 = INTEGER: 85036
SQUID-MIB::cacheUptime.0 = Timeticks: (16534677) 1 day, 21:55:46.77


snmpwalk -m mib.txt -v2c -Cc -c public fbsd:3401 .1.3.6.1.4.1.3495.1.2
SQUID-MIB::cacheAdmin.0 = STRING: webmaster
SQUID-MIB::cacheSoftware.0 = STRING: squid
SQUID-MIB::cacheVersionId.0 = STRING: "3.2.3"
SQUID-MIB::cacheLoggingFacility.0 = STRING: ALL,1
SQUID-MIB::cacheMemMaxSize.0 = INTEGER: 256
SQUID-MIB::cacheSwapMaxSize.0 = INTEGER: 100
SQUID-MIB::cacheSwapHighWM.0 = INTEGER: 95
SQUID-MIB::cacheSwapLowWM.0 = INTEGER: 90
SQUID-MIB::cacheUniqName.0 = STRING: fbsd


Do template asi jestě přidám nějaký graf, Počet příchozích a odchozích dat, počet aktuálně přihlášených klientů atd. Nasbíraných hodnot je celá řada.

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