Benutzer-Werkzeuge

Webseiten-Werkzeuge


statistiken:hlxce:install

HlstatsX:CE Installation

Deutsche Installationsanleitung für HLStatsX CE für Linux basierende Server

Vorwort: Wir möchten an dieser Stelle auf das Recht des geistigen Eigentums aufmerksam machen und verbieten hiermit die Veröffentlichung unseres Tutorials oder Teile davon auf einer anderen Seite ohne unserer schriftlichen Zustimmung. Es ist möglich, dass Teile von der HLXCE für die Übersetzung übernommen wurden.

Voraussetzungen

Linux Software

  • linux web Server (apache2 ist schon ausreichend)
  • linux sql server
  • linux php, php5-mysql, libapache2-mod-php5
  • OPTIONAL : phpmyadmin (für Web-basierendes sql Management)

MySQL

  • Datenabank ( in diesesm Tutorial nennen wir Sie hlstatsx)
  • Datenbank User mit Schreibrechten

Webspace

  • FTP Zugriff
  • FTP CLIENT z.B Filezilla

SHELL Zugriff

  • Benutzer mit Passwort für Shellzugriff
  • Putty ( SSH Client )

Stats Software

Perl Module

  • DBD::mysql
  • Geo::IP::pureperl

Editor

  • Wir empfehlen den PSPad Editor.
  • Niemals mit notepad o.ä. Arbeiten

Grundlegendes

  • Wir gehen an dieser Stelle davon aus, dass die o.g. Voraussetzungen erfüllt sind und Grundkenntnisse im Umgang mit Linux vorhanden sind.
  • Euer Web-Hoster muss die Kommunikation der DB nach außen hin zulassen. Man kann also nicht einfach irgendeinen Webhoster nehmen… erst recht nicht Funpic oder ähnliches.

Installation

Wir laden also von der HLX-CE Seite die aktuelle Version herunter und entpacken Sie mit Winrar oder Winzip. Wir haben nun mehrere Ordner die wir nach und nach abarbeiten werden. Es sollte dann so aussehen:

Website Part

Wir widmen uns dem „web“ Ordner und öffnen die „config.php“ mit einem Editor und ergänzen die erforderlichen Felder.

// DB_NAME - The name of the database  (NAME DER DATENABANK)
define("DB_NAME", "hlstatsx");
 
// DB_USER - The username to connect to the database as
define("DB_USER", "hlxuser");          (DATENBANK BENUTZERNAME)
 
// DB_PASS - The password for DB_USER
define("DB_PASS", "hlxpassword");      (DATENBANK PASSWORT)
 
// DB_ADDR - The address of the database server, in host:port format.
//           (You might also try setting this to e.g. ":/tmp/mysql.sock" to
//           use a Unix domain socket, if your mysqld is on the same box as
//           your web server.)
define("DB_ADDR", "localhost");        (WENN WEBSPACE UND GAMESERVER AUF DEM SELBEN ROOT SIND KANN "localhost"
                                        BLEIBEN ANSONSTEN MUSS DIE IP-ADRESSE ANGEGEBEN WERDEN )

Wir können nun die Datei abspeichern und den Editor verlassen.
Nun können wir den Inhalt des gesamten Web-Ordners in den gewünschte Webspace-Ordner Hochladen und per URL aufrufen.

SQL Part

Wir loggen uns bei phpMyAdmin ein und erstellen eine Naue Datenbank. Unsere heißt in diesem Fall „hlstatsx“ und wir importieren in diese Datebank die vorhandene Tabellen. Bei Erstinstallation heißt sie i.d.R install.sql und das Importieren kann manchmal ein paar Sekündchen dauern. Also nicht wundern, wenn es etwas länger dauert. Wir können uns Ausloggen und uns nun dem nächsten Schritt zuwenden.

Perl Part

Nun begeben wir uns in den Perl Ordner und öffnen die Datei „hlstats.conf“ mit dem Editor und füllen wieder die erforderlichen Felder aus. Achtung dies ist der wichtigste Part und 90% der Fehler gehen bei der Installation vom Perl Daemons aus.

# DBHost - Database server "address" or "address:port". Address can be an IP or
#          a hostname. The default MySQL port is 3306 (tcp).
DBHost "localhost"

# DBUsername - User to connect to the database as.
DBUsername "hlxuser"

# DBPassword - Password for the database user.
DBPassword "hlxpassword"

# DBName - Name of the database to use.
DBName "hlstatsx"

# DBLowPriority - Use INSERT DELAYED and DELETE LOW_PRIORITY for some queries.
#                 This can give better performance, but may make statistics less
#                 "real time". 1=on 0=off
DBLowPriority 1


