====== List of netcup Servers for PostgreSQL / v5 ======
* v220201062212128885.bestsrv.de: psql02 [live]
* v220201062212128886.quicksrv.de: psql01[pre-live]
The setup was done identically to the frontend servers with a helper script.\\
But in contrast to the front-ends, the VPN certificate is located in /root/.cert\\
The VPN command is as follows:
openvpn --config config.ovpn --log openvpn.log --daemon
As of now, both machines psql0{1,2} each have a certificate and are able to access the VPN.
===== SSH =====
For minimal security, the generated keys are protected with a simple password:
schnauzer0{1,2}
depending on the machine.
The protection is minimal, since the keys are cached with
ssh-add
manually and then are stored in plaintext in memory. The password only prevents that stolen keys are too easily used for logins.
===== Ports =====
We have two back-end servers, one for live, one for pre-live, both use port 5401.
===== Connection Strings =====
* live:
postgresql://docker:live_sfHjZ0i6GYKc2hIh@v220201062212128885.bestsrv.de:5401/products
* prelive:
postgresql://docker:prelive_wLHUeLUk9tbcTLKl@v220201062212128886.quicksrv.de:5401/products
===== Data =====
All the database files are mounted into the docker and located at /home/picalike/psql
===== Monitoring Resources =====
To keep track of the load + memory on the servers, a simple script 'proc_stat.py' [1] is used. It is triggered via crontab to periodically track the resource usage. The output looks like this:
cat v5/logs/psql_usage.log
[2020-12-14 15:35] (postgres) rss=52462 Pages, vss=8479 MB | load average: 4.74, 4.79, 4.79
The load is the same as in htop / uptime and vss means the (virtual) allocated memory. At psql01/psql02 the script also contains an alerting that sends a notification to the slack channel.
The threshold is set to 10, but this is arbitrary and probably needs adjustments.
**Since the pid is hardcoded, the cron needs to be manually adjusted after a docker restart**
[1] /home/picalike/bin/proc_stat.py
===== Docker =====
The psql image is deployed on psql01/02 and can be started/restarted there.
==== Known Issues ====
The openvpn version needs a modification in the config file to work:\\
In the file ''%%config.opvn%%'':\\
tls-version-min 1.0
=== shared memory to small ===
ERROR: could not resize shared memory segment “/PostgreSQL.71071463” to 50438144 bytes: No space left on device\\
SOLUTION: add ''%%–shm-size 12G%%'' (or another than default 64MB) when executing ''%%docker run%%''