13.1. Technická dokumentace
13.1.1. Instalace
Zdrojový kód je kompilován pomocí Apache Maven: mvn clean package -DskipTests
Zkompilovaná aplikace je zabalena v spustitelném .jar souboru.
Závislosti:
PostgreSQL
Java 11+ (OpenJDK)
Apache
Elasticsearch 6.8.2
Elasticsearch doporučujeme instalovat standartně přes Správce balíčků (package manager), pokud je toto z nějakého důvodu nevyhovující, přikládáme alternativní postup instalace.
Struktura
Struktura je aktualně nasledující:
drwxrwsr-x 2 inqool elasticsearch 178 May 10 22:50 config
drwxrwsr-x 4 elasticsearch elasticsearch 34 May 10 22:47 data
drwxrwsr-x 6 inqool elasticsearch 117 May 10 22:37 elasticsearch-6.8.2
lrwxrwxrwx 1 elasticsearch elasticsearch 20 May 10 22:46 elasticsearch-current -> elasticsearch-6.8.2/
drwxrwsr-x 2 elasticsearch elasticsearch 6 May 10 22:46 run
Jedná se o variantu ve které jsou logy, data a konfigurace odděleně od binarních dat za účelem jednodušších aktualizací a vyšší bezpečnosti. Právo zápisu do binarních dat a konfigurací má pouze uživatel inqool.
Instalace (CentOS 7)
yum install epel-release
yum install java-11-openjdk
cd /opt
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.2.tar.gz
tar -xf elasticsearch-6.8.2.tar.gz
elasticsearch-6.8.2/bin/elasticsearch-plugin install analysis-icu
mkdir config data logs run
ln -s elasticsearch-6.8.2 elasticsearch-current
wget https://raw.githubusercontent.com/elastic/elasticsearch/master/distribution/packages/src/common/systemd/elasticsearch.service
edit elasticsearch.service as you need
Environment=ES_HOME=/usr/share/elasticsearch
Environment=ES_PATH_CONF=${path.conf}
Environment=PID_DIR=/var/run/elasticsearch
WorkingDirectory=/usr/share/elasticsearch
User=elasticsearch
Group=elasticsearch
ExecStart=/opt/elasticsearch/elasticsearch-current/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet
cp elasticsearch.service /etc/systemd/system
systemctl daemon-reload
edit /opt/elasticsearch/config/elasticsearch.yml
path.logs: /opt/elasticsearch/logs
path.data: /opt/elasticsearch/data/index
edit /opt/elasticsearch/config/jvm.options
-XX:ErrorFile=/opt/elasticsearch/logs/hs_err_pid%p.log
8:-Xloggc:/opt/elasticsearch/logs/gc.log
9-:-
Xlog:gc*,gc+age=trace,safepoint:file=/opt/elasticsearch/logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m
systemctl start elasticsearch
systemctl enable elasticsearch
Spuštění aplikace z příkazové řádky
Restartování aplikace spuštěné přímo z příkazové řádky:
pomocí ps xw nalézt PID JAVA procesu badatelna.jar
kill <PID>
nohup java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 badatelna.jar $> badatelna.log
agentlib:jdwp lze vypustit, slouží pro možnost remote debuggingu
pracovní adresář je automaticky adresář z nějž je aplikace spuštěna, lze změnit přepínačem -Duser.dir={cesta}
Spuštění aplikace jako služby
badatelna.service - vzorový konfigurační soubor pro systemd službu
[Unit]
Description=Badatelna
After=syslog.target
[Service]
Type=simple
User=ais
Group=ais
WorkingDirectory=/opt/ais/badatelna
ExecStart=/opt/ais/badatelna/badatelna.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
badatelna.conf - konfigurační soubor systemd služby - vložit do pracovního adresáře aplikace
JAVA_OPTS="-Xmx2g -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
13.1.2. Konfigurace
Systém
Aplikace je konfigurovatelná skrze soubor application.yml který se nachází v pracovním adresáři. Konfigurační hodnoty v tomto souboru překrývají defaultní konfigurační hodnoty v souboru application.yml nacházejícím se ve složce src/main/resources. Po přepsání souboru je pro projevení změn nutné aplikaci restartovat. Při konfigurování atributů cest na souborovém systému lze zadat relativní cestu vzhledem k pracovnímu adresáři.
Cron používaný aplikací musí být ve formátu: second, minute, hour, day of month, month, day(s) of week.
13.1.3. Databáze
Všechny entity používají UUID.
Tabulky jsou generovány při prvním spuštění aplikace.
Aplikačnímu serveru musí být povolen přístup k DB s přihlašováním typu “md5”
13.1.4. Instalační balíček
Pro instalaci je dodán samostatný instalační balíček Badatelny.
Databáze je iniciována automaticky při prvním startu aplikace.
Jsou dodány tyto přílohy:
badatelna.jar - zkompilovaná aplikace
application.yml - konfigurační soubor překrývající defaultní konfiguraci - vložit do pracovního adresáře aplikace. Jedná se o vzorový soubor, jednotlivé konfigurační hodnoty může být nutné upravit dle konkrétního prostředí.
reportTemplates.zip - soubory se šablonami pro generování PDF dokumentů, nutné rozbalit do složky shodné s hodnotou v application.yml files.templatesPath, v případě hodnoty ../dataspace/archival tedy musí být .jrxml šablony umístěné v ../dataspace/archival/reportTemplates
httpd.conf - hlavní konfigurační soubor Apache
conf.d.zip - další konfigurační soubory Apache
web-build.zip - build GUI aplikace - rozbalit a nakopírovat obsah složky „build“ do /inet/www/html-ais/badatelna (dle httpd konfigurace)
.htaccess - konfigurační soubor Apache, který je potřebné umístit do složky kde byl rozbalený web-build.zip (předvoleně tedy do /inet/www/html-ais/badatelna)
13.1.5. Reindex
Z uživatelského rozhraní
Reindexace je možná z administrační části badatelny selektivně pro vybrané entity na url ${base-url}/badatelna/admin/reindex (Nástroje vývojáře->Skripty->Reindex API). Reindex probíhá synchronně, pro entity s mnoha záznamami je tedy možné, že request timeoutne dříve než reindex skončí, na jeho provedení to ale vliv nemá.
Z příkazové řádky
Kompletní reindex je možné spustit POST requestem na URL http://localhost:8080/badatelna/api/admin/index s HTTP hlavičky
X-SSO-Username=99673495` (casId libovolného správce)
authenticationlevel=urn:cuni:authenticationlevel:basic
např. curl -X POST -H ‚X-SSO-Username: 99673495‘ -H ‚authenticationlevel: urn:cuni:authenticationlevel:basic‘ ‚http://localhost:8080/badatelna/api/admin/index‘