##################################################################################### # # install lggr.io 2021 (GitLab, NEU) # https://gitlab.kretschmann.software/kai/lggr/-/tree/master/docs # # !! USE A CLEAN AND FRESH DEBIAN 10.x SERVER !! # last update: 14.02.2021 # ##################################################################################### ### ### Apache ### $ apt install -y apache2 ### ### PHP ### $ apt install -y php7.3 php7.3-mysql php7.3-dom php7.3-curl composer npm * PHP Zeitzone setzen (date.timezone = Europe/Berlin) $ vi /etc/php/7.3/apache2/php.ini $ vi /etc/php/7.3/cli/php.ini * Apache neu starten $ systemctl restart apache2.servicve ### ### Redis ### $ apt install -y php-redis redis-server ### ### lggr.io Webinterface ### * Installation direkt in /var/www/html, kein lggr Unterverzeichnis mehr! $ cd /var/www/html $ apt install -y git $ git clone https://gitlab.kretschmann.software/kai/lggr.git . * lggr.io installieren $ composer install $ npm install Die Verzeichnisse vendor und node_modules werden erstellt. * REDISHOST anpassen $ vi inc/LggrCacheRedis.php const REDISHOST = 'redis'; # ERR const REDISHOST = 'localhost'; # OK ### ### Datenbank ### $ apt install -y mariadb-server mariadb-client $ mysql_secure_installation * Datenbank lggr erstellen. $ mysql MariaDB [(none)]> CREATE DATABASE lggr; MariaDB [(none)]> quit * Passwoerter anpassen (xxx) $ vi setup/3_user.sql * sollen alle passwoerter gleich sein... (im vi) :%s/xxx/PASSWORD4ALL/g * Tabellen in die Datenbank importieren $ mysql < setup/1_db.sql $ mysql lggr < setup/2_auth.sql $ mysql < setup/3_user.sql # VORHER die Passwoerter anpassen! ### ### DbPwd und DbHost anpassen ### * Datenbank Passwort und Host anpassen $ grep "setDbHost" inc/* inc/AbstractConfig.php: protected function setDbHost($s) { inc/AdminConfig.php: $this->setDbHost('mysql'); inc/AuthConfig.php: $this->setDbHost('mysql'); inc/CiConfig.php: $this->setDbHost('mysql'); inc/Config.php: $this->setDbHost('mysql'); * In diesen 4 Dateien jeweils das DbPwd und den DbHost setzen inc/AdminConfig.php inc/AuthConfig.php inc/CiConfig.php inc/Config.php $this->setDbPwd('xxx'); # Passwort setzen $this->setDbHost('localhost'); # Mysql Server ### ### syslog-ng ### $ apt install -y syslog-ng syslog-ng-mod-sql libdbi1 libdbd-mysql * Datei /etc/syslog-ng/conf.d/08lggr.conf mit folgdendem Inhalt erstellen: filter f_no_debug { not level(debug); }; options { keep_hostname(yes); }; source s_net { tcp( ip("127.0.0.1") port(514) max-connections(20) log-iw-size(2000) ); }; destination d_newmysql { sql( flags(dont-create-tables,explicit-commits) session-statements("SET NAMES 'utf8'") batch-lines(10) batch-timeout(5000) local_time_zone("Europe/Berlin") type(mysql) username("lggrsyslog") password("CHANGEME") # PASSWORT ANPASSEN !! database("lggr") host("localhost") table("newlogs") columns("date", "facility", "level", "host", "program", "pid", "message") values("${R_YEAR}-${R_MONTH}-${R_DAY} ${R_HOUR}:${R_MIN}:${R_SEC}", "$FACILITY", "$LEVEL", "$HOST", "$PROGRAM", "$PID", "$MSGONLY") indexes() ); }; log { source(s_net); source(s_src); filter(f_no_debug); destination(d_newmysql); }; * in der /etc/default/syslog-ng, noch aktivieren SYSLOGNG_OPTS="–no-caps" * syslog-ng neu starten $ systemctl restart syslog-ng.service ### ### locales ### * locales nachinstallieren $ dpkg-reconfigure locales de_DE.UTF-8 und en_US.UTF-8 setzen und aktivieren * testen $ locale -a C C.UTF-8 de_DE.utf8 en_US.utf8 POSIX * die Sprache wird in der inc/Config.php gesetzt $this->setLocale('en_US'); ### ### Benutzer fuer den login anlegen ### * Benutzer fuer den login anlegen $ cd admin $ php admin/auth_register.php --email=lggr@lggr.io --password=YOUR-PASSWORD * ohne login geht es nur vom localhost aus! inc/Lggr.php // local access allowed without login data // Attention: Using a reverse proxy might change the requester IP // to the localhost one. Change the code or add remote IP // to the request headers! if ($_SERVER["REMOTE_ADDR"] === "::1") { return; } if ($_SERVER["REMOTE_ADDR"] === "127.0.0.1") { //if ($_SERVER["REMOTE_ADDR"] === "192.168.150.55") { # optional return; ### ### cronjobs (aus der alten Doku uebernommen) ### * Datei /etc/cron.d/lggr mit folgendem Inhalt erstellen # Datenbank aufraeumen (taeglich um 01:30 Uhr) 30 1 * * * www-data /usr/bin/php /var/www/html/admin/cron.php # Server ID/Namen updaten (alle 5 Minuten) */5 * * * * www-data /usr/bin/php /var/www/html/admin/cron_often.php * Zeitintervall fuer die automatische Bereinigung alter Eintraege: inc/Lggr.php function purgeOldMessages($maxage = 672) { ### ### DONE ### * server rebooten * lggr.io 2021 laeuft! :-)