##
## UDP Socket Settings (should match "logaddress ip port" on the game servers)
##

# BindIP - IP address to bind to (leave empty to use all interfaces).
BindIP ""

# Port - Port to listen on for log data from the game servers.
Port 27500

Wir speichern wieder die Datei ab und verlassen den Editor. Wir laden nun den kompletten perl Ordner hoch. Hierbei ist zu beachten, dass der perl Ordner nicht auf dem Webspace hinterlegt wird sondern in dem SSH-User Ordner 1) (GenEraLbEaM wäre jetzt mein SSH Benutzer). Nun machen wir folgende vier Dateien ausführbar entweder per ssh mit chmod +x <filename> oder einfach per FTP : rechte Maus auf die Dateien und die Attribute 750 vergeben.

hlstats-awards.pl
hlstats.pl
hlstats-resolve.pl
run_hlstats

Wir öffnen nochmal die run_hlstats und tragen in die folgende Passage den Pfad zum Perl Ordner ein z.B so:

# set your correct HLstatsX perl path
perldir=/home/GeNeRaLbEaM/perl/
cd ${perldir}

Speichern die Datei ab und laden Sie wieder hoch. Nun können wir mit folgendem Liunx Befehl per SSH den Perl Daemon starten: Wir begeben uns mit dem Befehl

cd /home/GeNeRaLbEaM/perl/

in den Perl Ordner und starten den Daemon mit

./run_hlsats start

Falls es erfolgreich war dann steht (starting success und die PID Nummer)

Plugins Part

Je nachdem um welches Spiel es sich handelt ist mittlerweile das hlstats Ingame Plugin nicht mehr von nöten. Das erfolgreiche Plugin superlogs wird für jedes Spiel als SourceMod addon mitgeliefert. Für CSS z.B superlogs-css.smx einfach in den Sourcemods/Plugins Ordner verschieben. Diese werden im extras Ordner noch vorerst untergebracht wobei ich stark davon ausgehe, dass es in den kommenden Versionen ein festes Bestandteil von HLX CE wird.

Anschließend begeben wir uns in die autoexcec.cfg und fügen folgende Zeilen ein:

log on
logaddress_add ip:27500

Der Port der Standardmäßig von HLX CE vergeben wird ist die 27500. Das sollte auch richtig sein, sofern Ihr nix verändert habt. So kann der Perl Daemon mit dem Gameserver kommunizieren.

Gameserver Restart nicht vergessen!

Und nun sollte das HLX Spam Ingame beginnen, und wir können uns freuen, dass es soweit läuft.

Feinheiten

Wir gehen auf unsere HLX Seite z.B http://IP/HLSTatsX (oder per URL http://pfad/zum/HLX/Ordner) und loggen uns dort ganz unten als Admin ein.

Benutzername : admin Passwort : 123456

Wir gehen unter „Admin Users“ erstellen uns einen neuen Admin acc. und löschen den alten Admin acc. Anschließend gehen wir unter HLSTatsX CE Settings und stellen die Sachen nach belieben ein. Einstellungen spezeiell für die Spiele können wir unter Game Settings einstellen und dort z.B einen neuen Server hinzufügen oder löschen. Man beachte dass auf der Rechten Seite sehr Abseits noch Configure steht, wo Ihr die einzelnen Game Server eistellen könnt. Ihr müsst beachten, dass das Rcon PW richtig gesetzt wird da HLX und Gameserver aonsonten nicht miteinander kommunizieren kann.

So damit die Google Maps auch richtig angezeigt werden, müssen wir uns erst einen Google Api Key besorgen das machen wir hier : http://code.google.com/intl/de-DE/apis/maps/signup.html

Wir lassen uns einen Api key generieren und fügen diese in den Settings ein. Achtung man muss erst bei Google eingeloggt sein, oder sich zumindest einen Google acc. neu anlegen damit es klappt. Es sollte dann ca. so aussehen.

Geo::IP::pureperl
Damit die Player locations richtig angezeigt werden, müssen wir erstmal CPan installieren. Also loggen wir uns in shell ein . Es ist ratsam an dieser Stelle sich mit dem Benutzer einzuloggen, unter dem auch Perl usw. läuft. Wir führen also folgende Befehle aus.

perl -MCPAN -e 'install Geo::IP::PurePerl'

via Cpan

cpan
install Geo::IP::PurePerl



Nun wechseln wir in das GeoLiteCity Verzeichnis. Diese befindet sich ebenfalls im Perl Ordner und wir laden folgende Datei herunter:

http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz [ mit wget]

Alternativ kann auch die Geolite_Import.sh ausgeführt werden. Die heruntergeldadene Datei müssen wir nun mit Gunzip entpacken. Nun loggen wir uns wieder im Web-Panel von HLX als Admin ein und stellen in den Settings unter GeoIP data & Google Map settings:
Geo IP look via Binary File.

