Projekt

Allgemein

Profil

Einrichtung von Geonetwork 2.1.0x + Harvesting

Installationen

Als user/root anmelden und folgende Software installieren:

1. Tomcat7 installieren

sudo apt-get install tomcat7 tomcat7-admin

2. PostgreSQL (9.3 oder höher) installieren

sudo apt-get install postgresql //(installiert die neuste Version)
Danach für den user "postgres" ein PASSWORT definieren.

su - postgres
psql
alter user postgres with password 'PASSWORT';
Unter "/etc/postgresql/9.3/main" müssen nun noch zwei .conf-Datein angepasst werden.

postgresql.conf, Zeile 59, Auskommentierung entfernen und wie folgt abändern: 

listen_addresses = '*'
pg_hba.conf, Zeilen 93-95, folgende Zeile einfügen (IPv4 connections):

host all all 0.0.0.0/0 md5

3. PostGIS installieren

sudo apt-get install postgis

4. pgAdmin III installieren (auf dem Arbeitsrechner)

Eine Verbindung zur neuen PostgreSQL-Instanz aufbauen und eine neue Datenbank anlegen.
Diese könnte beispielsweise "geonetwork_NAME" heißen. Als user ist wiederum "postgres" auszuwählen (auf UTF-8 achten!).
CREATE DATABASE "geonetwork" 
WITH OWNER "postgres" 
ENCODING 'UTF8'
LC_COLLATE = 'de_DE.UTF-8'
LC_CTYPE = 'de_DE.UTF-8';

Danach muss über eine SQL-Abfrage im pgAdmin nur noch die PostGIS-Erweiterung intergriert werden:

CREATE EXTENSION postgis;

5. Geonetwork.war

Die neuste geonetwork.war Datei aus dem Verzeichnis Q:\Organisation\GI\GI2\GDI\7 Geo-IT\16 Software\Geonetwork-GeoCat (Beispiel: geonetwork-20150202.war) für das eigentliche Geonetwork verwenden und auf dem Zielrechner in den Ordner "/var/lib/tomcat7/webapps" kopieren.

Die Datei sollte nach kurzer Zeit selbstständig entpackt werden (vom tomcat7, der die .war-Datei erkennt). Der entpackte Ordner sollte der Einfachheit halber in "geonetwork" umbenannt werden.

mv geonetwork-20150202 geonetwork

6. Tomcat7 neustarten und Datenbank neustarten

service tomcat7 restart 
service postgresql restart

Konfiguration

Bevor das Geonetwork unter "localhost:8080/geonetwork" aufgerufen werden kann, müssen noch einige Datein konfiguriert werden.

1. Tomcat7, in der context.xml unter "/var/lib/tomcat7/conf/context.xml"

Im <Context> muss die Datenbankverbindung zum Geonetwork (PostgreSQL) definiert werden. Dies passiert durch das einfügen und editieren, folgender Zeilen zwischen <Context> CODE </Context>

<Resource name="jdbc/geonetwork" 
 auth="Container" 
 type="javax.sql.DataSource" 
 username="postgres" 
 password="PASSWORT" 
 factory="org.apache.commons.dbcp.BasicDataSourceFactory" 
 driverClassName="org.postgis.DriverWrapper" 
 url="jdbc:postgresql_postGIS://localhost:5432/geonetwork_NAME" 
 maxActive="10" 
 maxIdle="10" 
 removeAbandoned="true" 
 removeAbandonedTimeout="3600" 
 logAbandoned="true" 
 testOnBorrow="true" 
 defaultAutoCommit="false" 
 validationQuery="SELECT 1" 
 defaultTransactionIsolation="2" 
 accessToUnderlyingConnectionAllowed="true" 
 />

USERNAME und PASSWORT müssen natürlich angepasst werden!

2. Geonetwork

Konfigurieren von 3 Datein unter "var/lib/tomcat7/webapps/geonetwork/WEB-INF"

config.xml

Anpassungen in Zeile 140/162

<resource enabled="false">

Anpassungen in Zeile 178 (JNDI through container)

<resource enabled="true">

