Fetch logs from RDS instance, and process them with pgBadger
.. image:: https://api.codacy.com/project/badge/Grade/902dd72b33df408b8d1274890cd805db :target: https://www.codacy.com/project/fpietka/rds-pgbadger/dashboard?utm_source=github.com&utm_medium=referral&utm_content=fpietka/rds-pgbadger&utm_campaign=Badge_Grade_Dashboard :alt: Grade .. image:: https://img.shields.io/pypi/v/rdspgbadger.svg :target: https://pypi.python.org/pypi/rdspgbadger :alt: Version .. image:: https://img.shields.io/pypi/pyversions/rdspgbadger.svg :target: https://pypi.python.org/pypi/rdspgbadger :alt: Python versions supported .. image:: https://img.shields.io/pypi/l/rdspgbadger.svg :target: https://pypi.python.org/pypi/rdspgbadger :alt: License
Fetches RDS log files and analyzes them with pgBadger_.
Make sure your credentials are set in the ~/.aws/credentials
file.
Also, you can set a region in the ~/.aws/config
file, so passing region option to the script is not needed.
Last but not least, make sure you have pgbadger
installed and reacheable from your $PATH
.
You will have to configure your database parameter group.
First of all, ensure log_min_duration_statement
is set to 0
or higher, else you won't have anything to be parsed.
Then you must enable some other parameters to get more information in the logs.
+-----------------------------+-------+ | Parameter | Value | +=============================+=======+ | log_checkpoints | 1 | +-----------------------------+-------+ | log_connections | 1 | +-----------------------------+-------+ | log_disconnections | 1 | +-----------------------------+-------+ | log_lock_waits | 1 | +-----------------------------+-------+ | log_temp_files | 0 | +-----------------------------+-------+ | log_autovacuum_min_duration | 0 | +-----------------------------+-------+
Also make sure lc_messages
is either at engine default or set to C
.
For further details, please refer to Dalibo's pgBadger_ documentation.
You can install it using pip
::
$ pip install rdspgbadger
To build a pgbadger
report, just run the following (replacing instanceid
by your instance ID)::
$ rds-pgbadger instanceid
Only the Instance ID is mandatory, but there are also other options you can use:
YYYY-MM-DD
, you can then download only that day's logs.out
folder. This option allows you to change it..config
file. Format arn:aws:iam::<account_id>:<role_name>
In spite of the great work of askainet_, AWS API seems to be too instable, and sometimes download of big log files can fail. In such case retrying a few minutes later seems to work.
see pull request 10
_
For any request, feel free to make a pull request or fill an issue on Github_.
.. _pgBadger: http://dalibo.github.io/pgbadger/ .. _Github: https://github.com/fpietka/rds-pgbadger .. _askainet: https://github.com/askainet .. _pull request 10: https://github.com/fpietka/rds-pgbadger/pull/10