< Back
Print

CS Alive

Diese Seite erklärt in wenigen Schritten, wie Sie einen Server für die CSAlive Anbindung konfigurieren.

Grundvoraussetzung für die Einrichtung

Der Zabbix Agent schickt seine Daten zum Überwachungsserver, d.h. es muss der ausgehende Port 10051 zum CSAlive Server freigeschaltet sein. In Europa wäre es der zbx-proxy1-ush.sasg.de (95.142.66.228).

Sie können das leicht mit einem Telnet Befehl prüfen:

telnet zbx-proxy1-ush.sasg.de 10051

Weiterhin benötigt man während der Einrichtung:

– sudo Rechte zum Installieren der Agents
– Rechte einen svn checkout des csalive Moduls durchführen zu können (das csalive SVN ist public und braucht keine besondere Kennung)
– Backend Zugriff auf CS um das Datamonitoring und den RestService zu konfigurieren
– ggf. MySQL Zugang um den User für die Überwachung einrichten zu können

1.7.1 CS Web Server

Laden Sie sich das csalive Modul über SVN herunter und installieren Sie es unter /<<projektname>>/modules/csalive. Den aktuellen SVN Pfad erhalten Sie bei uns!

Konfigurieren Sie zu Überwachenden Parameter in CS und dem Modul “ESA Datamonitoring”.

Local Server

Diese Plugin sammelt alle Grundinformationen zu Backup, Grundrauschen und aktiven Benutzern.

Base Plugin

Diese Plugin sammelt wichtige Informationen zu Log- und Lizenzeinstellungen! Ausserdem werden PHP und CS Versionen aufgezeichnet.

Record Plugin

Dieses Plugin muss für jeden gewünschten Record Typ konfiguriert werden und sammelt wichtige Record spezifische Informationen, wie Anzahl der Objekte, Performance bei Baum aufklappen, Listenansicht, Checkin und Checkout.

Fileshares

Mit dem Fileshare Observer Plugin können sie die Verfügbarkeit eines Files Shares prüfen. Dabei können bis zu 10 Shares geprüft werden. In CSAlive / Zabbix ist der Status über dei Variable Share1 bis Share10 abfragbar.

ElasticSearch / ActiveMQ / Export Database

Um die Exportdatenbank mit allen seinen Komponenten überwachen zu können, stehen folgende Plugins zur Verfügung.

Im Folgenden sind die einzelnen Messwerte aufgelistet und deren Bedeutung erläutert:

ExportDatabaseObserver
Dieser Dienst überwacht die Anzahl der Objekte, die für einen Export anstehen (wenn 0, dann ist alles ok)  und das Alter der Daten.


CS.ExportExecuter.Objectcount       Anzahl der Records in der MySQL ExportDatenbank
CS.ExportExecuter.Changedate        Alter der Daten in Sekunden

ActiveMQObserver
Dieser Dienst überwacht die Anzahl der Objekte die gerade über den MasterSubscriber zu Cassandra oder über den ElasticSubscriber zur ElasticSearch geschaufelt werden.


CS.ActiveMQ.Mastersubscriber       Anzahl der Records die gerade zu Cassandra geschoben werden
CS.ActiveMQ.Elasticsubscriber      Anzahl der Records die gerade zu ElasticSearch geschoben werden

ElasticSearchObserver
Dieser Dienst überwacht die Anzahl der Objekte und das Alter der Daten in der ElasticSearch. Ausserdem wird die Zeit für die Suche in der ElasticSearch gemessen.


CS.ElasticSearch.Usedstorage       Verbrauchter Speicher in Byte
CS.ElasticSearch.Searchtime        Dauer der Suche nach einem String in Sekunden
CS.ElasticSearch.Objectcount       Anzahl der unterschiedlichen Objekte zwischen CS Datenbank und der ElasticSearch. Wenn der Wert negativ ist, dann fehlen Objekte in der Elastic Search. Wenn der Wert positiv ist, dann sind in CS weniger Objekte. Wenn der Wert 0 ist, dann ist alles in Ordnung!
CS.ElasticSearch.Changedate        Alter der Daten. Wenn 0, dann sind die Daten aktuell. Je kleiner die Zahl, desto älter in Sekunden!!! Anhand dieser Zeit kann man ablesen, wie lange es dauert, bis Änderungen aus CS in die ElasticSearch kommen.

 

CassandraDatabaseObserver
comming soon…

ActiveScript

Achtung! Stellen Sie sicher, dann die ActiveScripts regelmäßig laufen  und der Data Monitoring Job regelmäßig aufgerufen wird.

Restservice

Legen Sie zum Abschluss noch den CSAlive Restservice an, der dem Zabbix Agent ermöglich die Daten abzurufen. Sichern Sie den Restservice so ab, das er nur vom Zabbix-Agent (i.d.R 127.0.0.1) aufzurufen ist.

Über die URL http://<<server>>/<<projectname>>/admin/rest/csalive/getmonitorstatusdata/?autoclean=2 müssen die Daten abrufbar sein!

1.7.2 Zabbix-Agent

Auf CS Webservern

Installieren Sie den Zabbix-agent über

apt-get install zabbix-agent

Konfigurieren sie die conf- Datei und führen Sie einen Restart des Dienstes durch.

