Skip to content
Snippets Groups Projects
Commit 4c41ac24 authored by root's avatar root
Browse files

replace elasticsearch/odfe/kibana with opensearch and opensearch dashboards

parent 0926febe
Branches
Tags
1 merge request!5Migrate from ODFE to OpenSearch
Showing
with 77 additions and 118 deletions
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
### Nifi ports - End ### ### Nifi ports - End ###
### ODFE - Start ### ### OPENSEARCH - Start ###
#172.22.0.0/16 #172.22.0.0/16
### ODFE - End ### ### OPENSEARCH - End ###
### KeyCloak - Start ### ### KeyCloak - Start ###
......
...@@ -11,7 +11,7 @@ wait () { ...@@ -11,7 +11,7 @@ wait () {
done done
} }
echo "By default, all services except HAProxy stats and ODFE are public!" echo "By default, all services except HAProxy stats and OPENSEARCH are public!"
echo "The configuration file: access.ips is used to configure external access to the services" echo "The configuration file: access.ips is used to configure external access to the services"
echo "Do you want to modify/edit this file now?" echo "Do you want to modify/edit this file now?"
read -p "(yes|no) [no] : " MODIFY read -p "(yes|no) [no] : " MODIFY
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
awk '/HAProxy Stats - Start/{flag=1; next} /HAProxy Stats - End/{flag=0} flag' access.ips > roles/haproxy/files/stats_whitelist.lst awk '/HAProxy Stats - Start/{flag=1; next} /HAProxy Stats - End/{flag=0} flag' access.ips > roles/haproxy/files/stats_whitelist.lst
awk '/Nifi Management - Start/{flag=1; next} /Nifi Management - End/{flag=0} flag' access.ips > roles/haproxy/files/nifi_whitelist.lst awk '/Nifi Management - Start/{flag=1; next} /Nifi Management - End/{flag=0} flag' access.ips > roles/haproxy/files/nifi_whitelist.lst
awk '/Nifi ports - Start/{flag=1; next} /Nifi ports - End/{flag=0} flag' access.ips > roles/haproxy/files/nifiports_whitelist.lst awk '/Nifi ports - Start/{flag=1; next} /Nifi ports - End/{flag=0} flag' access.ips > roles/haproxy/files/nifiports_whitelist.lst
awk '/ODFE - Start/{flag=1; next} /ODFE - End/{flag=0} flag' access.ips > roles/haproxy/files/odfe_whitelist.lst awk '/OPENSEARCH - Start/{flag=1; next} /OPENSEARCH - End/{flag=0} flag' access.ips > roles/haproxy/files/opensearch-dashboards_whitelist.lst
awk '/KeyCloak - Start/{flag=1; next} /KeyCloak - End/{flag=0} flag' access.ips > roles/haproxy/files/keycloak_whitelist.lst awk '/KeyCloak - Start/{flag=1; next} /KeyCloak - End/{flag=0} flag' access.ips > roles/haproxy/files/keycloak_whitelist.lst
awk '/TheHive - Start/{flag=1; next} /TheHive - End/{flag=0} flag' access.ips > roles/haproxy/files/thehive_whitelist.lst awk '/TheHive - Start/{flag=1; next} /TheHive - End/{flag=0} flag' access.ips > roles/haproxy/files/thehive_whitelist.lst
awk '/Cortex - Start/{flag=1; next} /Cortex - End/{flag=0} flag' access.ips > roles/haproxy/files/cortex_whitelist.lst awk '/Cortex - Start/{flag=1; next} /Cortex - End/{flag=0} flag' access.ips > roles/haproxy/files/cortex_whitelist.lst
......
...@@ -12,8 +12,6 @@ repo: soctools ...@@ -12,8 +12,6 @@ repo: soctools
version: 7 version: 7
suffix: a20201004 suffix: a20201004
kibana_plugins_version: "v0.7"
THEHIVE_KIBANA_USER: THEHIVE_KIBANA_USER:
username: "kibana" username: "kibana"
name: "Kibana" name: "Kibana"
...@@ -69,15 +67,15 @@ sysctlconfig: ...@@ -69,15 +67,15 @@ sysctlconfig:
- { key: "vm.max_map_count" , val: "524288" } - { key: "vm.max_map_count" , val: "524288" }
nifi_javamem: "1500m" nifi_javamem: "1500m"
odfe_javamem: "512m" opensearch_javamem: "512m"
nifi_version: 1.12.1 nifi_version: 1.12.1
nifi_repo: "https://archive.apache.org/dist" nifi_repo: "https://archive.apache.org/dist"
ca_cn: "SOCTOOLS-CA" ca_cn: "SOCTOOLS-CA"
odfees_img: "{{repo}}/odfees:{{version}}{{suffix}}" opensearches_img: "{{repo}}/opensearches:{{version}}{{suffix}}"
odfekibana_img: "{{repo}}/odfekibana:{{version}}{{suffix}}" opensearchdashboards_img: "{{repo}}/opensearch-dashboards:{{version}}{{suffix}}"
#elk_version: "oss-7.6.1" #elk_version: "oss-7.6.1"
elk_version: "oss-7.4.2" elk_version: "oss-7.4.2"
#odfeplugin_version: "1.7.0.0" #odfeplugin_version: "1.7.0.0"
...@@ -89,6 +87,7 @@ openid_subjkey: preferred_username ...@@ -89,6 +87,7 @@ openid_subjkey: preferred_username
keycloak_img: "{{repo}}/keycloak:{{version}}{{suffix}}" keycloak_img: "{{repo}}/keycloak:{{version}}{{suffix}}"
opensearch_version: "2.3.0"
elastic_username: "admin" elastic_username: "admin"
misp_dbname: "mispdb" misp_dbname: "mispdb"
...@@ -100,10 +99,9 @@ services: ...@@ -100,10 +99,9 @@ services:
- openjdk - openjdk
- zookeeper - zookeeper
- nifi - nifi
- elasticsearch - opensearch
- kibana - opensearches
- odfees - opensearch-dashboards
- odfekibana
- keycloak - keycloak
- misp - misp
- cassandra - cassandra
......
...@@ -21,7 +21,7 @@ soctools_users: ...@@ -21,7 +21,7 @@ soctools_users:
# DN: "CN=soc_admin_2" # DN: "CN=soc_admin_2"
# CN: "soc_admin_2" # CN: "soc_admin_2"
# list of users(username) from previous step which will recive admin roles in ODFE. (Minimum one user is required) # list of users(username) from previous step which will recive admin roles in OPENSEARCH. (Minimum one user is required)
ODFE_ADMIN_USERS: ODFE_ADMIN_USERS:
- soc_admin - soc_admin
# - soc_admin_2 # - soc_admin_2
......
...@@ -40,15 +40,15 @@ ...@@ -40,15 +40,15 @@
roles: roles:
- cortex - cortex
- name: Reconfigure and start OpenDistro for Elasticsearch - name: Reconfigure and start opensearch
hosts: odfeescontainers hosts: opensearchescontainers
roles: roles:
- odfees - opensearches
- name: Reconfigure and start OpenDistro Kibana for Elasticsearch - name: Reconfigure and start opensearch Kibana
hosts: odfekibanacontainers hosts: opensearchkibanacontainers
roles: roles:
- odfekibana - opensearch-dashboards
- name: Install and run filebeat - name: Install and run filebeat
hosts: filebeat hosts: filebeat
......
[odfeescontainers]
soctools-odfe-1 ansible_connection=docker
soctools-odfe-2 ansible_connection=docker
[odfekibanacontainers]
soctools-kibana ansible_connection=docker
[opensearchescontainers]
soctools-opensearch-1 ansible_connection=docker
soctools-opensearch-2 ansible_connection=docker
[opensearchdashboardscontainers]
soctools-opensearch-dashboards ansible_connection=docker
...@@ -25,15 +25,15 @@ ...@@ -25,15 +25,15 @@
roles: roles:
- nifi - nifi
- name: Restart services for OpenDistro for Elasticsearch - name: Restart services for opensearch
hosts: odfeescontainers hosts: opensearchescontainers
roles: roles:
- odfees - opensearches
- name: Restart services for OpenDistro Kibana for Elasticsearch - name: Restart services for opensearch Kibana
hosts: odfekibanacontainers hosts: opensearchdashboardscontainers
roles: roles:
- odfekibana - opensearch-dashboards
- name: Restart services for MISP - name: Restart services for MISP
hosts: mispcontainers hosts: mispcontainers
......
...@@ -16,18 +16,18 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface ...@@ -16,18 +16,18 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl] [supervisorctl]
serverurl=unix:///tmp/supervisor.sock serverurl=unix:///tmp/supervisor.sock
[program:odfe] [program:opensearch-dashboards]
user=elasticsearch user=dashboards
group=elasticsearch group=dashboards
directory=/usr/share/elasticsearch directory=/opt/opensearch-dashboards
command=sh -c "/usr/share/elasticsearch/bin/elasticsearch" command=sh -c "/opt/opensearch-dashboards/bin/opensearch-dashboards -c /opt/opensearch-dashboards/config/opensearch_dashboards.yml"
autostart=false autostart=false
autorestart=true autorestart=true
logfile_maxbytes=10MB logfile_maxbytes=10MB
stdout_logfile_backups = 0 stdout_logfile_backups = 0
stderr_logfile_backups = 0 stderr_logfile_backups = 0
stderr_logfile = /var/log/supervisor/elasticsearch_stderr.log stderr_logfile = /var/log/supervisor/opensearch-dashboards_stderr.log
stdout_logfile = /var/log/supervisor/elasticsearch_stdout.log stdout_logfile = /var/log/supervisor/opensearch-dashboards_stdout.log
[program:filebeat] [program:filebeat]
directory=/opt/filebeat directory=/opt/filebeat
......
...@@ -16,18 +16,18 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface ...@@ -16,18 +16,18 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl] [supervisorctl]
serverurl=unix:///tmp/supervisor.sock serverurl=unix:///tmp/supervisor.sock
[program:kibana] [program:opensearch]
user=kibana user=opensearch
group=kibana group=opensearch
directory=/usr/share/kibana directory=/opt/opensearch
command=sh -c "/usr/share/kibana/bin/kibana -c /usr/share/kibana/config/kibana.yml" command=sh -c "/opt/opensearch/bin/opensearch"
autostart=false autostart=false
autorestart=true autorestart=true
logfile_maxbytes=10MB logfile_maxbytes=10MB
stdout_logfile_backups = 0 stdout_logfile_backups = 0
stderr_logfile_backups = 0 stderr_logfile_backups = 0
stderr_logfile = /var/log/supervisor/kibana_stderr.log stderr_logfile = /var/log/supervisor/opensearch_stderr.log
stdout_logfile = /var/log/supervisor/kibana_stdout.log stdout_logfile = /var/log/supervisor/opensearch_stdout.log
[program:filebeat] [program:filebeat]
directory=/opt/filebeat directory=/opt/filebeat
......
--- ---
- name: Check for CentOS image
docker_image_info:
name: "{{repo}}/centos:{{version}}{{suffix}}"
register: centosimg
- name: Assert CentOS image
assert:
that: centosimg.images | length == 0
fail_msg: "CentOS image already exists"
- name: Create etc tree in build directory - name: Create etc tree in build directory
file: file:
path: '{{ temp_root}}/{{ item.path }}' path: '{{ temp_root}}/{{ item.path }}'
......
...@@ -5,7 +5,15 @@ ...@@ -5,7 +5,15 @@
- "'CHANGE_ME' not in soctoolsproxy" - "'CHANGE_ME' not in soctoolsproxy"
fail_msg: "Review *all* settings in group_vars/all/main.yml" fail_msg: "Review *all* settings in group_vars/all/main.yml"
- include: centos.yml # Create CentOS image if not created yet
- name: Check for CentOS image
docker_image_info:
name: "{{repo}}/centos:{{version}}{{suffix}}"
register: centosimg
- name: Include tasks to create CentOS image
include_tasks: centos.yml
when: centosimg.images | length == 0
- name: Create main build dir - name: Create main build dir
file: file:
......
FROM {{repo}}/openjdk:{{version}}{{suffix}}
ENV PATH="/usr/share/elasticsearch/bin:${PATH}"
RUN groupadd -g 1000 elasticsearch && \
adduser -u 1000 -g 1000 -d /usr/share/elasticsearch elasticsearch
WORKDIR /usr/share/elasticsearch
RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \
rpm -Uvh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{{elk_version}}-no-jdk-x86_64.rpm && \
cp -a /etc/elasticsearch/ /usr/share/elasticsearch/config/ && \
chown -R elasticsearch /usr/share/elasticsearch/config && \
mkdir -p /usr/share/elasticsearch/data && \
chown -R elasticsearch /usr/share/elasticsearch/data && \
sed -i -e 's,ES_PATH_CONF=/etc/elasticsearch,ES_PATH_CONF=/usr/share/elasticsearch/config,g' /etc/sysconfig/elasticsearch
RUN echo 'elasticsearch ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
FROM {{repo}}/centos:{{version}}{{suffix}}
RUN yum install -y supervisor
RUN yum clean all
ENV PATH="/usr/share/kibana/bin:${PATH}"
RUN groupadd -g 1000 kibana && \
adduser -u 1000 -g 1000 -d /usr/share/kibana kibana
WORKDIR /usr/share/kibana
RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \
rpm -Uvh https://artifacts.elastic.co/downloads/kibana/kibana-{{elk_version}}-x86_64.rpm && \
cp -a /etc/kibana/ /usr/share/kibana/config/ && \
chown -R kibana /usr/share/kibana/config/
RUN echo 'kibana ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
COPY kibanasupervisord.conf /etc/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
FROM {{repo}}/elasticsearch:{{version}}{{suffix}}
ENV PATH="/usr/share/elasticsearch/bin:${PATH}"
USER root
WORKDIR /usr/share/elasticsearch
RUN for PLUGIN in \
https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-security/opendistro_security-{{odfeplugin_version}}.zip \
https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-alerting/opendistro_alerting-{{odfeplugin_version}}.zip \
https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-sql/opendistro_sql-{{odfeplugin_version}}.zip; \
do bin/elasticsearch-plugin install -b ${PLUGIN}; done && \
chown -R elasticsearch plugins/opendistro_security
RUN echo 'elasticsearch ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
RUN yum install -y supervisor rsync
RUN yum clean all
COPY odfesupervisord.conf /etc/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
FROM {{repo}}/centos:{{version}}{{suffix}}
RUN yum install -y supervisor
RUN yum clean all
ENV PATH="/opt/opensearch-dashboards/bin:${PATH}"
ARG OPENSEARCH_VERSION={{opensearch_version}}
RUN groupadd -g 1000 dashboards && \
adduser -u 1000 -g 1000 -d /opt/opensearch-dashboards -M dashboards
RUN cd /opt && \
yum install -y wget sudo && \
wget https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/${OPENSEARCH_VERSION}/opensearch-dashboards-${OPENSEARCH_VERSION}-linux-x64.tar.gz -O /tmp/opensearch-dashboards.tar.gz && \
tar -xvzf /tmp/opensearch-dashboards.tar.gz && \
ln -s $(find /opt -mindepth 1 -maxdepth 1 -type d | grep -i opensearch) /opt/opensearch-dashboards && \
chown -R dashboards:dashboards /opt/opensearch-dashboards/
WORKDIR /opt/opensearch-dashboards
RUN echo 'dashboards ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
COPY dashboardssupervisord.conf /etc/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment