diff --git a/elasticsearch/Dockerfile b/elasticsearch/Dockerfile index 08f772f3..1a41604b 100644 --- a/elasticsearch/Dockerfile +++ b/elasticsearch/Dockerfile @@ -7,6 +7,8 @@ ENV ALERTS_SHARDS="1" \ ENV API_USER="foo" \ API_PASS="bar" +ENV XPACK_ML="true" + ENV TEMPLATE_VERSION=v3.8.2 ADD https://raw.githubusercontent.com/wazuh/wazuh/$TEMPLATE_VERSION/extensions/elasticsearch/wazuh-elastic6-template-alerts.json /usr/share/elasticsearch/config diff --git a/elasticsearch/config/entrypoint.sh b/elasticsearch/config/entrypoint.sh index 525549cd..2c394cbd 100644 --- a/elasticsearch/config/entrypoint.sh +++ b/elasticsearch/config/entrypoint.sh @@ -19,6 +19,28 @@ run_as_other_user_if_needed() { fi } + +#Disabling xpack features + +elasticsearch_config_file="/usr/share/elasticsearch/config/elasticsearch.yml" +if grep -Fq "#xpack features" "$elasticsearch_config_file"; +then + declare -A CONFIG_MAP=( + [xpack.ml.enabled]=$XPACK_ML + ) + for i in "${!CONFIG_MAP[@]}" + do + if [ "${CONFIG_MAP[$i]}" != "" ]; then + sed -i 's/.'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $elasticsearch_config_file + fi + done +else + echo " +#xpack features +xpack.ml.enabled: $XPACK_ML + " >> $elasticsearch_config_file +fi + # Run load settings script. ./load_settings.sh & diff --git a/elasticsearch/config/load_settings.sh b/elasticsearch/config/load_settings.sh index 282d8b0d..a196e766 100644 --- a/elasticsearch/config/load_settings.sh +++ b/elasticsearch/config/load_settings.sh @@ -68,4 +68,5 @@ curl -XPUT "$el_url/_cluster/settings" -H 'Content-Type: application/json' -d' } ' + echo "Elasticsearch is ready." diff --git a/kibana/Dockerfile b/kibana/Dockerfile index 6832f55d..60e5d3a9 100644 --- a/kibana/Dockerfile +++ b/kibana/Dockerfile @@ -39,7 +39,14 @@ ENV PATTERN="" \ WAZUH_MONITORING_FREQUENCY="" \ WAZUH_MONITORING_SHARDS="" \ WAZUH_MONITORING_REPLICAS="" \ - ADMIN_PRIVILEGES="" + ADMIN_PRIVILEGES=""\ + XPACK_CANVAS="true"\ + XPACK_LOGS="true"\ + XPACK_INFRA="true"\ + XPACK_ML="true"\ + XPACK_DEVTOOLS="true"\ + XPACK_MONITORING="true"\ + XPACK_APM="true" COPY --chown=kibana:kibana ./config/wazuh_app_config.sh ./ @@ -50,5 +57,9 @@ COPY --chown=kibana:kibana ./config/kibana_settings.sh ./ RUN chmod +x ./kibana_settings.sh +COPY --chown=kibana:kibana ./config/xpack_config.sh ./ + +RUN chmod +x ./xpack_config.sh + ENTRYPOINT /entrypoint.sh diff --git a/kibana/config/entrypoint.sh b/kibana/config/entrypoint.sh index e34029b7..a50c3d11 100644 --- a/kibana/config/entrypoint.sh +++ b/kibana/config/entrypoint.sh @@ -21,6 +21,10 @@ done sleep 5 +./xpack_config.sh + ./kibana_settings.sh & + + /usr/local/bin/kibana-docker diff --git a/kibana/config/kibana_settings.sh b/kibana/config/kibana_settings.sh index a01caf8d..29f993e1 100644 --- a/kibana/config/kibana_settings.sh +++ b/kibana/config/kibana_settings.sh @@ -47,4 +47,4 @@ sleep 5 # Do not ask user to help providing usage statistics to Elastic curl -POST "http://kibana:5601/api/telemetry/v1/optIn" -H "Content-Type: application/json" -H "kbn-xsrf: true" -d '{"enabled":false}' -echo "End settings" \ No newline at end of file +echo "End settings" diff --git a/kibana/config/xpack_config.sh b/kibana/config/xpack_config.sh new file mode 100644 index 00000000..0dbd5ce8 --- /dev/null +++ b/kibana/config/xpack_config.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +kibana_config_file="/usr/share/kibana/config/kibana.yml" +if grep -Fq "#xpack features" "$kibana_config_file"; +then + declare -A CONFIG_MAP=( + [xpack.apm.ui.enabled]=$XPACK_APM + [xpack.grokdebugger.enabled]=$XPACK_DEVTOOLS + [xpack.searchprofiler.enabled]=$XPACK_DEVTOOLS + [xpack.ml.enabled]=$XPACK_ML + [xpack.canvas.enabled]=$XPACK_CANVAS + [xpack.logstash.enabled]=$XPACK_LOGS + [xpack.infra.enabled]=$XPACK_INFRA + [xpack.monitoring.enabled]=$XPACK_MONITORING + [console.enabled]=$XPACK_DEVTOOLS + ) + for i in "${!CONFIG_MAP[@]}" + do + if [ "${CONFIG_MAP[$i]}" != "" ]; then + sed -i 's/.'"$i"'.*/'"$i"': '"${CONFIG_MAP[$i]}"'/' $kibana_config_file + fi + done +else + echo " +#xpack features +xpack.apm.ui.enabled: $XPACK_APM +xpack.grokdebugger.enabled: $XPACK_DEVTOOLS +xpack.searchprofiler.enabled: $XPACK_DEVTOOLS +xpack.ml.enabled: $XPACK_ML +xpack.canvas.enabled: $XPACK_CANVAS +xpack.logstash.enabled: $XPACK_LOGS +xpack.infra.enabled: $XPACK_INFRA +xpack.monitoring.enabled: $XPACK_MONITORING +console.enabled: $XPACK_DEVTOOLS +" >> $kibana_config_file +fi