Saltstack und Zabbix im Einsatz
Saltstack besteht aus Master und vielen Minions.
Installiert wird der Master so:
apt-get -y install python-software-properties
add-apt-repository ppa:saltstack/salt
apt-get update
apt-get install salt-master
Der DNS Eintrag „salt“ muss auf diesen Server zeigen, sonst
geht saltstack nicht.
Die Minions werden so installiert:
apt-get -y install python-software-properties
add-apt-repository ppa:saltstack/salt
apt-get update
apt-get -y
--force-yes install salt-minion
Danach wird auf dem Master folgendes aufgerufen :
Salt-key –A
Damit wird der Key der Minions dem Keystore hinzugefügt.
Nun ist alles bereit für die Zabbix Installation.
Der Zabbix Server sollte bereits installiert sein und
funktionieren.
Falls nicht, geht das so:
wget
http://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.2-1+precise_all.deb
apt-get install mysql-server
aptitude search zabbix
apt-get install zabbix-server-mysql zabbix-frontend-php
nano /etc/apache2/conf.d/zabbix
Nun wird einiges an der saltstack Konfiguration verändert.
Diese findet sich unter /etc/salt/master
##### File Server
settings #####
##########################################
# Salt runs a lightweight file server written in zeromq to
deliver files to
# minions. This file server is built into the master daemon
and does not
# require a
dedicated port.
file_roots:
base:
- /srv/salt
##### Pillar
settings #####
##########################################
# Salt Pillars allow for the building of global data that
can be made selectively
# available to different minions based on minion grain
filtering. The Salt
# Pillar is
laid out in the same fashion as the file server, with environments,
# a top
file and sls files. However, pillar data does not need to be in the
# highstate
format, and is generally just key/value pairs.
pillar_roots:
base:
- /srv/pillar
Damit sind die Voraussetzungen geschaffen.
Nun geht es an die Konfigurationsdateien, die sich alle
unter /srv/salt/ befinden.
So wird es am Schluss aussehen:
# ls -R /srv/salt/
/srv/salt/:
top.sls zabbix-agent
zabbix-agent-centos
/srv/salt/zabbix-agent:
init.sls zabbix_agentd.conf
Zuerst wird top.sls angelegt:
# cat
/srv/salt/top.sls
base:
'os:Ubuntu':
- match: grain
- zabbix-agent
Danach wird er Ordner für Zabbix erstellt. Nun folgt die SLS
für Zabbix Agent:
# cat /srv/salt/zabbix-agent/init.sls
zabbix-agent:
pkg:
- installed
service:
- running
- require:
- pkg: zabbix-agent
- watch:
- pkg:
zabbix-agent
- file:
/etc/zabbix/zabbix_agentd.conf
/etc/zabbix/zabbix_agentd.conf:
file.managed:
- source:
salt://zabbix-agent/zabbix_agentd.conf
- user: root
- group: root
- mode: 644
Damit wird folgendes eingestellt:
Zabbix-agent wird installiert. Zabbix-agent wird gestartet.
Das Paket zabbix-agent wird auf Updates überwacht. Die Datei
/etc/zabbix/zabbix_agentd.conf wird von saltstack verwaltet. Die Originaldatei
ist auf dem salt-master zu finden.
Damit wird aber noch gar nichts getan. Saltstack kennt keine
Automatismen. Also wird auf einem ersten Minion gestartet:
# salt-call state.sls zabbix-agent
Damit wird auf diesem Minion saltstack angewiesen, den
Status „zabbix-agent“ herzustellen.
Dies gelingt mal besser, mal schlechter. Eines der
Hauptprobleme ist, dass der Zabbix-agent das pid unter /var/run/zabbix/ anlegen
will, aber der Ordner /var/run/zabbix.agent/ erstellt wurde. Dann startet
Zabbix-agent eben nicht.
Um gleich auf allen Minions den Zabbix-agent zu aktivieren,
wird auf dem Master folgendes ausgeführt:
# salt -G os:Ubuntu state.sls zabbix-agent
Damit werden alle Minions, die auf Ubuntu laufen, den Status
herzustellen.
Der Erfolg kann so überprüft werden:
salt -G os:Ubuntu cmd.run "ps -Al | grep zabbix"
Damit werden alle Zabbix Prozesse angezeigt.
Falls da einige nicht laufen, kann so weiter nach der
Ursache gesucht werden:
salt -G os:Ubuntu cmd.run "tail /var/log/zabbix-agent/zabbix_agentd.log"
Falls es ein Problem mit /var/run gibt, helfen folgende
Befehle weiter:
salt -G os:Ubuntu cmd.run "ls -l /var/run | grep
zabbix"
salt -G os:Ubuntu cmd.run "chown zabbix:zabbix
/var/run/zabbix"
salt -G os:Ubuntu cmd.run "service zabbix-agent
restart"
Sollte der Zabbix-agent noch immer nicht starten, muss einzeln
eingegriffen werden. Zabbix-agent wird dann am besten mit
# apt-get purge zabbix-agent
entfernt und danach mit
# apt-get install zabbix-agent
erneut installiert. Danach wieder mit
# salt-call state.sls zabbix-agent
die Konfiguration vom Master übernehmen.
Ergänzung vom 25.2.2014
Wie wird der richtige Hostname verwendet?
In der Konfigurationsdatei zabbix_agentd.conf
HostnameItem=system.hostname
Wie wird der richtige Hostname verwendet?
In der Konfigurationsdatei zabbix_agentd.conf
HostnameItem=system.hostname
Kommentare
Kommentar veröffentlichen