90 lines
2.7 KiB
Markdown
90 lines
2.7 KiB
Markdown
# 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
|
|
``` |