Olá! Vamos de mais um template de monitoramento Zabbix. Como sempre, a motivação foi a impossibilidade de encontrar na comunidade algo que atendesse minhas necessidades, e claro, mantendo o espírito colaborativo. compartilho mais este trabalho.
Existem alguns templates e ferramentas disponíveis na comunidade para realizar o monitoramento de PostgreSQL, como por exemplo:
- pg_monz
- libzbxpgsql
- DBforBix
- Mamonsu
- ZabbixDBA
No entanto, nenhuma destas ferramentas é aplicável ao ambiente que tenho em produção atualmente. Para piorar, muitas das soluções citadas não possuem suporte a PostgreSQL 9.5+, o que torna a tarefa mais complicada ainda.
Para resolver o problema da forma mais simples possível, preparei um novo template de monitoramento, que utiliza um conceito básico já bem conhecido no Zabbix: User Parameter.
Como eu não tinha muita experiência com PostgreSQL, observei nos trabalhos disponíveis na comunidade quais eram os itens interessantes de serem monitorados, e segui este caminho adicionando apenas um ou outro detalhe. O resultado foi um template que possui as seguintes características:
- Quantidade de Itens Monitorados: 76
- Quantidade de Gráficos: 18
Seguem alguns exemplos dos gráficos gerados.
E a lista de itens monitorados:
Background Writer (10 Items)
- Buffers Allocated
- Buffers Written by the BGWriter
- Buffers Written Directly by a Backend
- Buffers Written During Checkpoints
- Checkpoints by Timeout
- Max Written
- Required Checkpoints
- Sync Time
- Times a Backend Had to Execute its Own Fsync
- Write Time
Buffers & Caches (5 Items)
- Cache Hit Ratio
- Clear Buffers
- Dirty Buffers
- Total Buffers
- Used Buffers
Configuration (3 Items)
- Fsync
- Full Page Writes
- Synchronous Commit
Connections (8 Items)
- Number of Active Connections
- Number of Idle Connections
- Number of Idle in Transaction Connections
- Number of Prepared Connections
- Number of Waiting Connections
- Ping
- Total Connections
- Total Connections (%)
Databases (1 Item)
- Database Size
Database Status (13 Items)
- Blocks Hit per Second
- Blocks Read per Second
- Commits per Second
- Registered Conflicts
- Registered Deadlocks
- Rollbacks per Second
- Temp Bytes Written
- Temp Files Created
- Tuples Deleted per Second
- Tuples Fetched per Second
- Tuples Inserted per Second
- Tuples Returned per Second
- Tuples Updated per Second
General Information (3 Items)
- Number of Running Processes
- PostgreSQL Version
- Service Uptime
Operations (1 Item)
- Average Query Time
Streaming Replication (2 Items)
- Recovery State
- Stand-by Count
Table Info (25 Items)
- Indexes Size
- Rows Count
- Size
- Analyzes
- Autoanalyzes
- Autovacuums
- Cache Blocks Hits per Second
- Cache Blocks Read per Second
- Dead Rows
- Disk Blocks Hits per Second from TOAST
- Disk Blocks Hits per Second from TOAST Indexes
- Disk Blocks Read per Second from TOAST
- Disk Blocks Read per Second from TOAST Indexes
- Index Blocks Hit per Second
- Index Blocks Read per Second
- Index Scans
- Live Rows
- Rows Deleted per Second
- Rows HOT Updated per Second
- Rows Inserted per Second
- Rows Updated per Second
- Sequential Scans
- Tuples Read per Second by Index Scans
- Tuples Read per Second by Sequential Scans
- Vacuums
Transactions (4 Items)
- Current Max Active Transaction Time
- Current Max Idle Transaction Time
- Current Max Prepared Transaction Time
- Current Max Waiting Transaction Time
Write-Ahead Logging (2 Items)
- WAL Segments Count
- WAL Write
Para obter o template, consulte minha página no Zabbix Share. Divirtam-se!