build(repo): structure the repo into postgresql subdirectory with separate template and internal tests
This commit is contained in:
90
postgresql/tests/QUICKSTART.md
Normal file
90
postgresql/tests/QUICKSTART.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Quickstart (PostgreSQL Partitioning Test)
|
||||
|
||||
## Start Environment
|
||||
> **Note**: If `docker` commands fail with permission errors, run `newgrp docker` or ensure your user is in the `docker` group (`sudo usermod -aG docker $USER`) and log out/in.
|
||||
|
||||
```bash
|
||||
cd postgresql/docker
|
||||
sudo ./run_test_env.sh --pg 16 --zabbix 7.0
|
||||
# Options: --pg <16|17|18> --zabbix <7.0|7.4>
|
||||
```
|
||||
|
||||
## Verify
|
||||
```bash
|
||||
# Check status
|
||||
docker ps
|
||||
|
||||
# SQL Shell
|
||||
docker exec -it zabbix-db-test psql -U zabbix -d zabbix
|
||||
# Password: zabbix
|
||||
```
|
||||
|
||||
## Reset
|
||||
```bash
|
||||
docker compose down -v
|
||||
```
|
||||
|
||||
## Partitioning
|
||||
See [ARCHITECTURE.md](../ARCHITECTURE.md) for details on the implemented declarative partitioning.
|
||||
|
||||
## AWS RDS / External Database Testing
|
||||
|
||||
You can run these partitioning tests against a real AWS RDS (or any external PostgreSQL instance).
|
||||
|
||||
### 1. Configure Credentials
|
||||
First, create a `db_credentials` file in the `postgresql/` directory. (This file is ignored by Git to keep your passwords safe).
|
||||
Example `postgresql/db_credentials`:
|
||||
```bash
|
||||
# Admin credentials
|
||||
export DB_HOST="your-rds-endpoint.rds.amazonaws.com"
|
||||
export DB_PORT="5432"
|
||||
export DB_NAME="postgres"
|
||||
export DB_USER="postgres"
|
||||
export DB_PASSWORD="your_admin_password"
|
||||
|
||||
# SSL Configuration
|
||||
export DB_SSL_MODE="verify-full"
|
||||
export DB_PEM_URL="https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem"
|
||||
export DB_SSL_ROOT_CERT="./global-bundle.pem"
|
||||
|
||||
# Zabbix credentials to be created
|
||||
export ZBX_DB_NAME="zabbix"
|
||||
export ZBX_DB_USER="zabbix"
|
||||
export ZBX_DB_PASSWORD="zabbix_password"
|
||||
```
|
||||
|
||||
### 2. Automated Testing
|
||||
You can run the same automated deployment script, but instruct it to deploy directly to your RDS instance instead of a local Docker container:
|
||||
|
||||
```bash
|
||||
cd postgresql/docker
|
||||
./run_test_env.sh --pg 16 --zabbix 7.0 --rds
|
||||
```
|
||||
|
||||
If you want to completely clean up the RDS database and start fresh (terminating existing connections and dropping all data), use the `--rds-drop` flag. You will be prompted to type `yes` to safely confirm the deletion:
|
||||
```bash
|
||||
./run_test_env.sh --pg 16 --zabbix 7.0 --rds-drop
|
||||
```
|
||||
|
||||
### 3. Manual Setup & Zabbix Integration
|
||||
If you want to prepare the real database for your Production Zabbix Server manually, you can just run the initialization script directly:
|
||||
|
||||
```bash
|
||||
cd postgresql
|
||||
./setup_rds.sh
|
||||
# To drop an existing database and start fresh, use:
|
||||
# ./setup_rds.sh --drop
|
||||
```
|
||||
|
||||
The script will automatically connect as the `postgres` user, conditionally download the SSL certificates if needed, and set up the `zabbix` user and database.
|
||||
Upon success, the script will output the exact block you need to copy into your `zabbix_server.conf`, e.g.:
|
||||
|
||||
```ini
|
||||
DBHost=your-rds-endpoint.rds.amazonaws.com
|
||||
DBName=zabbix
|
||||
DBUser=zabbix
|
||||
DBPassword=zabbix_password
|
||||
DBPort=5432
|
||||
DBTLSConnect=verify_full
|
||||
DBTLSCAFile=/full/path/to/global-bundle.pem
|
||||
```
|
||||
Reference in New Issue
Block a user