Docker LibreNMS

Status
Für weitere Antworten geschlossen.

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
436
Punkte für Reaktionen
17
Punkte
18
Hallo zusammen

Ich habe Heute mit Hilfe dieser Anleitung Installiert.


Das ging eigentlich gut bis zum letzten Punkt:
Rich (BBCode):
docker exec librenms setup_database

Da erhalte ich dies

Rich (BBCode):
docker exec librenms setup_database

In Connection.php line 664:

  SQLSTATE[HY000] [1049] Unknown database 'librenms' (SQL: select * from info
  rmation_schema.tables where table_schema = librenms and table_name = migrat
  ions and table_type = 'BASE TABLE')


In PDOConnection.php line 31:

  SQLSTATE[HY000] [1049] Unknown database 'librenms'


In PDOConnection.php line 27:

  SQLSTATE[HY000] [1049] Unknown database 'librenms'

Lösungsversuche:
Alle Container ausgeschaltet, und Docker neu gestartet ohne erfolg.


Log Eintrag: vom container librenms
Rich (BBCode):
[2020-01-12 18:50:07] production.ERROR: SQLSTATE[HY000] [1049] Unknown database 'librenms' (SQL: select * from information_schema.tables where table_schema = librenms and table_name = migrations and table_type = 'BASE TABLE') {"exception":"[object] (Illuminate\\Database\\QueryException(code: 1049): SQLSTATE[HY000] [1049] Unknown database 'librenms' (SQL: select * from information_schema.tables where table_schema = librenms and table_name = migrations and table_type = 'BASE TABLE') at /opt/librenms/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664, Doctrine\\DBAL\\Driver\\PDOException(code: 1049): SQLSTATE[HY000] [1049] Unknown database 'librenms' at /opt/librenms/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:31, PDOException(code: 1049): SQLSTATE[HY000] [1049] Unknown database 'librenms' at /opt/librenms/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:27)
[stacktrace]
#0 /opt/librenms/vendor/laravel/framework/src/Illuminate/Database/Connection.php(624): Illuminate\\Database\\Connection->runQueryCallback('select * from i...', Array, Object(Closure))
#1 /opt/librenms/vendor/laravel/framework/src/Illuminate/Database/Connection.php(333): Illuminate\\Database\\Connection->run('select * from i...', Array, Object(Closure))
#2 /opt/librenms/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php(18): Illuminate\\Database\\Connection->select('select * from i...', Array)
#3 /opt/librenms/vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php(169): Illuminate\\Database\\Schema\\MySqlBuilder->hasTable('migrations')
#4 /opt/librenms/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(585): Illuminate\\Database\\Migrations\\DatabaseMigrationRepository->repositoryExists()
#5 /opt/librenms/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(91): Illuminate\\Database\\Migrations\\Migrator->repositoryExists()
#6 /opt/librenms/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(63): Illuminate\\Database\\Console\\Migrations\\MigrateCommand->prepareDatabase()
#7 [internal function]: Illuminate\\Database\\Console\\Migrations\\MigrateCommand->handle()
#8 /opt/librenms/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): call_user_func_array(Array, Array)
#9 /opt/librenms/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(90): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}()
#10 /opt/librenms/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(34): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(App\\Application), Array, Object(Closure))
#11 /opt/librenms/vendor/laravel/framework/src/Illuminate/Container/Container.php(576): Illuminate\\Container\\BoundMethod::call(Object(App\\Application), Array, Array, NULL)
#12 /opt/librenms/vendor/laravel/framework/src/Illuminate/Console/Command.php(183): Illuminate\\Container\\Container->call(Array)
#13 /opt/librenms/vendor/symfony/console/Command/Command.php(255): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArrayInput), Object(Illuminate\\Console\\OutputStyle))
#14 /opt/librenms/vendor/laravel/framework/src/Illuminate/Console/Command.php(170): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArrayInput), Object(Illuminate\\Console\\OutputStyle))
#15 /opt/librenms/vendor/symfony/console/Application.php(1011): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArrayInput), Object(Symfony\\Component\\Console\\Output\\BufferedOutput))
#16 /opt/librenms/vendor/symfony/console/Application.php(272): Symfony\\Component\\Console\\Application->doRunCommand(Object(Illuminate\\Database\\Console\\Migrations\\MigrateCommand), Object(Symfony\\Component\\Console\\Input\\ArrayInput), Object(Symfony\\Component\\Console\\Output\\BufferedOutput))
#17 /opt/librenms/vendor/symfony/console/Application.php(148): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArrayInput), Object(Symfony\\Component\\Console\\Output\\BufferedOutput))
#18 /opt/librenms/vendor/laravel/framework/src/Illuminate/Console/Application.php(90): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArrayInput), Object(Symfony\\Component\\Console\\Output\\BufferedOutput))
#19 /opt/librenms/vendor/laravel/framework/src/Illuminate/Console/Application.php(182): Illuminate\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArrayInput), Object(Symfony\\Component\\Console\\Output\\BufferedOutput))
#20 /opt/librenms/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(275): Illuminate\\Console\\Application->call('migrate', Array, NULL)
#21 /opt/librenms/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(239): Illuminate\\Foundation\\Console\\Kernel->call('migrate', Array)
#22 /opt/librenms/includes/sql-schema/update.php(56): Illuminate\\Support\\Facades\\Facade::__callStatic('call', Array)
#23 /opt/librenms/build-base.php(54): require('/opt/librenms/i...')
#24 {main}
"}

Hat da jemand eine Idee?

Besten dank.

Ps in einem Forum habe ich das gefunden:
after this comand
Rich (BBCode):
mysqlcheck --auto-repair + reboot server
problem solved :roll_eyes:
since 24~48h the error message has disappeared

Das geht doch auf der DS nicht ?

Das einzige was ich gemacht habe ist den port von 8668 auf 8667 abgeändert da der port 8668 bereits für etwas anderes vergeben ist.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Die Applikation kann wohl nicht auf die Datenbank zugreifen. Entweder ist die nicht "sauber verdrahtet" oder das Datenbank-Schema wurde nicht gemäß Anleitung händisch(!) angelegt.

Bitte die zum erzeugen der Container verwendeten `docker run`-Befehle hier pasten nachdem BASE_URL, APP_KEY und DB_PASS anonymisiert wurden.
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
436
Punkte für Reaktionen
17
Punkte
18
So ich habe alles aus dem editor gemacht dan kopiere ich das mal hier rein.
Passwörter & key sind durch XX ersetzte:


Rich (BBCode):
Doker Maria DB LibreNMS

cd /volume1/docker
mkdir mariadb

docker run \
-v /volume1/docker/mariadb:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=xxxxxx \
-e TZ=Europe/Berlin \
--name mariadb \
-d \
--restart always \
mariadb:latest \
--sql-mode=''

docker exec -it mariadb mysql -u root


CREATE USER 'librenms'@'%' IDENTIFIED BY 'xxxxxxx';
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'xxxxxxx';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'%';
FLUSH PRIVILEGES;
exit

docker restart mariadb

cd /volume1/docker

mkdir librenms
cd librenms
mkdir logs
mkdir rrd
touch custom.config.php

docker run --rm jarischaefer/docker-librenms generate_key



Install: 
docker pull jarischaefer/docker-librenms

docker run \
-p 8667:80 \
-e DB_HOST=db \
-e DB_NAME=librenms \
-e DB_USER=librenms \
-e DB_PASS=xxxxxxx \
-e APP_KEY=base64:xxxxxxx \
-e BASE_URL=http://192.xxx.xxx.xxx:8667 \
-e TZ=Europe/Berlin \
--link mariadb:db \
-v /volume1/docker/librenms/logs:/opt/librenms/logs \
-v /volume1/docker/librenms/rrd:/opt/librenms/rrd \
-v /volume1/docker/librenms/custom.config.php:/opt/librenms/conf.d/custom.config.php:ro \
--name librenms \
-d \
--restart always \
jarischaefer/docker-librenms:latest

wait 5 min


docker exec librenms setup_database

docker exec librenms create_admin


Beim Kopieren habe ich gesehen das ich den Befehl:
Rich (BBCode):
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
vergessen habe :(
ich habe das mal nachgeholt, und danach beide neu gestartet,
danach den Befehl:
Rich (BBCode):
docker exec librenms setup_database
ausgeführt. so und da rödelt er nun... seit ca. 10 min ( DS 1618+)
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
436
Punkte für Reaktionen
17
Punkte
18
@haydibe

Wie lange dauert das erstellen der dp ? der ist angeblich immer noch dabei
Bildschirmfoto 2020-01-12 um 21.22.31.png

Hat sich erledigt es dauert einfach ca. 30 - 45 min
 
Zuletzt bearbeitet:

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Hättest mal mit `docker exec -it` machen sollen, dann hättest Du gesehen wo die Bearbeitung gerade steht...

Eien Dauer von 30-45 MInuten ist schon unglaublich lange. Im Grunde sollte die Anlage der Tabellen und der benötigten Daten in unter 3-5 Minuten durch sein.
Ich verwende LibreNMS nicht, dafür bring ich Erfahrung mit, wie man sich in der Docker-Welt zielgerichtet bewegt ^^
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
436
Punkte für Reaktionen
17
Punkte
18
Nja Netzwerk Monitoring zuhause ist auch ein wenig OP und eigentlich unnötig, also eine Spielerei.;)
Ich vermute mal es dauerte so lange weil die DS noch anderes gemacht hat zu der Zeit....

Es läuft jetzt alles und meine 14 Device sind eingetragen :D
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Kann ich verstehen :)

Kannst ja gleich weitermachen mit Systemmonitoring in Form von Grafana und Prometheus/InfluxDB, sowie Exportern für Docker-Container.
Logmonitoring würde ich einem NAS nicht antun wollen... die haben heutzutage leider alle einen (nicht wirklich ressourcenschonenden) ElasticSearch unter der Haube..

Lustigerweise sind das die ersten Werkzeuge, die man installiert, wenn man mehrere Rootserver irgendwo laufen hat (VPS bzw. Cloud).
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
436
Punkte für Reaktionen
17
Punkte
18
Danke für das Angebot ich belasse es einmal bei LibreNMS :cool:
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat