boot2docker – Elasticsearch a max_map_count

Pokud používáte boot2docker, tak určitě narazíte při startu Elasticsearch služby na podobnou chybu:

Exception in thread "main" java.lang.RuntimeException: bootstrap checks failed
 initial heap size [268435456] not equal to maximum heap size [1073741824]; this can cause resize pauses and prevents mlockall from locking the entire heap
 max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
 at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:93)
 at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:66)
 at org.elasticsearch.bootstrap.Bootstrap$5.validateNodeBeforeAcceptingRequests(Bootstrap.java:191)
 at org.elasticsearch.node.Node.start(Node.java:323)
 at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:206)
 at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:269)
 at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:111)
 at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:106)
 at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:91)
 at org.elasticsearch.cli.Command.main(Command.java:53)
 at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74)
 at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:67)
 Refer to the log for complete error details.

Řešení:
Stačí upravit /var/lib/boot2docker/profile přídáním tohoto řádku na konec souboru a následně udělat reboot.

 # Update the vm.max_map_count setting
 sysctl -w vm.max_map_count=262144

Elasticsearch docker container na Ubuntu 16.04

Pokud používáte sebp/elk image, můžete se setkat s chybou

2017-04-05T20:57:53,130][ERROR][o.e.b.Bootstrap          ] [IMZwJd9] node validation exception
bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

Řešení:

sudo sysctl -w vm.max_map_count=262144

nebo

echo 262144 | sudo tee /proc/sys/vm/max_map_count

Permanentní nastavení:

Do /etc/sysctl.conf přidáme parametr

 vm.max_map_count=1048575

Poté je nutné restartovat server nebo pustit

sysctl -p

.

http://elk-docker.readthedocs.io/#troubleshooting

 

Docker na Ubuntu 16.04

Pro rozběhnutí Docker na Ubuntu, lze bez problémů postupovat podle oficiální dokumentace.

https://docs.docker.com/engine/installation/linux/ubuntu/#install-using-the-repository

Pro moje potřeby jsem se nepouštěl do testování trial verze Docker EE, ale rovnou zůstal u Docker CE.

Po úspěšné instalaci jsem, pak ještě nastavil prostředí Ubuntu pro běh Docker jako non-root user. Opět jsem postupoval podle oficiální dokumentace.

https://docs.docker.com/engine/installation/linux/linux-postinstall/

A nezapomenout restartovat stroj!

Git pomocné skripty

Pro zjednodušení práce s více git repozitáři v jedné složce lze použít tyto skripty v Linux prostředí.

Git pull ve všech podsložkách v maximální hloubce 1.

find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && git pull" \;

Git fetch

find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && git fetch --all" \;

Výpis aktuálních branch v jednotlivých podsložkách.

find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && echo -e '\033[0;31m {} \033[0m' && git branch | grep \* " \;