Anpassungen in Zeile 183/184 (NAME beachten!)

<resourceName>jdbc/geonetwork</resourceName>
<url>jdbc:postgresql_postGIS://localhost:5432/geonetwork_NAME</url>

config-overrides-sdi.xml

Die "The direct connection" - resource auskommentieren oder komplett entfernen. Als neue Verbindung die "The JDNI connection" verwenden (Auskommentierung entfernen). Außerdem MUSS die neue JDNI connection natürlich aktivier werden, daher unter <resource enabled="true">

Das Ganze sieht dann wie folgt aus:

<!-- The JNDI connection -->
<resource enabled="true">
<name>main-db</name>
<provider>jeeves.resources.dbms.JNDIPool</provider>
<config>
<context>java:/comp/env</context>
<resourceName>${resource.name}</resourceName>
<url>${db.url}</url>
<provideDataStore>true</provideDataStore>
<maxOpenPreparedStatements>300</maxOpenPreparedStatements>
</config>
</resource>

config-overrides-sdi-props.xml

Hier ist es wichtig die Zeile "<resource.name>jdbc/geonetwork_VERSION</resource.name>" einzufügen. Außerdem die URL anpassen, sowie NAME und PASSWORT!

Das Ganze sieht dann wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?>
<overrides>
<properties>
<db.user>postgres</db.user>
<db.pass>PASSWORT</db.pass>
<db.driver>org.postgis.DriverWrapper</db.driver>
<db.url>jdbc:postgresql_postGIS://localhost:5432/geonetwork_NAME</db.url>
<resource.name>jdbc/geonetwork</resource.name>
</properties>
</overrides>

3. Tomcat7 neustarten und Datenbank neustarten

service tomcat7 restart 
service postgresql restart

Harvesting mit Geonetwork

1. Proxy-Einstellungen

Über den Browser unter folgender URL auf das Web-Interface zugreifen: localhost:8080/geonetwork und mit dem Login "admin : admin" anmelden.

Unter "Administration > System Configuration" den Proxy aktivieren und als Host: gate-f.bkg eingeben. Port: 8000.

Im Feld "Ignore Host list" können noch Ausnahmen wie "localhost|FWXXX" usw. konfiguriert werden.

2. Harvesting anlegen

Unter "Administration > Harvesting Management" gibt es mehrere Möglichkeiten ein Harvesting anzulegen.

  • Catalogue Services for the Web ISO Profile 2.0
Harvesting über eine CSW-Schnittstelle.
URL-Beispiel: http://www.imis.bfs.de:80/geonetwork/srv/ger/csw
Use account: deaktivieren
Unter Privileges "All" hinzufügen und danach die 3 Haken für "All" setzen.
Save.
  • Local Filesystem Harvesting
Harvesting über einen Ordner im lokalen Dateisystem. 
Beispiel: /var/lib/tomcat7/webapps/geonetwork/METADATA/bkg (wenn der Ordner METADATA/bkg vorhanden ist und xml-Datein enthält.
Use account: deaktivieren
Unter Privileges "All" hinzufügen und danach die 3 Haken für "All" setzen.
Save.

3. Harvesten

Den angelegten Dienst auswählen (select) und mit RUN den Prozess starten. Nach Abschluss des Harvestings (Zahnrad verschwindet), kann über History die Anzahl der gesammelten Metadaten eingesehen werden.

4. Sonstiges

Bei Problemen direkt nach der Installation: Tomcat7 und PostgreSQL über die Konsole neustarten.

Fehlerhilfe

sollte der Java Heap Space nicht ausreichend groß sein, dann "CATALINA_OPTS="-Xms512M -Xmx1024M" unter /usr/share/tomcat7/bin/catalina.sh einfügen
pg_restore nur auf eine LEERE Datenbank ausführen! (z.Bsp. mit GDK-Live Dump "pg_restore -j 4 -U postgres --no-owner --no-privileges -d <DATENBANK-NAME> -Fd geonetwork_dump_im_directory_format/" unter http://pygo2go.testbed.gdi-de.org/inputs/geonetwork_dumps_gezippt/)