How to check ssl certificate validity [Zabbix]

Ak potrebujem monitorovat ako dlho bude validny certifkat na https web mozem pouzit nasledovny bash skript.

#!/bin/bash
TIMEOUT=25
end_date="$(/usr/bin/timeout $TIMEOUT /usr/bin/openssl s_client -connect lb.streaming.sk:443 -servername lb.streaming.sk  -showcerts /dev/null | sed -n '/BEGIN CERTIFICATE/,/END CERT/p' | openssl x509 -enddate -noout 2>/dev/null | sed -e 's/^.*\=//')"


if [ -n "$end_date" ]
then
end_date_seconds=$(date "+%s" --date "$end_date")
now_seconds=$(date "+%s")
CALC=$((($end_date_seconds-$now_seconds)/24/3600))
echo $CALC
else
exit 124
fi

Domenovy zaznam lb.streaming.sk samozrejme nahradim vlastnym zaznamom. A mozem otestovat skript.

# ./lb.streaming.sk.sh 
12

A platnost si pre istotu overim aj cez webovy prehliadac.

Skript funguje spravne tak ho este nahodim do zabbixu. Vytvorim external check a ako key bude cesta k skriptu. Pre externy check s eternymi skriptami sa defaulnte pouziva adresar /usr/lib/zabbix/externalscripts. Sem ulozim skript a vytvorim zabbix item.

Zabbix: aggregated item

Agregovane itemy su vyborne ak potrebujeme vypocitat nejake hodnoty z viacerych serverov. V tomto priklade mam item pre pocet otvoreni streamu. Pouzivam dva straming servery na ktore je load balancovany traffic a preto som potreboval spocitat pocet pripojeni z jednotlivych serverov.Vytvorit item je jednoduche.

Ako typ itemu zvolime ‘zabbix aggregated’ a vlozine funkciu gropsum. Ako parameter bere key ‘host_group’ v korej sa nachadaju a spolocny ‘item’, ktory bude spocitavat. Pre vypocet pouzujem posledne hodnoty ‘last’

grpsum["STREAMING","wowza.stats.application[{$WOWZAHOST},{$WOWZAUSER},{$WOWZAPASS},ConnectionsCurrent,_defaultVHost_,pohoda_panorama1]",last]

Create Zabbix item using python API

from pyzabbix import ZabbixAPI, ZabbixAPIException
import sys

# The hostname at which the Zabbix web interface is available
ZABBIX_SERVER = 'http://192.168.200.2/zabbix'

zapi = ZabbixAPI(ZABBIX_SERVER)

# Login to the Zabbix API
zapi.login('Admin', 'zabbix')

host_name = 'monitoring.dubnik.local'

hosts = zapi.host.get(filter={"host": host_name}, selectInterfaces=["interfaceid"])
if hosts:
    host_id = hosts[0]["hostid"]
    print("Found host id {0}".format(host_id))

    try:
        item = zapi.item.create(
            hostid=host_id,
            name='Used disk space on $1 in %',
            key_='vfs.fs.size[/,pused]',
            type=0,
            value_type=3,
            interfaceid=hosts[0]["interfaces"][0]["interfaceid"],
            delay=30
        )
    except ZabbixAPIException as e:
        print(e)
        sys.exit()
    print("Added item with itemid {0} to host: {1}".format(item["itemids"][0], host_name))
else:
    print("No hosts found")

RedHat/CentOS monitoring security update with Zabbix

Kratky navod na to ako monitorovat security updaty na RH based systemoch ak pozivateme Zabbix.

Vytvorime novy UserParameter

#echo UserParameter=yum_security, if [ $(yum list updates --security | grep -i '^No packages' | wc -l) == 1 ]; then echo 0; else echo 1; fi

Importneme template
zabx_security_template

Monitor Dell HW raid status

Potreboval som monitorovat status hw raidu na Dell r720.Ked ze OPMI mi v tomto nepomohol musel som sa uchylit k SNMP a klasicky to nebola jednoducha uloha.Kazdopadne ak potrebujete monitorovat stav raidu tu je potrebny SNMP OID.

1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.4.1

Navratove hodnoty su nasledovne

  • 1 – unknowm
  • 2 – ok
  • 3 – failed
  • 4 – degraded

Teraz to uz jednoducho hodime do Zabbixu a nastavime potrebny trigger.