Sto tentando di eseguire uno stack ELK utilizzando Docker. Ho trovato docker-elk che ha già configurato la configurazione per me, utilizzando docker-compose
.Come installare la directory host scrivibile dal contenitore?
Vorrei memorizzare i dati elasticsearch sulla macchina host anziché su un container. Come da README Docker-alci, ho aggiunto una sezione volumes
linea per elasticsearch
s' di docker-compose.yml
:
elasticsearch:
image: elasticsearch:latest
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "9200"
- "9300"
volumes:
- ../../env/elasticsearch:/usr/share/elasticsearch/data
Tuttavia, quando corro docker-compose up
ottengo:
$ docker-compose up
Starting dev_elasticsearch_1
Starting dev_logstash_1
Starting dev_kibana_1
Attaching to dev_elasticsearch_1, dev_logstash_1, dev_kibana_1
kibana_1 | Stalling for Elasticsearch
elasticsearch_1 | [2016-03-09 00:23:35,193][WARN ][bootstrap ] unable to install syscall filter: seccomp unavailable: your kernel is buggy and you should upgrade
elasticsearch_1 | Exception in thread "main" java.lang.IllegalStateException: Unable to access 'path.data' (/usr/share/elasticsearch/data/elasticsearch)
elasticsearch_1 | Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/elasticsearch
elasticsearch_1 | at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
elasticsearch_1 | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
elasticsearch_1 | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
... etc ...
Guardando in ../../env
, la directory elasticsearch
è stato infatti creato, ma era vuoto. Se creo ../../env/elasticsearch/elasticsearch
, viene visualizzato un errore di accesso per /usr/share/elasticsearch/data/elasticsearch/nodes
. Se creo /nodes
, viene visualizzato un errore per /nodes/0
, ecc.
In breve, sembra che il contenitore non disponga delle autorizzazioni di scrittura sulla directory.
Come ottengo avere i permessi di scrittura? Ho provato chmod a+wx ../../env/elasticsearch
, e poi riesce a creare la prossima directory, ma quella directory ha il permesso drwxr-xr-x
e si blocca di nuovo.
Non mi piace l'idea di dover eseguire questo come root.
Qual è l'output di 'finestra mobile-run composizione --rm elasticsearch stat -c "% U% G"/ usr/share/elasticsearch/dati '? – kojiro
@kojiro: ricevo il messaggio 'UNKNOWN dello staff ' – Claudiu