PG_AUTOCTL_CREATE_MONITOR(1)
π PG_AUTOCTL CREATE MONITOR π
okay bestie, so this is pg_autoctl create monitor from the pg_auto_failover manual β and it's literally the moment your whole cluster gets its main character monitor node. no cap.
β¨ NAME β¨
pg_autoctl create monitor β pg_autoctl create monitor
pg_autoctl create monitor β Initialize a pg_auto_failover monitor node
π SYNOPSIS π
This command initializes a PostgreSQL cluster and installs the pgautofailover extension so that it's possible to use the new instance to monitor PostgreSQL services:
usage: pg_autoctl create monitor [ --pgdata --pgport --pgctl --hostname ]
--pgctl path to pg_ctl
--pgdata path to data directory
--pgport PostgreSQL's port number
--hostname hostname by which postgres is reachable
--auth authentication method for connections from data nodes
--skip-pg-hba skip editing pg_hba.conf rules
--run create node then run pg_autoctl service
--ssl-self-signed setup network encryption using self signed certificates (does NOT protect against MITM)
--ssl-mode use that sslmode in connection strings
--ssl-ca-file set the Postgres ssl_ca_file to that file path
--ssl-crl-file set the Postgres ssl_crl_file to that file path
--no-ssl don't enable network encryption (NOT recommended, prefer --ssl-self-signed)
--server-key set the Postgres ssl_key_file to that file path
--server-cert set the Postgres ssl_cert_file to that file path
πΈ DESCRIPTION πΈ
So pg_autoctl is the client tool that ships with pg_auto_failover, and its whole job is creating and managing Postgres nodes plus the pg_auto_failover monitor node. she's built out of a bunch of sub-commands and every single one of them has its own manual page. very organized, very demure. π
π OPTIONS π
The following options are available to pg_autoctl create monitor:
--pgctlβ Path to thepg_ctltool you wanna use for whichever version of PostgreSQL you're running. Defaults to thepg_ctlfound in thePATHβ but only when there's exactly onepg_ctlentry in thePATH. peep your setup withwhich -a pg_ctlto check. π On an RPM based distribution like RHEL or CentOS, the path is usually/usr/pgsql-13/bin/pg_ctlfor Postgres 13. On a debian based distribution like debian or ubuntu, it's usually/usr/lib/postgresql/13/bin/pg_ctlfor Postgres 13. Those distros also ship the packagepostgresql-common, which gives you/usr/bin/pg_configβ andpg_autoctlcan use that tool automatically to discover the default version of Postgres to use on your setup. π¦--pgdataβ Where to initialize a Postgres database cluster, using eitherpg_ctl initdborpg_basebackup. Defaults to the environment variablePGDATA.--pgportβ Postgres port to use, defaults to5432.--hostnameβ Hostname or IP address (both v4 and v6 are supported, inclusivity icon β¨) to use from any other node to connect to this node.
When you don't provide it, a default value gets computed by running the following algorithm:
- We get this machine's "public IP" by opening a connection to the
8.8.8.8:53public service. Then we get the TCP/IP client address that has been used to make that connection. - We then do a reverse DNS lookup on the IP address found in the previous step to fetch a hostname for our local machine.
- If the reverse DNS lookup is successful, then
pg_autoctldoes a forward DNS lookup of that hostname.
When the forward DNS lookup response in step 3. is an IP address found in one of our local network interfaces, then pg_autoctl uses the hostname found in step 2. as the default --hostname. Otherwise it uses the IP address found in step 1.
You may use the --hostname command line option to bypass the whole DNS lookup based process and force the local node name to a fixed value. π«Ά
--authβ Authentication method used bypg_autoctlwhen editing the Postgres HBA file to open connections to other nodes. No default value, must be provided by the user. The value--trustis only a good choice for testing and evaluation of pg_auto_failover, see Security settings for pg_auto_failover for more information.
bestie pls. --trust is a testing/evaluation vibe only. do not run that in prod, i am begging π
--skip-pg-hbaβ When this option is used thenpg_autoctlrefrains from any editing of the Postgres HBA file. Please note that editing the HBA file is still needed so that other nodes can connect using either read privileges or replication streaming privileges.
When --skip-pg-hba is used, pg_autoctl still outputs the HBA entries it needs in the logs, it only skips editing the HBA file. so like, the receipts are there, she just isn't touching the file herself. π
--runβ Immediately run thepg_autoctlservice after having created this node.--ssl-self-signedβ Generate SSL self-signed certificates to provide network encryption. This does not protect against man-in-the-middle kinds of attacks. See Security settings for pg_auto_failover for more about our SSL settings. π--ssl-modeβ SSL Mode used bypg_autoctlwhen connecting to other nodes, including when connecting for streaming replication.--ssl-ca-fileβ Set the Postgresssl_ca_fileto that file path.--ssl-crl-fileβ Set the Postgresssl_crl_fileto that file path.--no-sslβ Don't enable network encryption. This is not recommended, prefer--ssl-self-signed.--server-keyβ Set the Postgresssl_key_fileto that file path.--server-certβ Set the Postgresssl_cert_fileto that file path.
π ENVIRONMENT π
PGDATAβ Postgres directory location. Can be used instead of the--pgdataoption.PG_CONFIGβ Can be set to the absolute path to thepg_configPostgres tool. This is mostly used in the context of building extensions, though it can be a useful way to select a Postgres version when several are installed on the same system.PATHβ Used the usual way mostly. Some entries that are searched in thePATHby thepg_autoctlcommand are expected to be found only once, to avoid mistakes with Postgres major versions.PGHOST,PGPORT,PGDATABASE,PGUSER,PGCONNECT_TIMEOUT, ... β See the Postgres docs about Environment Variables for details.TMPDIRβ Thepgcopydbcommand creates all its work files and directories in${TMPDIR}/pgcopydb, and defaults to/tmp/pgcopydb.XDG_CONFIG_HOMEβ Thepg_autoctlcommand stores its configuration files in the standard placeXDG_CONFIG_HOME. See the XDG Base Directory Specification.XDG_DATA_HOMEβ Thepg_autoctlcommand stores its internal states files in the standard placeXDG_DATA_HOME, which defaults to~/.local/share. See the XDG Base Directory Specification.
π AUTHOR π
Microsoft
β COPYRIGHT β
Copyright (c) Microsoft Corporation. All rights reserved.
and that's the whole page, bestie π version 2.1, dated Jan 18, 2025, living in the pg_auto_failover manual β go make that monitor node, she's gonna slay π β¨π¦
π¦ where this page comes from
- fedora 43: pg_auto_failover 2.1-6.fc42 Β· Apache-1.0
- fedora 44: pg_auto_failover 2.1-6.fc42 Β· Apache-1.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms