Skip to content

Latest commit

 

History

History
128 lines (85 loc) · 3.64 KB

File metadata and controls

128 lines (85 loc) · 3.64 KB

PostgreSQL, MongoDB, Elasticsearch (middleware)

Все три сервиса в стеке middleware на devops.local. Веб-морды — только через nginx HTTPS. Клиенты (JDBC, psql, mongosh, Logstash) ходят на нативные порты.

Сервис Порт UI Данные
PostgreSQL 16 5432 https://devops.local/postgres/ (Adminer) /opt/compose/middleware/data/postgres
MongoDB 7 27017 https://devops.local/mongo/ (mongo-express, basic auth) /opt/compose/middleware/data/mongo
Elasticsearch 8.15 single-node 9200 https://devops.local/elastic/ /opt/compose/middleware/data/elasticsearch

Креды: postgres_* / mongo_* из .env (make setup). Elasticsearch — без X-Pack security (LAN mini). Heap: elastic_java_opts (-Xms512m -Xmx512m).

.\ansible.ps1 middleware

Playbook выставляет vm.max_map_count=262144 (нужно ES).


PostgreSQL

Adminer: System PostgreSQL, Server postgres, логин/БД из secrets.

С LAN:

psql "postgresql://darvik:ПАРОЛЬ@devops.local:5432/app"

JDBC:

jdbc:postgresql://devops.local:5432/app

Docker / compose на том же хосте:

jdbc:postgresql://192.168.1.103:5432/app
# или из другого контейнера в сети middleware_default:
# jdbc:postgresql://postgres:5432/app

Создать ещё одну БД:

docker exec -it middleware-postgres \
  psql -U darvik -d app -c 'CREATE DATABASE other;'

MongoDB

mongo-express: тот же user/password, что root (authSource=admin).

mongosh "mongodb://darvik:ПАРОЛЬ@devops.local:27017/admin"

URI для приложений:

mongodb://darvik:ПАРОЛЬ@devops.local:27017/mydb?authSource=admin

Если в пароле есть @ : / ? #, URL-encode. В UI mongo-express логин — basic auth (те же креды).


Elasticsearch (mini)

Одна нода, security выключен, heap 512 MiB. Для логов/поиска на devops.local, не кластер.

curl http://devops.local:9200/
curl http://devops.local:9200/_cluster/health?pretty
curl https://devops.local/elastic/_cluster/health?pretty   # через nginx

Индекс:

curl -X PUT http://devops.local:9200/demo
curl -H 'Content-Type: application/json' \
  -X POST http://devops.local:9200/demo/_doc \
  -d '{"msg":"hello"}'
curl http://devops.local:9200/demo/_search?pretty

Java / Spring:

spring.elasticsearch.uris=http://devops.local:9200

Kibana нет специально (это и есть «mini»). При необходимости поставь отдельно и укажи ELASTICSEARCH_HOSTS=http://elasticsearch:9200.

Память: правь elastic_java_opts в inventory/group_vars/middleware.yml (-Xms256m -Xmx256m ещё меньше, -Xms1g -Xmx1g если RAM позволяет) и make middleware.


Портал

Карточки PostgreSQL / MongoDB / Elasticsearch в секции Middleware. ES поднимается до минуты — сначала может быть offline, потом green/yellow → online.


Бэкап

Путь Что
data/postgres PGDATA
data/mongo WiredTiger
data/elasticsearch индексы

Логический дамп Postgres:

docker exec middleware-postgres pg_dump -U darvik app > app.sql

Mongo:

docker exec middleware-mongo mongodump -u darvik -p 'ПАРОЛЬ' --authenticationDatabase admin --out /tmp/dump