vi /etc/zabbix/zabbix_agentd.conf
/etc/init.d/zabbix-agent restart

Beispiel für die zabbix.conf. Passen Sie die mit ##xxx##markierten  Punkte ggf. an.

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix-agent/zabbix_agentd.log
LogFileSize=0
DebugLevel=1
Server=
ServerActive=zbx-proxy1-ush.sasg.de
Hostname=##meinZabbixHostName##

UserParameter=CS[*],/usr/bin/curl -s -m 30 "http://localhost/##projectname##/admin/rest/csalive/getmonitorstatusdata/?autoclean=2"
StartAgents=3

Achtung!!! Verwenden Sie unbedingt den Parameter “autoclean=”. Dieser löscht die temporär aufgezeichneten Daten (in Tagen) im CS automatisch. Wird das nicht gemacht, dauert die Abfrage immer langsamer und Zabbix stuft das Abfragen immer weiter herunter, bis irgend wann keine Daten mehr abgefragt werden!

Apache Server Status überwachen

Um den Apache Status mit zu überwachen, stellen Sie sicher, das der zabbix-agent Zugriff auf den Apache Server Status hat (meist: http://localhost/server-status).

Legen Sie ein Script an, welches den Status in ein JSON Format umwandelt und geben Sie ihm “Ausführ”- Rechte:

vi /etc/zabbix/apachestats.sh
chmod 775 /etc/zabbix/apachestats.sh 

Fügen Sie folgenden Inhalt in das Script:

#!/bin/bash

if [ $# -lt 2 ] ; then
        exit
fi

PORT=$2
IP=$1

trim() {
    local var="$*"
    # remove leading whitespace characters
    var="${var#"${var%%[![:space:]]*}"}"
    # remove trailing whitespace characters
    var="${var%"${var##*[![:space:]]}"}"
    echo -n "$var"
}

ADDRESS="http://$IP:$PORT/server-status?auto"

wget -q "$ADDRESS" -O /tmp/server_status.$$

if [ $? -ne 0 ] ; then
        echo "Failed to get server status from $ADDRESS"
        exit 1
fi

LC=$(cat /tmp/server_status.$$ | wc -l)

IFS=$'\n'
echo "{"
COUNT=0
for LINE in $(cat /tmp/server_status.$$) ; do

        let COUNT+=1;
        # only read lines containing at least one colon
        if [[ $LINE =~ .*:.* ]] ; then
                KEY=$(echo $LINE | cut -d ":" -f 1)
                VAL=$(echo $LINE | cut -d ":" -f 2)

                KEY=$(trim $KEY)
                VAL=$(trim $VAL)

                # use COUNT to determine if we reached the and and should skip the trailing comma
                if [ "$COUNT" -ge "$LC" ] ; then
                        echo -e "\t"'"'$KEY'": "'$VAL'"'
                else
                        echo -e "\t"'"'$KEY'": "'$VAL'",'
                fi
        fi
done
echo "}"

rm -f /tmp/server_status.$$

Fügen Sie Anschließend folgenden UserParameter in die zabbix-agent.conf ein und starten Sie den Dienst neu.

UserParameter=ApacheStats[*],/etc/zabbix/apachestats.sh <<Servername>> <<port>>

#z.B. UserParameter=ApacheStats[*],/etc/zabbix/apachestats.sh localhost 80

 

Auf CS Datenbankservern (Master)

Legen Sie einen neuen MySQL Benutzer an, der die Statistikdaten abfragen darf .

#MySQL ausführen
GRANT SELECT , REPLICATION CLIENT ON * . * TO 'zabbix'@'%' IDENTIFIED BY 'GEHEIMESPASSWORT' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;

Hinterlegen sie die Zugangsdaten für den Zabbix Agent:

mkdir /var/lib/zabbix
vi /var/lib/zabbix/.my.cnf

#Inhalt von .my.cnf:

[client]
user=zabbix
password=GEHEIMESPASSWORT

Installieren Sie den Zabbix-agent über

apt-get install zabbix-agent

Konfigurieren sie die conf- Datei und führen Sie einen Restart des Dienstes durch.

vi /etc/zabbix/zabbix_agentd.conf
/etc/init.d/zabbix-agent restart

Beispiel für die zabbix.conf. Passen Sie die mit ##xxx## markierten  Punkte ggf. an.

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix-agent/zabbix_agentd.log
LogFileSize=0
DebugLevel=1
Server=
ServerActive=zbx-proxy1-ush.sasg.de
Hostname=##meinZabbixHostName##

UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}'
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
StartAgents=3

Achtung!!! Die Daten befinden sich im Zabbix Host unter MySQL wieder (Template: CS Template DB MySQL oder CS Template DB MySQL Slave)

Alles richtig gemacht?

Die aktuellen Daten sehen Sie im Zabbix unter “Latest Data”. Dort erkennen Sie anhand des Datums, wie aktuell die Daten sind.

 

Sind Ihr z.B. CPU Daten aktuell, die CS Daten aber nicht, dann laufen die Active Scripte auf CS Seite nicht. Dies erkennen Sie in den Data Monitor Log Einstellungen:

Was this article helpful?
How can we improve this article?
Please submit the reason for your vote so that we can improve the article.
Table of Contents