Zobrazují se příspěvky se štítkemZabbix. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemZabbix. Zobrazit všechny příspěvky

středa 13. listopadu 2024

Zabbix Events to Event-Driven Ansible (EDA vs ansible-rulebook)

Již delší dobu jsem si sem nic nepoznamenal. Ale přišla příležitost si vyzkouset Zabbix a integraci s Event-Driven Ansible webhook v podobě Media Type. Inspirací a podnětem pro mě byl článek na blogu Zabbix.

Nejprve jsem se zaměřil na zprovoznění a seznámení se s EDA serverem, který jsem si zprovoznil pomocí docker compose.

https://github.com/smejdil/zabbix-eda/tree/main/tools/docker

EDA je pěkné klikátko, které má smysl použít jen s AWX nebo RedHat AAP protože neumí použít inventory :-( Tento poznatek byl zklamáním.


 
Narazil jsem na tuto chybu :-(

Rulebook fails with "Playbook has an action run_playbook which needs inventory to be defined"

https://access.redhat.com/solutions/7024714

Root Cause You can only use the run_playbook with ansible-rulebook cli while also specifying inventory. If you want to use the integrated AAP / EDA interactions, you probably are looking for run_job_template which is defined on your AAP controller and created under the correct organization.

No a ještě potvrzení ... ohledně akce run_playbook

run_playbook (only supported with ansible-rulebook CLI)

A tak jsem se tedy vydal cestou ansible-rulebook a vytvořil si Docker kontainer pro vytvoření webhooku na portu 5001, který reaguje na událost akci v podobě ansible playbooku.

- name: Zabbix test rulebook
  hosts: all
  sources:
    - ansible.eda.webhook:
        host: "::"
        port: 5001
    - ansible.eda.webhook:
        host: "0.0.0.0"
        port: 5001
  rules:
    - name: Run playbook for Apache2
      condition: >-
        event.payload.host_groups is select("==","Private/LM.NET/Office") and
        event.payload.event_tags.target is select("==","apache")
      action:
        run_playbook:
          name: playbooks/check-apache.yaml
...




Webhooků s ansible-rulebook si můžu rozjet více v kontainerech pro jednotlivé pojekty a ze Zabbixu to můžu posílat na jednotlivé porty dle akce ktára reaguje třeba jen na tag target:eda, takže je to událostní kolečko snadno realizovatelné.

Je pracné nadefinovat pravidla v rulebooku a napsat opravné playbooky, ale přijde mi to rozumný ucelený rešeni postavené na Ansible, pro fixnutí nějakých služeb, které maji nějaké podivné vlastnosti (třeba i ve Windows) a je nutné je za jistych zjištených okolností fixnout 😊 restartem nebo jiným opatřením.

Pravý Zabbixák mi odpoví nemusíš mít přeci Událostní udělátko, stačí Zabbix Script a Akce co reaguje na Trigger 😊

za me to jisté řešení je

Konec hlášení ...

pátek 24. června 2022

Monitoring Kubernetes by Zabbix 6.0


Nedáno jsem se dostal k monitorování Kubernetes, logicky jsem použil Zabbix 6.0 LTS, protože tato verze již má podporu v podobě šablon pro K8S. Přístup jsem získal na tři servery odlehčeného MicroK8S nad Ubuntu server 22.04 LTS instalovaného jako snap. Servery byly přidány do clusteru.

Díky přístupu na servery jsem měl plnou možnost provést deploy pomocí Helm Chart za pomocí Zabbixem připraveného projektu kubernetes-helm.

Nutné je si individuálně upravit vytvořený konfigurační soubor. Kde jsem upravil tag kontejneru, dále pak adresu Zabbix serveru atd. Všechny proměnné jsou podrobně zdokumentovány. Tento příkaz pustíme např. v klonu projektu.

helm show values . > $HOME/zabbix_values.yaml

Dálé si již vytvoříme namespace a provedeme deploy za pomocí našeho předpisu Zabbix proxy a Zabbix agenta na jednotlivé node.

Pro konfiguraci v Zabbixu vytvoříme virtuálního hosta např. K8S a na něj nasadíme šablonu Kubernetes nodes by HTTP. Dále je nutné nastavit makra.

{$KUBE.API.ENDPOINT.URL} a {$KUBE.API.TOKEN}

Pokud nechceme monitorovat všechny namespace a pods je možné nastavit makra s patřičným regulárním výrazem, který omezíme monitoring jen na námi požadované namespace. Testované prostředí využívalo více jak 30 LLD.

Velmi mile mě překvapilo jak má Zabbix vše podrobně zdokumentováno. Pokud má někdo pocit že je pro něj instalace a konfigurace Prometeus moc složítá, může být monitoring pomocí Zabbixu výrazně jednodušší.

sobota 30. dubna 2022

Online streamování hry Valheim

Již nějakou dobu hrajeme s kamarádem a našemi dětmi za mě velmi povedenou hru Valheim. Provozujeme si vlastní dedikovany server. Streamer RoBe mě přivedl na myšlenku sdílet to naše hraní s dětmi online. Ve hře jedeme již druhý svět, takže jsme si již hodně odehráli. Možná máme i co ukázat. Osobně jsem si herní streamování chtěl již delší dobu vyzkoušet a získat nějaké nové zkušenosti.

Byl jsem nasměrován na aplikaci StreamLabs, která v sobě má OBS - Open Broadcaster Software. SteamLabs poskytne velmi širokou funkcionalitu, vcetně možností stáhnout již připravené scény. Ovládání je velmi jednoduché a smysluplné. Dále je přítomna plná podpora streamovací platformy Twitch.TV kam je možno snadno svá videa online přehrávat a po dobu 14ti dnů i ukládat.

Pro ten náš herní server jsem založil i Discord pro lepší komunikaci. Do kanálu se nám zaznamená informace od Bota ohledně přihlášení na server pomocí patřičného Webhooku. Vše si jak jinak monitoruji Zabbixem.

 

pondělí 28. února 2022

END of my story - Seznam.cz, a.s.

Dnešním dnem jsem ukončil mou působnost ve společnosti Seznam.cz, a.s. Bohužel nejsem dostatečně dobrý programátor v jazyce Python, což sem o sobě nikdy ani netvrdil. Osobně jsem si odnesl řadu nových poznatků a ničeho nelituji. Je hloupé, když absolvuji pohovor s někým, kdo ve finále nebyl muj team leader a ani s jedním jsem následně nespolupracoval. Uvědomil jsem si že nechci Zabbix jen školit, ale chci jej i aktivně používat a to se v Seznamu nikterak nepotkalo, byť prostor by tam byl, ale velikost spolešnosti mě uzavšela v jednom oddělení, pro které jem nebyl přínosem.

Bylo na čase se posunout dál a tak jsem po 10 měsících šel jinam. "Změna je život".

středa 23. února 2022

Nastaveni Mapy.cz v Zabbix 6.0 LTS widget Geomaps

Nový Zabbix 6.0 LTS přinesl rozšíření Dashboardu o widget Geomap. V globálním nastavení je možné si vybrat mapové podklady např. OpenStreetMap. Je možné nastavit i mapy.cz.

https://www.zabbix.com/documentation/6.0/en/manual/web_interface/frontend_sections/monitoring/dashboard/widgets/geomap

General > Geographical maps > 

Tile provider: Other

Tile URL: https://mapserver.mapy.cz/turist-m/{z}-{x}-{y}

Max zoom level: 18




čtvrtek 18. listopadu 2021

Zabbix 6.0.0alpha6 - HashiCorp Vault

Nová verze Zabbix 6.0 LTS disponuje novou fukcionalitu pro bezpečné ukládání tajemství např. hesla. Secrets se ukládaji do aplikace Vault od společnosti HashiCorp. Pro vyzkoušení jsem si nainstaloval Zabbix 6.0.0alpha6 a Vault jsem zprovoznil pomoci Docker.

git clone https://github.com/misterpki/docker-vault
cd docker-vault
docker-compose -f docker-compose.yml up -d 

Na http://192.168.42.7:8200 se můžeme přihlásit do web gui. Použijeme TOKEN, který je přednastaven v Dockeru. Tato instalace je vhodná jen pro testovaní nikoliv pro produkci, protože Vault neběží na SSL/TLS.

V dokumentaci Zabbixu je Storage of secrets podrobně popsáno. Dále je nutné provést úpravu konfiguračních souboru zabbix serveru a frontendu.

vi /etc/zabbix/zabbix_server.conf
VaultToken=vault-plaintext-root-token
VaultURL=http://192.168.42.7:8200

vi /etc/zabbix/web/zabbix.conf.php
$DB['VAULT_URL']        = 'http://192.168.42.7:8200';
$DB['VAULT_TOKEN']      = 'vault-plaintext-root-token';

Do Vault je třeba založit secret pro Zabbix a ten posléze nastavit v makrech Zabbix šablony nebo hosta. To je možné provést z cmd nebo z web gui Vault.

Pro ukázku jsem si vybrat dvě metriky, které využívají secret. Jedním je Item type SSH, kde se přihlásíme na server pomocí SSH a získáme datum. A druhý Item type Database, kde se pomocí nakonfigurovaného UnixODBC připojíme k databázi zabbix a zjistíme jeji velikost. Obě hesla nebudou uložena v databázi Zabbixu jako makra, ale hesla si stáhnou z HashiCorp Vault.

Vault po přihlášení

Nastavený secret zabbix

Historie změn

Odtajněný pohled na secret ve formátu JSON

Metrika SSH - date

Metrika DBSIZE - ODBC

Makro Vault na Hostu

Makro Vault v šabloně  
Zabbix Latest data dvou metrik

Pokud to s HashiCorp Vault myslíme vážně a provozujeme jej produkčně má smysl nastavit monitorování pomocí šablony HashiCorp Vault by HTTP.

pátek 12. listopadu 2021

Zabbix 6.0.0alpha6 - nový dashboard widgets #geomap

Očekávaný Zabbix 6.0 LTS je aktuálně ve verzi Zabbix 6.0.0alpha6. Velmi zajímavou novinkou je přidání nového widgets geomap do dashboard. Je k dispozici hned několik mapových poskytovatelů OpenStreetmap Mapnik nebo OpenTopoMap.

Podrobný popis nastavení je dostupný v dokumentaci.

Pár ukázek, jak mohou být mapové podklady využity z pohledu Zabbix monitorovacího systému.







sobota 30. října 2021

Zabbix server s PostgreSQL 14 a TimescaleDB 2.5

S oblibou používám OS FreeBSD a na něm provozuji Zabbix a to v konfiguraci s DB PostgreSQL s rozšířením TimescaleDB. TSDB vyšlo nedávno ve verzi 2.5.0 a tak jsem si napsal svůj velmi jednoduchý Ansible playbook, který zajistí instalaci statických pkg balíčků a provede nutnou kompilaci z portů u těch, u kterých je to třeba.

  • FreeBSD 13.0-RELEASE-p4
  • Zabbix  5.0.17
  • PostgreSQL 14.0_1
  • TimescaleDB 2.5.0

https://github.com/smejdil/freebsd-zabbix-server

Testováno v pomocí Vagrant a GCP ...

pátek 30. dubna 2021

END of my story - Datasys s.r.o.

Dnešním dnem jsem ukončil mou působnost ve společnosti Datasys s.r.o. Je tomu 9let, kdy jsem do této společnosti nastupoval. Těch bezmála deset let bylo plných mnoha zajímavých projektů. Po ELISA se mi bude stýskat. Věřím že bude dál žít svým dravým životem.

Do této společnosti mě zavedl Zabbix, po celou dobu jsem se mu věnoval a věřím, že se mu budu věnovat i nadále v různých podobách.

Již bylo na čase se posunout dál a udělat ve svém životě změnu. "Změna je život".

pátek 17. ledna 2020

Zabbix HA - s MariaDB s DRBD



 Již mnoho let jsem chtěl vyzkoušet DRBD pro synchronizaci raw device (/dev/sdb) na druhý server. Něco jako RAID-1 po síti. V době mého zájmu zájmu o DRBD bylo vše mnohem složitější a bylo nutno kompilovat modul do kernelu. To je dnes mnohem snažší. Za DRBD® stojí společnost , LINBIT®, která zajišťuje vývoj, placenou podporua zároveň DRBD pouzívá ve svých storrage technologiích a produktech.


Využití DRBD pro HA je hnedle několik. Já jej použiji pro synchronizaci disku na kterém běží MariaDB databáze, která je využívána pro monitorovací systém Zabbix.

Pro otestování jsem si vybral Linux Distribuci CentOS 7.7 do níž je přidán repository ELRepo.

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org --httpproxy=http://192.168.42.1:3128
yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm


yum repolist | grep ELRepo
elrepo                      ELRepo.org Community Enterprise Linux Repository


yum update
yum install -y kmod-drbd90 drbd90-utils

lsmod | grep -i drbd
modprobe drbd
echo drbd > /etc/modules-load.d/drbd.conf


tail -f /var/log/messages
Jan  7 08:26:36 zbx-02  kernel: drbd: initialized. Version: 9.0.20-1 (api:2/proto:86-115)
Jan  7 08:26:36 zbx-02  kernel: drbd: GIT-hash: 7dce3c8be99f4912f1490f9bb37f5aff6c873335 build by mockbuild@, 2019-10-17 20:27:56
Jan  7 08:26:36 zbx-02  kernel: drbd: registered as block device major 147


cat /proc/drbd
version: 9.0.20-1 (api:2/proto:86-115)
GIT-hash: 7dce3c8be99f4912f1490f9bb37f5aff6c873335 build by mockbuild@, 2019-10-17 20:27:56

Hlavní konfigurace DRBD se provádí zde:

vim /etc/drbd.d/global_common.conf
global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}


protocol A: Asynchronous replication protocol; it’s most often used in long distance replication scenarios.
protocol B: Semi-synchronous replication protocol aka Memory synchronous protocol.
protocol C: commonly used for nodes in short distanced networks; it’s by far, the most commonly used replication protocol in DRBD setups.

Zdroje DRBD se defunuji naříklad takto:

vim /etc/drbd.d/mariadb_data.res

resource zbxdb {
        on zbx-01 {
         device /dev/drbd0;
               disk /dev/sdb;
            meta-disk internal;   
                address 192.168.42.10:7789;
        }
        on zbx-02 {
        device /dev/drbd0;
            disk /dev/sdb;
            meta-disk internal;
                address 192.168.42.20:7789;
        }
}


Vytvoření zdroje:

drbdadm create-md zbxdb
initializing activity log
initializing bitmap (160 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.



Nahození synchronizace:

drbdadm up zbxdb


Nastavení primátního sync media:

[root@zbx-01 ~]# drbdadm primary --force zbxdb

Status synchronizace zjistíme takto:

[root@zbx-01 ~]# drbdadm status zbxdb
zbxdb role:Primary
  disk:UpToDate
  zbx-02 role:Secondary
    peer-disk:UpToDate

[root@zbx-02 ~]# drbdadm status zbxdb
zbxdb role:Secondary
  disk:UpToDate
  zbx-01 role:Primary
    peer-disk:UpToDate


Vytvoříme mount point a naformatujeme disk např. pomocí xfs.

mkdir -p /data/mariadb
mkfs.xfs /dev/drbd0
mount -t xfs -o noatime,nodiratime,attr2 /dev/drbd0 /data/mariadb

Veškeré HA služby svěřím aplikacím Corosync a Pacemaker z projektu ClusterLabs. Společnost LINBIT přispívá do projektu Pacemaker a tím zajišťuje podporu pro správné volání drbadm. Nadefinováním zdroju clusteru docilim toho, že Zabbix server beží jen na jednim nodu a zároveň i databáze jejíz data (disk) se synchroniyuje na druhý node.


Tato testovací instalace bude v budoucnosti reinstalována na CentOS 8 se Zabbix 4.4, protože novější Zabbix umí monitorovat raw device a to v tomto případě je velmi zajímavé, protože na node2 pokud není /dev/drbd0 namontován o disku nic nevime.

Monitoring Clusteru se dá snadno realizovat z těchto zdrojů.

https://share.zabbix.com/cat-server-hardware/other/template-drbd
https://github.com/VadimIpatov/zbx_pacemaker
https://github.com/cnshawncao/zabbix-module-mysql

Dále je se třeba zaměřit na performace a patřičně upravit a vylepšit konfiguraci DRBD.

https://docs.linbit.com/docs/users-guide-9.0/#p-performance

středa 18. září 2019

Integrace WSUS a Zabbix

Do windows moc neděkám, ale občas je nutné něco ze světa Window$ propojit se Zabbixem. WSUS je takova užitečná služba, která šetří linku a hlavně zajišťuje instalaci aktualizací a těch není nikdy dost.

Pro integraci Zabbix a WSUS jsem našel dva prjekty a tento https://github.com/zbx-sadman/WSUS mi příjde zajimavý a snadno nasaditelný. Používá PowerShell script, který na straně WSUS serveru zjistí poměrně mnoho informací o stavu aktualizací. Pomoci LLD rozkreje WSUS Computer Groups.

Veškerou funkcionalitu pokrývá jeden klíč a tím je wsus.miner[]

Správná funkce se dá snadno prověřit pomocí cmd utilitky zabbix_get.

Např. verze WSUS

zabbix_get -s 192.168.42.13 -k wsus.miner[Get,Info,FullVersion]
10.0.17763.678



nebo LLD Computer Group

zabbix_get -s 192.168.42.13 -k wsus.miner[Discovery,ComputerGroup]
{
 "data":[
        { "{#NAME}": "All Computers", "{#ID}": "xxx-xxx-xxx-xxx-xxx" },
        { "{#NAME}": "Servers", "{#ID}": "
xxx-xxx-xxx-xxx-xxx" },
        { "{#NAME}": "Station", "{#ID}": "
xxx-xxx-xxx-xxx-xxx" },
        { "{#NAME}": "Test", "{#ID}": "
xxx-xxx-xxx-xxx-xxx" },
        { "{#NAME}": "Unassigned Computers", "{#ID}": "
xxx-xxx-xxx-xxx-xxx" }
    ]
}


Objevené hodnoty v grafech je možní nasázet do Dashboardů.

ZabbixDashboard WSUS

pátek 3. května 2019

Monitoring IPSec tunelů na pfSense

Již řadu let používám pfSense spolu s několika IPSec tunely. Monitorování tunelů jsem dlouho zanedbával. Dnes jsem našel řesení přímo odladěné pro pfSense, takže nasazení je rychle a snadné. Stačí doinstalovat package sudo, umístit scripty a do zabbix agenta nastavit uživatelské klíče.

https://github.com/alanwds/zabbix_ipsec_pfsense

https://github.com/fralvarezcalvo/zabbix_ipsec_pfsense

( Opravena podpora Python 3.2 ) 

Tento projekt vychází z jiného a přidává právě postup zprovoznění na pfSense. Pomocí LLD se automaticky objeví nakonfigurované tunely.

( Upravena podpora pro pfSense 2.5.0 s podpora Python 3.7 )

https://github.com/smejdil/zabbix_ipsec_pfsense

Zabbix Latest data - IPSec

čtvrtek 2. března 2017

Jak monitorovat Docker Zabbixem


 V poslední době se pracově intenzívně zabývám projektem Docker. V práci mám aktuálně instalovaných 6 serverů s docker-engine. Dva na seznamovaní a čtyři jsou aktuálně nachystané pro jeden větší projekt.

V rámci instalace serveru s CentOS 7.3 pomocí Kickstart se provádí post-install kroky jako přidáni repo docker a nastavení proxy.

yum install -y yum-utils
yum-config-manager --add-repo https://docs.docker.com/engine/installation/linux/repo_files/centos/docker.repo
 

systemctl enable docker.service

vi /etc/yum.conf
proxy=http://192.168.10.42:8080
 

mkdir -p /etc/systemd/system/docker.service.d/
vi /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.10.42:3128/"


Když máme funkční Docker prostředí, přichází logicky na řadu monitoring :-) Existuje celá řada různých Zabbix šablon viz např. tento seznam. Já si vybral takovou velmi pěkně propracovanou a hlavně rychlou. Na konferenci Zabbix jsem poznal monitoringartist přesněji řečeno Jan Garaj se kterým jsem byl již v minulosti v kontaktu ohledně Zabbix překladů.

Jeho řešení monitorování Dockeru je zajímavé tím, že využívá zabbix agent modul. Moduly Zabbix zavedl od verze 2.2. Jedná se o možnost doplnit funkcionalitu zabbix agenta o vlastni klíče. Běžně se tato funkcionalita provádí skrze UserParameter, kde si definujeme klíč a k němu script, který získá požadovanou hodnotu. Ale toto je velmi pomalé a neefektivní. Pokud použijeme agent modul, který je psaný v jazyce C, je rychlost získání hodnot až 10x vyžší.

Na GitHubu je velmi podrobný postup, jak si modul zkompilovat. Honza má i předkompilované verze pro Zabbix 3.0 a 3.2 a to pro mnoho různých Linux distribucí.

Já šel cestou vlastní kompilace. Modul jsem si zkompiloval pro Zabbix 3.0:

yum install -y wget autoconf automake gcc svn

svn export svn://svn.zabbix.com/branches/3.0 zabbix
cd zabbix
./bootstrap.sh
./configure --enable-agent
mkdir src/modules/zabbix_module_docker
cd src/modules/zabbix_module_docker
wget https://raw.githubusercontent.com/monitoringartist/zabbix-docker-monitoring/master/src/modules/zabbix_module_docker/zabbix_module_docker.c
wget https://raw.githubusercontent.com/monitoringartist/zabbix-docker-monitoring/master/src/modules/zabbix_module_docker/Makefile
make
gcc -fPIC -shared -o zabbix_module_docker.so zabbix_module_docker.c -I../../../include -I../../../src/libs/zbxsysinfo
cp zabbix_module_docker.so /usr/local/lib/ 


Dále je potřeba umožnit Zabbixu číst Docker socket. Můžeme upravit konfiguraci Zabbix agenta a udělit oprávnění roota nebo přidat zabbix do skupiny docker. Zabbix agent může ziskat vyšši opravnění v podobě AllowRoot=1.

usermod -aG docker zabbix

nebo
 
vi /etc/zabbix/zabbix_agentd.conf
...
AllowRoot=1 

...
LoadModulePath=/usr/local/lib
LoadModule=zabbix_module_docker.so

 
Po restartu agenta se v logu objěví uspěšné nahrání modulu.

systemctl restart zabbix-agent.service

tail -f /var/log/zabbix/zabbix_agentd.log
...
51284:20170301:132041.853 loaded modules: zabbix_module_docker.so


Tento postup je pro toho kdo má svůj Zabbix server, který neběží v Dockeru. Dá se využít Honzova uceleného řešení Zabbix XXL, které logicky má již vše nastavené monitorování Dockeru.

Velké díky Honzovi za jeho zabbix modul zabbix_module_docker.c

pondělí 25. dubna 2016

Postfix - relayhost SMTP AUTH


Monitorovaci system Zabbix užívá k notofikacím media Email nebo např. Jabber. Konfigurace SMTP serveru v Zabbixu neumožňuje nastavit SMTP server s autentizací.

Elegantním řešením je na Zabbix server nainstalovat Postfix, který poběží jen na localhost a nakonfigurovat jej tak, aby autentizovaně komunikoval s nadefinovaným SMTP serverm.

# configuration to relay to SMTP server using AUTH
relayhost = smtp.domena.cz
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtp_sasl_auth_enable = yes
#create db file using 'postmap hash:/etc/postfix/sasl_passwd'
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_tls_security_level = may


Soubor sasl_passwd vypadá následovně

smtp.domena.cz     username:password

Poté soubor musíme pro postfix vyrobit patřifnou tabulku

postmap hash:/etc/postfix/sasl_passwd

Tento příkaz vyrobí soubor

sasl_passwd.db

Ještě kontrola souboru pomoci file :-)

file sasl_passwd*
sasl_passwd:    ASCII text
sasl_passwd.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)

UPDATE:20160425
Dnes jsem řešil Postfix, který měl nastaven relayhost na Exchcange 2007, který ovšem nedisponoval AUTH LOGIN ale jen AUTL NTLM. Realizováno na CentOS 7. Je nutné doinstalovat NTLM podporu pro SASL.

rpm -qa | egrep 'sasl|ntlm|postfix'
cyrus-sasl-lib-2.1.26-20.el7_2.x86_64
libntlm-1.3-6.el7.x86_64
cyrus-sasl-2.1.26-20.el7_2.x86_64
cyrus-sasl-ntlm-2.1.26-20.el7_2.x86_64
postfix-2.10.1-6.el7.x86_64


Test pruchodnosti emailu.

telnet localhost 25
EHLO domena.cz
mail from:
rcpt to: data
From: zabbix@domena.cz
Subject: test mail from command line

this is test number 1
sent from linux box
.


Ve verzi Zabbix 3.0 je možno nastavovat SMTP i s autentizací a Postfix již není třeba.
 

úterý 22. března 2016

Raspberry Pi 1 Model B on FreeBSD


Na seznámení se s Raspberry mám doma již delší dobu půjčený model Raspberry Pi 1 Model B. Seznamování bylo hlavně s fungováním NOOBS, pomocí kterého jsem si instaloval Raspbian a pak ještě OpenELEC. Nakonec jsem se rozhodl testovat na tomto postarším kousku mé oblíbené FreeBSD, které by též mohlo být přítomno v NOOBS pro snadné instalování.

Podpora HW FreeBSD je u RPi 1 dostatešná. Nefunguje jen kamera a SMP. Vzhledem k jednomu jádru CPU se není žemu divit. RPi 2 je již plně funkční.

Existuje projekt raspbsd.org, který si klade za cíl vytvářet image pro aktuální vyvýjené FreeBSD 11 CURRENT. K dispozici jsou image pro RPi 1 A a B tak i pro RB 2. Image pro RPi 3 se objeví asi časem. Bude záležet na tom, zda existuje požadovaný driver pro WiFi.

Od jisté doby se v adresáři FTP objevují image pro RB-B a další mini arm-armv6 počítače stejného ražení.
Osobně nestíhám sledovat jaké další HW variace vznikají.

Instalace oficiální FreeBSD image je velmi jednoduchá a je popsána zde. Stáhl jsem si strom portů a nechal ve screenu zkompilovat Apache 2.4.18 a PHP 7.0.4. Jednojádrový armv6 se patřičně zapojitl, ale zvládl to naprosto v pohodě. Jak jinak u mě, rpi-b mám doma monitorované Zabbixem skrze Zabbix proxy v pfSense, takže sleduji na grafech jak dlouho se CPU trápilo.

pkg info | grep php
mod_php70-7.0.4                PHP Scripting Language
php70-7.0.4                    PHP Scripting Language


file /usr/local/bin/php
/usr/local/bin/php: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 10.2, not stripped


Jsem si vědom, že Raspbian nebo Pidora jsou nejpoužívanější OS pro RPi, ale je tu i možnost nasadit FreeBSD a využít jeho kvalit.

Pořídil jsem si RPi, kde mám aktuálně Rasbian a UniFi Controller instalován jako zip. Plánuji přeinstalovat na FreeBSD s využitím portu unifi4. Nejbolestnější bude kompilace jdk, ale s tím si RPi 2 nebo 3 hravě poradi.

Mé plány jsou zatím uledu :-(

===>   unifi4-4.8.14 depends on package: mongodb>0 - not found
===>  mongodb-2.6.7 is only for i386 amd64, while you are running armv6
(reason: "not yet ported to anything other than i386 and amd64").
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/databases/mongodb
*** Error code 1

úterý 27. října 2015

Zabbix Search::Elasticsearch

Pokud chceme monitorovat pomocí Zabbixu Elasticsearch server, tak se nám bude hodit Perl modul Search::Elasticsearch

Sice se na stránkách elastic o modulu píše, ale součásti repository pro CentOS modul neni.
https://www.elastic.co/guide/en/elasticsearch/client/perl-api/current/index.html



Po nějaké době hledání jsem našel repository OpenFusion, ale ten obsahuje jen starší verzi perl modulu.

Nezbude nam na CentOS 6 než použít cmanm

yum install perl-devel
yum install perl-CPAN

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

/usr/local/bin/cpanm Search::Elasticsearch

find / -name Elasticsearch.pm
/usr/local/share/perl5/Search/Elasticsearch.pm


Např. ve FreeBSD je to s Perl mudulama mnohem lepší.

p5-Search-Elasticsearch-1.20_1 ElasticSearch API

čtvrtek 26. února 2015

JasperReports a plugin ElasticJasperServer


V práci jsem seznamoval s produkty Jasper Reports od společnosti Jaspersoft, která je vlastněná společností TIBCO Software.  Hlavním důvodem je generování reportů např. v PDF získaných z ElasticSearch nebo Zabbix.

Nejprve jsem instaloval JasperReports Server, což je Java aplikace běžící pod Apache Tomcat. Defaultní instalace využívá databázi PostgreSQL, ale můj požadavek byl JR Server provozovat s MySQL. Volil jsem tedy instalaci WAR využívající js-install script. Stáhnul jsem si tedy jasperreports-server-cp-5.6.1-bin.zip. Volil jsem starší verzi, protože mým cílem bylo zprovoznit rozšíření od Wedjja - https://github.com/WedjaaOpen. Které umožňuje JR Serveru komunikovat a dotazovat se pomoci JSON ElasticSearch. Aktualní verze ElasticJasperServer nepodporuje poslední verzi JR Serveru 6.x. Projekt je velmi dobře dokumentován, proto instalace JR Serveru i pluginu ElasticJasperServer není nikterak složitá.

Pro vytvoření samotných reportů se používá aplikace JasperReports Studio, která je postavena na základech vývojového prostředí Eclipse. JR Studio a JR Server spolu komunikují a vytvořené reporty je možno snadno publikovat na serveru, kde se patřičný report nechá vykonávat pravidelně a může zasílat výsledné reporty emailem nebo je uploadovat na FTP server.

JR Studio se též neobejde bez pluginu do ElasticSearch. Je třeba doinstalovat ElasticJasper. Podrobný popis jak na to je pěkně popsán na blogu Wedjja.

Samotná tvorba reportů JRXML není úplně jednoduchou disciplínou, ale výsledky mohou být velmi zajímavé.

JasperReports je v Java světě zjevně hodně znám. Čistě náhodou jsem si všiml, že účetnictví FlexiBee používá pro tisk právě JasperReports Library.

pátek 13. února 2015

Zabbix Community Repos

Tento odkaz jsem již několikrát hledal, narazil jsem na něj na LinkedIN.

https://github.com/zabbix/zabbix-community-repos

Obsahuje odkazy na mnohe Zabbix repository šablon a scriptů.

pondělí 11. srpna 2014

Zabbix certifikace v Praze


Na termín 22. - 26. 9. 2014 jsou naplánovány certifikace na monitorovací systém Zabbix. Certifikace organizuje Zabbix SIA pod záštitou českého certifikovaného partnera společnosti Datasys s.r.o.

Dostupné tréningové kurzy:

Podrobnosti o programu certifikáci jsou zde. Dále je k dispozici podrobná brožura.

středa 4. června 2014

Zabbix Dynamic PDF Report Generation

Hledal jsem nějaký nástroj, jak ze Zabbixu získat grafy do externího webu, případně jak grafy dostat do nějakého PDF reportu. Na fóru je jedno vlákno  věnované tomuto tématu. Tento nástroj existuje již od verze Zabbix 1.8 a tudíž byl několikrát upravován. Jak to funguje?

Pomocí Zabbix PHP API -  ZabbixAPI.class.php se připojíme k Zabbix serveru a získáme seznam hostů nebo seznam skupin. Pak se pomocí PHP funkcí CURL dotážeme na grafy patřičného hosta. Grafy uložíme do tmp_images a pak přijde na řadu class.pdf.php - PHP Pdf creation - R&OS. Tato knihovna vyplivne PDF soubor obsahujici grafy vybraného hosta v uceleném reportu, ukázka zde.

Na fóru je mnoho příspěvků  a po nějaké době autor založil projekt na GitHub.

Pro fungování tohoto nástroje je třeba mít instalovanou podporu php-json a php-curl.

Osobně jsem se zapotil při hledání problému, kdy se mi vytvořené PNG soubory generovaly, ale byl v nich jen html kód s hláškou, že nejsme autentizováni. Problém byl v rozdílnosti verzí Zabbix 1.8 a Zabbix 2.2.

name=Admin&password=zabbix&enter=Enter

zamenen za
 

name=Admin&password=zabbix&enter=Sign in

Tyto proměnné se nastavuji v konfiguračním souboru.

Pokud tento nástroj nainstalujeme na Zabbix server, je nutno si uvědomit, že tím vzniká bezpečnostní riziko, získání informací o monitorovaných systémech. Např. adresář ./report nepodléhá autentizaci a je třeba to ošetřit např. na úrovní webserveru apache direktiv, kde povolime report jen ze zmíněné IP adresy a nebo zahesluje pomoci zase apache.