• Und wer ist…?
  • Holiday Berichte
    • Urlaub Schottland 2013
    • Urlaub Griechenland 2013
  • Services
  • Kontakt/GnuPG

KOKOLOR.ES

Hier geht's einfach mal um alles und nichts!

zabbix

Installieren von zabbix 3.0 unter Ubuntu 16.04 mit PostgreSQL

26. Juli 2016 by Sebastian 2 Comments

Vor ein paar Tagen habe ich Zabbix 3.0 unter Ubuntu 16.04 installiert. Da ich mich mal ein bisschen mit PostgreSQL auseinander setzen möchte, habe ich mich dazu entschieden diese als Datenbank einzusetzen.

Installation

Als erstes lädt man das entsprechende Release Paket von Zabbix herrunter:

wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+xenial_all.deb

welches man anschließend installiert

dpkg -i zabbix-release_3.0-1+xenial_all.deb

Damit wurde nun das entsprechende Repo hinzugefügt und man kann zabbix installieren

apt update
apt install zabbix-server-pgsql zabbix-frontend-php zabbix-agent libapache2-mod-php7.0 php-bcmath php-mbstring php7.0-xml snmp-mibs-downloader

Datenbank anlegen

Als erstes ändert man mal das admin Passwort. Dazu verbindet man sich als erstes mit der Datenbank:

sudo -u postgres psql

Das Passwort ändert man wie folgt

\password

Zweimal neues Passwort eingeben und fertig. Nun legt man eine neue Datenbank und einen neuen User an und geben diesem alle Rechte auf dieser:

sudo -u postgres psql
CREATE DATABASE zabbix WITH ENCODING='UTF-8';
CREATE USER zabbix WITH PASSWORD '$password';
GRANT ALL ON DATABASE zabbix TO zabbix;

Nun füllen wir noch die Datenbank mit Inhalt. Dazu gibt es die Datei create.sql.gz, unter /usr/share/doc/zabbix-server-pgsql/.

zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -u postgres psql zabbix -h 127.0.0.1 -d zabbix

PostgreSQL Konfigurationen ändern

Wenn man nur lokal auf die Datenbank zugreift, kann man das hier überspringen. Ich wollte aber gern per pgadmin3 auf diese zugreifen.
Per default lauscht die Datenbank nur auf localhost, also 127.0.0.1. Um das zu ändern, ändert man folgendes in der Datei /etc/postgresql/9.5/main/postgresql.conf

# listen_addresses = '127.0.0.1'

nach

listen_addresses = '*'

Nun muss noch die Konfiguration bearbeitet werden, welche die Authentifizierung regelt /etc/postgresql/9.5/main/pghba.conf. Darin added man folgende Zeile:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host       all                       all                  all                             md5

Das geht natürlich noch schöner und vor allem restriktiver, was für meine Testinstallation jetzt nicht von nöten war.
Anschließend noch den Dienst neu starten und danach sollte man mit pgadmin3 auf die Datenbank zugreifen können

systemctl restart postgresql

Zabbix Server in Betrieb nehmen

Damit der Dienst läuft mussten noch die Zugangsdaten zur Datenbank in die /etc/zabbix/zabbix_server.conf eingetragen werden:

DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=$password

Anschließend kann man den Dienst aktivieren und starten:

systemctl enable zabbix-server
systemctl enable zabbix-agent
systemctl start zabbix-server
systemctl start zabbix-agent

Frontend konfigurieren

Hier muss in der Datei /etc/apache2/conf-enabled/zabbix.conf folgende Zeile angepasst werden

nach

Anschließend muss der apache2 einmal neu gestartet werden

systemctl restart apache2

Das war es dann auch. Nun kann das Frontend über den Browser http://$ip/zabbix aufgerufen werden und die Installation abgeschlossen werden.
Was mich bei dieser Installation gewundert hat, war, das ich mich nicht daran erinnere bei älteren Zabbix Installationen so einen „Konfigurationsaufwand“ gehabt zu haben. Zum einen die Pakete, die man noch manuell installieren muss, welche, meine ich, früher bereits in den Dependencies enthalten waren und zum anderen die IfModule Zeile in der apache2 Konfiguration, welche noch php5 beinhaltet. Ich mein es ist ja nun bekannt das php7 in Xenial Einzug gehalten hat. Aber alles in allem verkraftbar.

