Skip to content

Commit

Permalink
Added elasticsearch app
Browse files Browse the repository at this point in the history
  • Loading branch information
wkozaczuk committed Jun 16, 2018
1 parent 832f11f commit 8a4f369
Show file tree
Hide file tree
Showing 6 changed files with 242 additions and 0 deletions.
8 changes: 8 additions & 0 deletions apps/elasticsearch/assets/BootstrapChecks.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
191c191
< checks.add(fileDescriptorCheck);
---
> //checks.add(fileDescriptorCheck);
203c203
< checks.add(new MaxMapCountCheck());
---
> //checks.add(new MaxMapCountCheck());
13 changes: 13 additions & 0 deletions apps/elasticsearch/assets/Natives.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
64,68c64,69
< if (!JNA_AVAILABLE) {
< logger.warn("cannot check if running as root because JNA is not available");
< return false;
< }
< return JNANatives.definitelyRunningAsRoot();
---
> //if (!JNA_AVAILABLE) {
> //// logger.warn("cannot check if running as root because JNA is not available");
> //// return false;
> ////}
> ////return JNANatives.definitelyRunningAsRoot();
> return false;
96 changes: 96 additions & 0 deletions apps/elasticsearch/assets/config/elasticsearch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
# Before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please see the documentation for further information on configuration options:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
# cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
# node.name: node-1
#
# Add custom attributes to the node:
#
# node.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
# path.data: /path/to/data
#
# Path to log files:
#
# path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.mlockall: false
#bootstrap.ctrlhandler: false
bootstrap.system_call_filter: false
#
# Make sure that the `ES_HEAP_SIZE` environment variable is set to about half the memory
# available on the system and that the owner of the process is allowed to use this limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
#
# Set a custom port for HTTP:
#
# http.port: 9200
#
# For more information, see the documentation at:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
# discovery.zen.ping.unicast.hosts: ["host1", "host2"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
#
# discovery.zen.minimum_master_nodes: 3
#
# For more information, see the documentation at:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html>
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
# gateway.recover_after_nodes: 3
#
# For more information, see the documentation at:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html>
#
# ---------------------------------- Various -----------------------------------
#
# Disable starting multiple nodes on a single system:
#
# node.max_local_storage_nodes: 1
#
# Require explicit names when deleting indices:
#
# action.destructive_requires_name: true
85 changes: 85 additions & 0 deletions apps/elasticsearch/assets/config/logging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# you can override this using by setting a system property, for example -Des.logger.level=DEBUG
es.logger.level: INFO
rootLogger: ${es.logger.level}, console, file
logger:
# log action execution errors for easier debugging
action: DEBUG

# deprecation logging, turn to DEBUG to see them
deprecation: INFO, deprecation_log_file

# reduce the logging for aws, too much is logged under the default INFO
com.amazonaws: WARN
# aws will try to do some sketchy JMX stuff, but its not needed.
com.amazonaws.jmx.SdkMBeanRegistrySupport: ERROR
com.amazonaws.metrics.AwsSdkMetrics: ERROR

org.apache.http: INFO

# gateway
#gateway: DEBUG
#index.gateway: DEBUG

# peer shard recovery
#indices.recovery: DEBUG

# discovery
#discovery: TRACE

index.search.slowlog: TRACE, index_search_slow_log_file
index.indexing.slowlog: TRACE, index_indexing_slow_log_file

additivity:
index.search.slowlog: false
index.indexing.slowlog: false
deprecation: false

appender:
console:
type: console
layout:
type: consolePattern
conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"

file:
type: dailyRollingFile
file: ${path.logs}/${cluster.name}.log
datePattern: "'.'yyyy-MM-dd"
layout:
type: pattern
conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %.10000m%n"

# Use the following log4j-extras RollingFileAppender to enable gzip compression of log files.
# For more information see https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/rolling/RollingFileAppender.html
#file:
#type: extrasRollingFile
#file: ${path.logs}/${cluster.name}.log
#rollingPolicy: timeBased
#rollingPolicy.FileNamePattern: ${path.logs}/${cluster.name}.log.%d{yyyy-MM-dd}.gz
#layout:
#type: pattern
#conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"

deprecation_log_file:
type: dailyRollingFile
file: ${path.logs}/${cluster.name}_deprecation.log
datePattern: "'.'yyyy-MM-dd"
layout:
type: pattern
conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"

index_search_slow_log_file:
type: dailyRollingFile
file: ${path.logs}/${cluster.name}_index_search_slowlog.log
datePattern: "'.'yyyy-MM-dd"
layout:
type: pattern
conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"

index_indexing_slow_log_file:
type: dailyRollingFile
file: ${path.logs}/${cluster.name}_index_indexing_slowlog.log
datePattern: "'.'yyyy-MM-dd"
layout:
type: pattern
conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
28 changes: 28 additions & 0 deletions apps/elasticsearch/fetch.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/bash

VERSION="6.3.0"
NAME="elasticsearch"
DIR="${NAME}-${VERSION}"
TARBALL="${NAME}-oss-${VERSION}.tar.gz"
URL="https://artifacts.elastic.co/downloads/elasticsearch/${TARBALL}"

mkdir -p ./work
wget -c -O ./work/${TARBALL} ${URL}
tar -C ./work -xf work/${TARBALL}
mv ./work/${DIR} ./work/$NAME
rm -rf ./work/$NAME/bin
find ./assets/config -type f -exec cp {} ./work/${NAME}/config/. \;

wget -O ./work/Natives.java https://raw.githubusercontent.com/elastic/elasticsearch/6.3/server/src/main/java/org/elasticsearch/bootstrap/Natives.java
patch ./work/Natives.java ./assets/Natives.patch
wget -O ./work/BootstrapChecks.java https://raw.githubusercontent.com/elastic/elasticsearch/6.3/server/src/main/java/org/elasticsearch/bootstrap/BootstrapChecks.java
patch ./work/BootstrapChecks.java ./assets/BootstrapChecks.patch

CLASSPATH=""
for jar in ./work/elasticsearch/lib/*
do
CLASSPATH="$CLASSPATH:$jar"
done

javac -d ./work -cp $CLASSPATH work/*.java
jar uf ./work/elasticsearch/lib/elasticsearch-${VERSION}.jar -C ./work org
12 changes: 12 additions & 0 deletions apps/elasticsearch/module.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
default = api.run(
' --cwd=/elasticsearch /java.so '
' -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m '
' -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow '
' -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 '
' -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -XX:+HeapDumpOnOutOfMemoryError '
' -Des.enforce.bootstrap.checks=true '
' -Des.path.home=/elasticsearch '
' -Des.path.conf=/elasticsearch/config '
' -Des.distribution.flavor=oss -Des.distribution.type=tar '
' -cp /elasticsearch/lib/* '
' org.elasticsearch.bootstrap.Elasticsearch' )

0 comments on commit 8a4f369

Please sign in to comment.