Last active
April 2, 2025 10:35
-
-
Save rsandrade/c603b843273c21ed52964c2b8e92879e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| set -e | |
| ES_HOST="10.156.246.175" # provavelmente pode mudar para localhost | |
| STACK_DIR="$(pwd)" | |
| ES_PASSWORD=$(openssl rand -base64 16 | tr -dc 'A-Za-z0-9@#%+=' | head -c 20) | |
| KIBANA_PASSWORD=$(openssl rand -base64 16 | tr -dc 'A-Za-z0-9@#%+=' | head -c 20) | |
| echo "🔧 Criando docker-compose.yml..." | |
| cat > docker-compose.yml <<EOF | |
| services: | |
| elasticsearch: | |
| image: docker.elastic.co/elasticsearch/elasticsearch:8.17.4 | |
| container_name: elasticsearch | |
| environment: | |
| - node.name=es-node | |
| - discovery.type=single-node | |
| - xpack.security.enabled=true | |
| - ELASTIC_PASSWORD=${ES_PASSWORD} | |
| - ES_JAVA_OPTS=-Xms1g -Xmx1g | |
| volumes: | |
| - esdata:/usr/share/elasticsearch/data | |
| ports: | |
| - "${ES_HOST}:9200:9200" | |
| - "9300:9300" | |
| kibana: | |
| image: docker.elastic.co/kibana/kibana:8.17.4 | |
| container_name: kibana | |
| depends_on: | |
| - elasticsearch | |
| ports: | |
| - "${ES_HOST}:5601:5601" | |
| environment: | |
| - ELASTICSEARCH_HOSTS=http://${ES_HOST}:9200 | |
| - ELASTICSEARCH_USERNAME=kibana_system | |
| - ELASTICSEARCH_PASSWORD=${KIBANA_PASSWORD} | |
| - SERVER_PUBLICBASEURL=http://kibana.DOMAIN.TLD #coloque aqui o subdominio | |
| volumes: | |
| - ./kibana.yml:/usr/share/kibana/config/kibana.yml:ro | |
| volumes: | |
| esdata: | |
| EOF | |
| echo "🔐 Gerando chaves de criptografia..." | |
| generate_key() { | |
| openssl rand -base64 32 | tr -d '\n' | head -c 32 | |
| } | |
| ENCRYPTION_KEY=$(generate_key) | |
| ENCRYPTED_SAVED_OBJECTS_KEY=$(generate_key) | |
| REPORTING_KEY=$(generate_key) | |
| echo "📝 Criando kibana.yml com chaves..." | |
| cat > kibana.yml <<EOF | |
| server.name: kibana | |
| server.host: "0.0.0.0" | |
| xpack.security.encryptionKey: "${ENCRYPTION_KEY}" | |
| xpack.encryptedSavedObjects.encryptionKey: "${ENCRYPTED_SAVED_OBJECTS_KEY}" | |
| xpack.reporting.encryptionKey: "${REPORTING_KEY}" | |
| EOF | |
| echo "🚀 Subindo containers..." | |
| docker compose up -d | |
| echo "⏳ Aguardando Elasticsearch ficar disponível..." | |
| until curl -s -u elastic:${ES_PASSWORD} http://${ES_HOST}:9200 >/dev/null; do | |
| sleep 2 | |
| done | |
| echo "✅ Elasticsearch está acessível." | |
| echo "🔐 Definindo senha para kibana_system..." | |
| curl -s -X POST -u elastic:${ES_PASSWORD} \ | |
| -H "Content-Type: application/json" \ | |
| -d "{\"password\":\"${KIBANA_PASSWORD}\"}" \ | |
| http://${ES_HOST}:9200/_security/user/kibana_system/_password >/dev/null | |
| echo "🎉 Stack configurado com sucesso!" | |
| echo "" | |
| echo "🔑 Credenciais:" | |
| echo " elastic: ${ES_PASSWORD}" | |
| echo " kibana_system: ${KIBANA_PASSWORD}" | |
| echo "" | |
| echo "🌐 Acesse: http://kibana.DOMAIN.TLD com o usuário 'elastic'." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment