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

 

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 \* " \;

Apache redirect HTTP na HTTPS

Do sekce pro virtualhost port 80 (<VirtualHost *:80>) přidejte:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Debugování NodeJS ve Vagrantu

Do VagrantFile je nutné přidat konfiguraci forwardingu portu.

config.vm.network :forwarded_port, host: 5858, guest: 5858

Pro samotné debugování je nutné nainstalovat globálně node-inspector.

npm install -g node-inspector

Před spuštěním aplikace v debug modu pustíme:

node-inspector --web-port 9000

Pak už jen stačí pustit naši aplikaci v –debug modu. Debugger je pak dostupný na ip adresse vagrantu. IP adresu vagrantu zjistíme pomocí příkazu ip addr. Nejlepší prohlížeč pro debug je Chrome.

http://ip_addr:9000/?port=5858

node --debug app.js