Ad Widget

Collapse

PostgreSQL Windows

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • hamza
    Junior Member
    • Jul 2023
    • 2

    #1

    PostgreSQL Windows

    Добрый день, коллеги
    На сайте не смог найти актуальную информацию по настройке мониторинга постгре на виндовс, хочу поделиться своим наблюдением , а также узнать может у кого то есть решение возникших проблем :

    1. Завести удалось только на обычном агенте, на втором не работает

    2. В файле template_db_postgresql из оф шаблона нужно исправить :

    UserParameter=pgsql.bgwriter[*], psql -qtAX postgresql://"$3":"$4"@"$1":"$2"/"$5" -f "/var/lib/zabbix/postgresql/pgsql.bgwriter.sql" (так в файле по умолчанию)

    UserParameter=pgsql.bgwriter[*], psql -qtAXf "C:\Program Files\Zabbix Agent\postgresql\pgsql.bgwriter.sql" postgresql://"$3":"$4"@"$1":"$2"/"$5" (так должно быть)

    И так для каждой строчки​

    3. При выполнение скрипта UserParameter=pgsql.queries[*], psql -qtAXf "C:\Program Files\Zabbix Agent\postgresql\pgsql.query.time.sql" postgresql://"$3":"$4"@"$1":"$2"/"$5" -v tmax=$6
    Постгре ругается на неправильный синтаксис в запросе

    4. в логах постгре постоянно неудачные попытки авторизации агента (под той учеткой под которой запускается служба Заббикс агента), зачем он так делает понятия не имею, агент запускается под SYSTEM:
    023-07-18 00:04:49.010 MSK [440] FATAL: password authentication failed for user "SYSTEM"
    2023-07-18 00:04:49.010 MSK [440] DETAIL: Role "SYSTEM" does not exist.​
  • Hamardaban
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2019
    • 2713

    #2
    3) нужно смотреть что передается в параметрах $1-$6. Видимо при подстановке получается хрень
    4) а как настроен pg_hba.conf для локальных подключений?

    да и вообще можно переписать весь вызов psql и передавать параметры подключения одним макросом

    Comment

    • hamza
      Junior Member
      • Jul 2023
      • 2

      #3
      3) вот более подробно :
      2023-07-19 14:01:03.319 MSK [5292] ERROR: syntax error at or near ":" at character 2303
      2023-07-19 14:01:03.319 MSK [5292] STATEMENT: WITH T AS
      (SELECT db.datname,
      coalesce(T.query_time_max, 0) query_time_max,
      coalesce(T.tx_time_max, 0) tx_time_max,
      coalesce(T.mro_time_max, 0) mro_time_max,
      coalesce(T.query_time_sum, 0) query_time_sum,
      coalesce(T.tx_time_sum, 0) tx_time_sum,
      coalesce(T.mro_time_sum, 0) mro_time_sum,
      coalesce(T.query_slow_count, 0) query_slow_count,
      coalesce(T.tx_slow_count, 0) tx_slow_count,
      coalesce(T.mro_slow_count, 0) mro_slow_count
      FROM pg_database db NATURAL
      LEFT JOIN (
      SELECT datname,
      extract(epoch FROM now())::integer ts,
      coalesce(max(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle', 'idle in transaction', 'idle in transaction (aborted)') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER| CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) query_time_max,
      coalesce(max(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER| CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) tx_time_max,
      coalesce(max(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle') AND query ~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER| CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) mro_time_max,
      coalesce(sum(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle', 'idle in transaction', 'idle in transaction (aborted)') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER| CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) query_time_sum,
      coalesce(sum(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER| CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) tx_time_sum,
      coalesce(sum(extract('epoch' FROM (clock_timestamp() - query_start))::integer * (state NOT IN ('idle') AND query ~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER| CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) mro_time_sum,
      coalesce(sum((extract('epoch' FROM (clock_timestamp() - query_start)) > :tmax)::integer * (state NOT IN ('idle', 'idle in transaction', 'idle in transaction (aborted)') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER| CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) query_slow_count,
      coalesce(sum((extract('epoch' FROM (clock_timestamp() - query_start)) > :tmax)::integer * (state NOT IN ('idle') AND query !~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER| CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) tx_slow_count,
      coalesce(sum((extract('epoch' FROM (clock_timestamp() - query_start)) > :tmax)::integer * (state NOT IN ('idle') AND query ~* E'^(\\s*(--[^\\n]*\\n|/\\*.*\\*/|\\n))*(autovacuum|VACUUM|ANALYZE|REINDEX|CLUSTER| CREATE|ALTER|TRUNCATE|DROP)')::integer), 0) mro_slow_count
      FROM pg_stat_activity
      WHERE pid <> pg_backend_pid()
      GROUP BY 1) T
      WHERE NOT db.datistemplate )
      SELECT json_object_agg(datname, row_to_json(T))
      FROM T

      4)
      2023-07-19 14:01:00.967 MSK [6752] FATAL: password authentication failed for user "SYSTEM"
      2023-07-19 14:01:00.967 MSK [6752] DETAIL: Role "SYSTEM" does not exist.
      Connection matched pg_hba.conf line 89: "host all all 127.0.0.1/32 md5"


      Т.е. в pg_hba строка подключения присутствует, я не могу понять заяем агент пытается авторизоваться в постгре под системной учеткой Винды​

      Comment

      • Hamardaban
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • May 2019
        • 2713

        #4
        3) мне показалось что речь шла о "запросе" данных у агента UserParameter и ошибка именно в синтаксисе этого "запроса". Вы же про sql запрос - там сами,сами,сами..... уж извините.
        4) а что вы передаете в макросах $1-$6 ? попробуйте со стандартными опциями -h -p -U -w\-W в соответствии с настройками сервера psql . может тогда и ошибка уйдет?

        Comment

        Working...