В прошлых статьях я уже писал о metricbeat и о том, как его ставить и о базовых настройках, так что тут я это опущу.
Включение модуля postgresql
- Включаем модуль postgresql
sudo metricbeat mudules enable postgresql
- Перезапускаем metricbeat
sudo sysytemctl restart metricbeat
Конфигурация модуля postgresql
Для мониторинга естественно используется подключения к бд, и соответственно нужно настроить доступ к бд.
Настройки модуля находятся по пути /etc/metricbeat/modules.d/postgresql.yml.
- Создаём
keystore
sudo metricbeat keystore create
- Создаём ключи
keystore
, в которые вводим логин и пароль для подключения кpostgres
sudo metricbeat keystore add MY_USR sudo metricbeat keystore add MY_PWD sudo metricbeat keystore list
- И настраиваем сам модуль
sudo vim /etc/metricbeat/modules.d/postgresql.yml
- module: postgresql
metricsets:
- database
- bgwriter
- activity
#тут можно выставить интервал мониторинга
period: 60s
#postgres - это бд, к которой будем подключаться
hosts: ["postgres://127.0.0.1:5432/postgres?sslmode=disable"]
#логин
username: "${MY_USR}"
#пароль
password: "${MY_PWD}"
Права для пользователя в postgresql
Тут самое интересное я не нашел какой-то внятной статьи о правах в которых нуждается пользователь, под которым осуществляется аутентификация. Поэтому просто напишу тут какие права выдал я и это сработало.
- Естественно первым делом connect к бд postgres
- Роли pg_read_all_stats, pg_execute_server_program
Почему именно эти я уже и не вспомню. Дело в том, что я использовал существующую учетную запись для мониторинга, и права были у неё такие.
Включаем логирование pg_stat_statements
- Включаем
pg_stat_statements
. Для этого редактируем файл конфигураций самогоpostgresql
(путь может различаться). Для поиска файла можно воспользватьсяfind / -name postgresql.conf
.sudo vim /var/lib/pgsql/12/data/postgresql.conf
shared_preload_libraries = 'pg_stat_statements' pg_stat_statements.max = 1000 pg_stat_statements.track = all
- Создаём
extention
CREATE EXTENSION pg_stat_statements
- Проверяем pg_stat_statements
SELECT * FROM pg_stat_statements
- Добавляем statement в
metricbeat
sudo vim /etc/metricbeat/modules.d/postgresql.yml
//- module: postgresql metricsets: //- statement
- Перезапускаем
postgres
иmetricbeat
sudo sysytemctl restart postgresql-12 sudo sysytemctl restart metricbeat
Комментарии