6

I am trying to run an containerized Elasticsearch of ELK stack on rpi3. There is no existing image on docker hub, so I am trying to build one from scratch. I used Dockerfile as base and change the base image to resin/rpi-raspbian. However, I encountered several problems:

  1. For ES 5.4.0+, ES process failed to start up due to missing libjnidispatch.so in elastic-bundled jar file (Error: Native library (com/sun/jna/linux-arm/libjnidispatch.so) not found in resource path)
  2. Therefore, I downgrade to se v5.3.2 instead. I got around jna problem and but ES still failed to bootstrap because due to runtime exception (seccomp unavailable: 'arm' architecture unsupported)

Elasticsearch log follows below. [2017-10-03T13:05:44,366][WARN ][o.e.b.JNANatives ] unable to install syscall filter: java.lang.UnsupportedOperationException: seccomp unavailable: 'arm' architecture unsupported

P.S. I already reduce heap size to 512m.

Is there anything I should do to make this happen? Thanks.

mcfongtw
  • 217
  • 2
  • 13
  • Elasticsearch runs on the JVM, so this should be helpful: https://stackoverflow.com/questions/14635999/jna-native-support-com-sun-jna-linux-arm-libjnidispatch-so-not-found-in-resou – lifeisfoo Oct 03 '17 at 11:23
  • Thanks. I found that thread earlier and helped me to narrow down the cause of the 1st faliure (v5.4.0+). There is a elastic-bundled jna.jar that does not contain libjnidispatch.so for arm based OS. Therefore, I downgrade to v.5.3.2 (current) before the customized jna took place. Then I am stuck at the 2nd problem. – mcfongtw Oct 03 '17 at 11:41
  • https://github.com/elastic/elasticsearch/issues/14337 ? – lifeisfoo Oct 03 '17 at 12:34
  • Don't think they are related. #14337 refers to a filesystem level error and throws an error 'Mount point not found'. However, my situation was ES did not pass the SystemFilter check b/c ES v5 doesn't seem to support arm arch. – mcfongtw Oct 03 '17 at 13:10

1 Answers1

7

Answering my own question in case someone also stumble on the same problem. However, any other answers are welcome!

I came across with a git repo that builds a docker image running on rpi boards. It seems the author has modified the original elasticsearch source code which adds seccomp support on ARM. The docker repo for the modified distribution can be found here.

I have ElasticSearch 2.4 successfullly running on my raspberry pi 3 board. Here is my git repo for reference

mcfongtw
  • 217
  • 2
  • 13
  • I used the ind3x/elasticsearch image, which I presume uses the same modified elasticsearch build; it is also version 2.4. However, I quickly ran into all kinds of trouble due to a bug in 2.4. Using the Java API to index documents causes "Transport handler not found" errors. Did you by chance run into this? https://discuss.elastic.co/t/upgraded-from-es2-3-5-to-2-4-0-seeing-transport-response-handler-not-found-of-id/59742/14 – dnuttle May 20 '18 at 10:28