Update

Hier gibts das ganze noch als Script: Gist Danke an Alexey für den Hinweis in den Kommentaren.

Posted in: Arbeit, IT, Linux, Monitoring, Opensource Tagged: linux, postgres, ubuntu, xenial, zabbix

zabbix-check-mdadm2: mdadm Monitoring für Zabbix

5. Februar 2016 by Sebastian Leave a Comment

Ich habe die Tage mal mein altes mdadm Skript angeschaut, was so mein erster Bash Skript Gehversuch war, und gedacht das ich das mal schöner machen kann. In der Vergangenheit hat auch Christoph bereits ein Check dafür geschrieben, welcher recht simpel gehalten ist und auch ohne root Rechte auskommt. Deshalb hat meines auch die 2 hinten dran hängen.

Das Skript habe ich diesmal in Python geschrieben um ein bisschen zu üben. Es liest einmal /proc/mdstat oder den State von mdadm –detail aus. Für zweiteres sind auch die Root Rechte von nöten. Da hier mehrer States gleichzeitig angezeigt werden können, geb ich nur den schlimmsten aus. Steht also bei

State : clean, recovering

wird recovering ausgegeben.
Aufgerufen werden kann es wie folgt:

zabbix_check_mdadm2_get.py md0 mdstat
zabbix_check_mdadm2_get.py md0 state

Außerdem habe ich daraus wieder ein Paket gebaut, welches dann demnächst wieder in Christoph’s Repository zu finden sein wird. In diesem ist auch ein entsprechendes Discovery Skript enthalten, welches nach md Devices sucht und diese im JSON Format ausgibt, damit das Zabbix Frontend daraus die Items generieren kann. Das Template liegt wie immer unter share/doc im Paket.

Sourcecode: Github
Repository: repository.chr.istoph.de

Posted in: IT, Linux, Monitoring, Opensource Tagged: linux, mdadm, monitoring, python, zabbix

zabbix-check-ksm: Kernel Samepage Merging

14. September 2015 by Sebastian Leave a Comment

Kernel Samepage Merging (KSM) erlaubt eine Deduplizierung des Memory unter Linux und wurde mit der Kernel Version 2.6.32 eingeführt. KSM versucht gleiche Memory Pages zu erkennen und diese zusammenzuführen um den doppelt belegten Memory freizugeben. Ursprünglich für Virtualisierung vorgesehen kann es nun auch von allen Programmen genutzt werden, die viele Instanzen mit gleichen Daten erzeugen.
Die Werte dazu kann man schön unter /sys/kernel/mm/ksm/ abfragen und in Zabbix integrieren. Bei Hostsystemen mit vielen Gästen ist es sicher interessant sich das mal in Form von Graphen im Frontend anzuschauen. Die Werte sind die folgenden:

pages_to_scan Zu scannende Shared pages
sleep_millisecs Zeit bis zum nächsten Scan
run 0 = stop ksmd, 1 = start/running ksmd, 2 = stop ksmd und unmerge
pages_shared how many shared pages are being used
pages_sharing how many more sites are sharing them i.e. how much saved
pages_unshared how many pages unique but repeatedly checked for merging
pages_volatile how many pages changing too fast to be placed in a tree
full_scans how many times all mergeable areas have been scanned

Dazu hab ich kleines Paket gebaut, was im Grund eigentlich nur aus einem Einzeiler besteht. Zu finden unter:

Sourcecode: Github
Repository: repository.chr.istoph.de

Posted in: IT, Linux, Monitoring, Opensource Tagged: linux, monitoring, package, zabbix

zabbix-check-smart: S.M.A.R.T. HDD Monitoring mit Zabbix

28. Mai 2015 by Sebastian 4 Comments