GeoLiteCity.dat
Ihr solltet in Regelmäßigen Abständen die Aktulität Eurer GeoLiteCity.dat überprüfen. Dies kann man natürlich Manuell machen oder in Regelmäßigen Abständen als Cronjob. Ein simples Script dafür würde z.B so aussehen.

#!/bin/bash
#
# Author: Rawh
# Edited: DeaD_EyE
# Date: 31 October 2009
# What: Script to download the GeoLiteCity.dat.gz file.
#

DIR=~/hlstats/GeoLiteCity

#Programm
URL="http://geolite.maxmind.com/download/geoip/database/"
FILE="GeoLiteCity.dat.gz"

if [ -d $DIR ]; then echo "Wrong directory"; fi
cd $DIR
rm ${FILE} &>/dev/null
wget "${URL}/${FILE}"
gunzip -f ${FILE}

Den o.g. Code im Pspad Editor in eine neue Datei kopieren und als update.sh speichern und in den Perl Ordner hochkopieren. Ausführrechte erteilen : chmod +x update.sh oder per ftp die Attribute 750. Die Datei z.B monatlich als Cronjob ausführen.

Nun sollten auch die Playerlocations und die Serverlocation richtig dargestellt werden. Bitte beachtet, dass die Einstellungen mit dem * einen restart des Pearl Daeomons benötigen. Dies wird gerne mal übersehen obwohl es ganz groß oben Plakatiert wird:

Crontab installieren

Da die meisten an dieser Stelle noch nicht so ganz wissen wie man einen Crontab installiert werden wir hier ein Paar Takte dazu sagen. Ein Crontab ist quasi ein regelmäßiger Job, dem man dem Server erteilt. Mal als ganz einfaches Beispiel: Es soll jede Nacht um 24 Uhr der Server neugestartet werden. Nun wollen wir aber nicht den Server neustarten sondern jeden Tag die Awards vergeben. Es gibt zwei unterschiedliche Varianten wie man einen Crontab installiert und wir werden an dieser Stelle auf beide eingehen.

Wir loggen uns per SSH ein und starten unseren Editor mit dem Befehl : crontab -e

Eine Crontab hat quasi immer die selbe Struktur, deshalb ist es ratsam an dieser Stelle die entsprechende Passage zu kopieren und in Euren Editor hinzuzufügen. Support und erweitertes Background am besten direkt auf der Homepage Eures Betriebssystemes holen. Für Ubuntu muss die Crontab so aussehen. Zu beachten ist,dass eine Crontab immer mit einer leeren Zeile also mit Enter beendet werden muss.

##-----------------------------------------------------------------
1       0       *       *       *       cd /home/GeNeRaLbEaM/perl; ./hlstats-awards.pl
1       0       *       *       *       cd /home/GeNeRaLbEaM/perl; ./importbans.pl
##-----------------------------------------------------------------

Anhand meiner Crontab kann man z.B hier sehen, dass jede Nacht um 00:01 meine hlstats-awards vergeben werden. Man kann natürlich auch eine Crontab per Plesk installieren was um wesentliches Kompfortabler sein kann aber nicht unbedingt muss.

Installation einer Crontab unter Debian :

55 23 * * * cd /home/<user>/stats/perl && ./hlstats-awards.pl

Jetzt müssen wir unsere Crontab abspeichern und den Editor wieder verlassen, dies machen wir mit : ^KX

Abrrechen ohne zu Speichern machen wir mit : Strg C

Bedeutet, dass unsere Crontab jede Nacht um 23:55 ausgeführt wird. Eines der wunderbaren Sachen unter HLXCE ist auch, dass es z.B mit Sourcebans kommunizieren kann. Leute die also in Sourcebans gebannt werden (egal aus welchem Grund) oder allg. gebannt werden und in der banned_user.cfg auftauchen werden automatisch aus den Stats hinausgenommen und werden dann auf der HLX-Seite unter „Bans“ aufgelistet. Dazu muss einfach nur die importbans.pl wie oben auch beschrieben ist, als Crontab ausgeführt werden.

Support

Deutschsprachiger Support erfolgt auf der ofiziellen HLSatsX CE Seite

FAQ

Im Deutschen Forum sind quasi so alle Fehler schon behandelt die es eigentlich so geben kann. Sollte Ihr eine Fehlermeldung bekommen dann einfach hier mal nachschauen. Euer Fehler ist bestimmt auch dabei.

1) z.B /home/GeNeRaLbEaM/Perl
statistiken/hlxce/install.txt · Zuletzt geändert: 2009/10/31 22:23 von DeaD_EyE