Ich setze schon seit vielen Jahren beruflich sowie privat beim Überwachen von Servern auf Zabbix. In diesem Zusammenhang musste ich mich auch das erste mal richtig mit Bash beschäftigen um diverse Skripts zu schreiben, die Dinge überwachen die Zabbix von Haus aus nicht mitbringt. Da es bei einer größeren Infrastruktur allerdings nervigen werden kann, sowas immer von Hand auf die Server zu legen, habe ich mich irgendwann entschieden Pakete daraus zu bauen. Die Skripts, bzw. Pakete, die auch allen anderen von nutzen sein können, werden ich und mein ehemaliger Kollege Christoph auch öffentlich in einem Repository zur Verfügung stellen. Da wir beide meist auch noch ältere Server, mit älteren Debian oder Ubuntu Versionen verwalten, sind die meisten Skripts auch darauf nutzbar. Wenn ihr Bugs bemerkt oder Fragen habt, kontaktiert einfach denjenigen von uns, welcher das Pakete erstellt hat. Die XML Templates zum importieren ins Frontend liegen dabei immer unter /usr/share/doc/{package_name}/

So nun zum eigentlichen Teil, dem Paket um S.M.A.R.T. Werte (RAW und VALUE) eines Servers auszulesen und diese in Zabbix darstellen zu lassen. Geschrieben habe ich es in Python, mit ein paar Hilfestellungen eines Kollegen, da dies so zu sagen meine ersten Gehversuche in Python sind. Bestehen tut das ganze aus zwei Skripten, einem Discovery Skript, welches die verbauten Platten für die Discovery Rule im Frontend erfasst und dem Skript welches der Agent aufruft und die Werte abzufragen.
Installieren könnt ihr das Paket, nachdem ihr das Repository hinzugefügt habt, via:

apt-get install zabbix-check-smart

Bei der Installation wird direkt geschaut ob SMART auch auf den Platten aktiviert ist, wenn nicht wird es aktiviert. Danach einfach das Template zum Frontend hinzufügen. In diesem sind ein paar Abfragen integriert, die mir jetzt erstmal wichtig waren. Ihr könnt im Grunde jeden SMART Wert damit, als RAW_VALUE oder VALUE abfragen. Will man RAW_VALUE Werte bekommen muss der Key z.B. so aussehen:

smart.raw[{#HDD},Current_Pending_Sector]

Für VALUE Werte z.B. so:

smart.value[{#HDD},Raw_Read_Error_Rate]
Posted in: IT, Linux, Monitoring, Netzwerk, Opensource Tagged: linux, monitoring, package, python, smart, zabbix

mdadm mit zabbix überwachen

26. Februar 2013 by Sebastian Leave a Comment

New Version

Ich habe heute für die Arbeit ein Script geschrieben um unsere mdadm RAID’s mit Zabbix zu überwachen. Ich freue mich natürlich über Tipps, da ich noch das Script schreiben übe. Ich hab also noch nicht so viel Erfahrung, aber ich entdecke langsam die praktische Seite daran. :-D

Jedenfalls ist das das Script:

#!/bin/bash

export PATH=/usr/bin:/bin:/usr/sbin/:/sbin/

disk=$1

case $2 in
        state)
               state=$(sudo mdadm --detail /dev/$disk | grep -i "State :" | cut -d ":" -f 2 | awk -F ' ' '{print $1 $2 $3}')

               if [ "$(echo $state | grep clean | wc -l)" -eq "1" ]; then
                      s1=1
               else
                      s1=0
               fi
               if [ "$(echo $state | grep degrade | wc -l)" -eq "1" ]; then
                      s2=2
               else
                      s2=0
               fi
               if [ "$(echo $state | grep recovering | wc -l)" -eq "1" ]; then
                      s3=4
               else
                      s3=0
               fi

               s4=$(echo $(($s1 + $s2 + $s3)))

               case $s4 in
                       "0" | "1")
                               echo clean
                       ;;
                       "2" | "3")
                                echo degrade
                       ;;
                       "4" | "5" | "6" | "7")
                                echo recovery
                       ;;
                       esac
        ;;
        mdstat)
                grep -A1 $disk /proc/mdstat | grep -o _ | wc -w
        ;;
esac

Kurze Erklärung zu state: Ich greppe mir da aus der Ausgabe von mdadm die Zeile State heraus wo der Status des RAID’s ausgegeben wird. Dies können drei Stadien sein – clean, degrade, recovering (auch alle gleichzeitig). Aus diesem Grund habe ich noch die Addition hinzugefügt um einen Status auszugeben. Ich gebe aber immer nur einen Status aus: Wenn nur clean, dann logischer Weise clean – wenn clean,degrade dann degrade, da ja die Information wichtig ist das etwas mit dem RAID nicht in Ordnung ist – wenn recovering enthalten ist, dann wird recovery ausgegeben.

Kurze Erkläung zu mdstat: Ist relativ simpel. Platten die OK sind werden in /proc/mdstat mit U angeben und fehlende mit _ , da ich wissen will wie viele ausgefallen sind greppe ich hier nach _ .

Im Anschluss muss das Script noch ausführbar gemacht und in /etc/zabbix/zabbix-agentd.conf folgende Zeile hinzufügen werden:

UserParameter=mdadm[*], sh /pfad/zu/mdadm_chk.sh $1 $2

Da man für mdadm root-Rechte benötigt muss man noch folgende Zeile in /etc/sudoers:

zabbix ALL=NOPASSWD:/pfad/zu/mdadm_chk.sh,/sbin/mdadm

Jetzt einmal den Agent neu starten und schon müsste es funktionieren. Items und Trigger hab ich wie folgt angelegt:

mdadm_item_zbx

mdadm_trigger_zbx

Posted in: Arbeit, IT, Linux, Netzwerk, Opensource Tagged: bash, linux, mdadm, precise, raid, ubuntu, zabbix

Social Shit

Fediverse PGP-Key XMPP Matrix Git Github

Kategorien

  • Allgemein
  • Android
  • Anime
  • Arbeit
  • Entertainment
  • Games
  • Handy
  • IT
  • Linux
  • Monitoring
  • Netzwerk
  • Opensource
  • Privates
  • QEK Junior
  • Rattis
  • Showtime Ost
  • Showtime West
  • Windows

Interessantes

  • World of Edolas
  • 5222.de
  • chr.istoph's Blog
  • Lainblog

Archive

  • Juni 2023
  • August 2019
  • Oktober 2018
  • März 2018
  • Dezember 2017
  • Juli 2017
  • Juni 2017
  • Mai 2017
  • März 2017
  • Februar 2017
  • Januar 2017
  • Dezember 2016
  • November 2016
  • September 2016
  • August 2016
  • Juli 2016
  • Juni 2016
  • Mai 2016
  • April 2016
  • März 2016
  • Februar 2016
  • Dezember 2015
  • November 2015
  • September 2015
  • August 2015
  • Juli 2015
  • Juni 2015
  • Mai 2015
  • April 2015
  • März 2015
  • Februar 2015
  • November 2014
  • Oktober 2014
  • August 2014
  • Juli 2014
  • Juni 2014
  • Mai 2014
  • April 2014
  • März 2014
  • Februar 2014
  • Dezember 2013
  • November 2013
  • Oktober 2013
  • September 2013
  • August 2013
  • Juli 2013
  • April 2013
  • März 2013
  • Februar 2013
  • Januar 2013
  • Dezember 2012
  • November 2012
  • September 2012
  • Juli 2012
  • Juni 2012
  • Mai 2012
  • Februar 2012
  • Januar 2012

Tags

android anime apt bash bugs debian freifunk freifunk-aachen gnome hardware htpc kernel linux lucid lxc mdadm mint monitoring mysql network nginx openwrt outdoor package pgp php postgres precise raid redmine squeeze telekom testing trusty ubuntu virtualization vserver wheezy windows xbmc xenial xorg xubuntu zabbix zarafa

Datenschutzerklärung | Impressum

Copyright © 2025 KOKOLOR.ES.

Omega WordPress Theme by ThemeHall