===== Configuração do Zabbix para monitoramento do PostgreSQL =====
host: pgsql-suap.ifce.edu.br
==== a) Instalação do Zabbix Agent na maquina pgsql-suap.ifce.edu.br ====
Primeiramente foi feito uma verificação para saber qual versão do Ubuntu Server estava rodando na máquina:
monitoramento@pgsql-suap:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
Para instalar o Zabbix Agent é necessário adicionar o repositório do Zabbix. O Zabbix configurado na máquina zabbix.ifce.edu.br está na versão 3.2 logo devemos baixar o arquivo **.deb** encontrado no site **https://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/
** referente a versão **xenial**
monitoramento@pgsql-suap:~$ cd /tmp/
monitoramento@pgsql-suap:/tmp$ wget https://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
monitoramento@pgsql-suap:/tmp$ sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
Nesse momento ocorreu um erro ao tentar adicionar o repositório pois o diretório /boot estava com a capacidade máxima. Foi necessária fazer a limpeza do diretório /boot para prosseguir a instalação
==== b) Limpeza do /boot ====
Primeiro foi alterado o usuário para **root** e verificado a versão do kernel que tá sendo utilizada:
monitoramento@pgsql-suap:~$ uname -r
4.4.0-62-generic
Com essa informação podemos liberar os arquivos do diretório:
root@pgsql-suap:/boot# ls -lah
total 144M
drwxr-xr-x 4 root root 4,0K Jul 25 08:49 .
drwxr-xr-x 23 root root 4,0K Jul 25 08:44 ..
-rw-r--r-- 1 root root 1,2M Jan 18 2017 abi-4.4.0-62-generic
-rw-r--r-- 1 root root 1,2M Jun 26 16:45 abi-4.4.0-83-generic
-rw-r--r-- 1 root root 1,2M Jul 18 12:00 abi-4.4.0-87-generic
-rw-r--r-- 1 root root 186K Jan 18 2017 config-4.4.0-62-generic
-rw-r--r-- 1 root root 186K Jun 26 16:45 config-4.4.0-83-generic
-rw-r--r-- 1 root root 186K Jul 18 12:00 config-4.4.0-87-generic
drwxr-xr-x 5 root root 1,0K Jul 25 08:48 grub
-rw-r--r-- 1 root root 37M Jul 25 08:43 initrd.img-4.4.0-62-generic
-rw-r--r-- 1 root root 37M Jul 25 08:45 initrd.img-4.4.0-83-generic
-rw-r--r-- 1 root root 37M Jul 25 08:49 initrd.img-4.4.0-87-generic
drwx------ 2 root root 12K Mar 9 13:01 lost+found
-rw------- 1 root root 3,7M Jan 18 2017 System.map-4.4.0-62-generic
-rw------- 1 root root 3,8M Jun 26 16:45 System.map-4.4.0-83-generic
-rw------- 1 root root 3,8M Jul 18 12:00 System.map-4.4.0-87-generic
-rw------- 1 root root 6,8M Jan 18 2017 vmlinuz-4.4.0-62-generic
-rw------- 1 root root 6,8M Jun 26 16:45 vmlinuz-4.4.0-83-generic
-rw------- 1 root root 6,8M Jul 18 12:00 vmlinuz-4.4.0-87-generic
**OBS: Isso é apenas um esboço do que realmente tinha lá pois já havia sido liberado o espaço.**
Em seguida, utilizando o comando:
root@pgsql-suap:/boot# cat /dev/null > arquivo
Onde arquivo é um dos arquivos do diretório /boot e **não** pode ser o da versão atual, no caso, **4.4.0-62-generic**
Exemplo:
root@pgsql-suap:/boot# cat /dev/null > initrd.img-4.4.0-87-generic
Com o espaço máximo possível liberado, pode se usar os seguintes comandos:
apt-get install -f
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
Como resultado o espaço foi liberado e é possível agora continuar a instalação do Zabbix Agent
root@pgsql-suap:~# df -lh | grep boot
Sist. Arq. Tam. Usado Disp. Uso% Montado em
/dev/sda1 464M 153M 283M 36% /boot
==== c) Instalação do Zabbix Agent na maquina pgsql-suap.ifce.edu.br continuação ====
root@pgsql-suap:/tmp# cd /tmp/
root@pgsql-suap:/tmp# dpkg -i zabbix-release_3.2-1+xenial_all.deb
root@pgsql-suap:/tmp# apt update
root@pgsql-suap:/tmp# apt install zabbix-agent zabbix-get
OBS: Durante a atualização do Zabbix-Agent o PostgreSQL foi atualizado acidentalmente para a versão **9.5.7**
monitoramento@pgsql-suap:~$ psql --version
psql (PostgreSQL) 9.5.7
==== d) Configuração do Zabbix Agent na maquina pgsql-suap.ifce.edu.br ====
Depois de terminar a instalação do Zabbix Agent é necessário editar o arquivo de configuração **/etc/zabbix/zabbix_agentd.conf** e atualizar as seguintes linhas:
...
### Option: Server
# List of comma delimited IP addresses (or hostnames) of Zabbix servers.
# Incoming connections will be accepted only from the hosts listed here.
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
#
# Mandatory: no
# Default:
# Server=
Server=zabbix.ifce.edu.br,127.0.0.1
...
### Option: ServerActive
# List of comma delimited IP:port (or hostname:port) pairs of Zabbix servers for active checks.
# If port is not specified, default port is used.
# IPv6 addresses must be enclosed in square brackets if port for that host is specified.
# If port is not specified, square brackets for IPv6 addresses are optional.
# If this parameter is not specified, active checks are disabled.
# Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
#
# Mandatory: no
# Default:
# ServerActive=
ServerActive=127.0.0.1,zabbix.ifce.edu.br
...
### Option: HostnameItem
# Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
# Does not support UserParameters or aliases.
#
# Mandatory: no
# Default:
HostnameItem=system.hostname
...
### Option: Include
# You may include individual files or all files in a directory in the configuration file.
# Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
#
# Mandatory: no
# Default:
# Include=
Include=/etc/zabbix/zabbix_agentd.d/*.conf
...
==== e) Instalando Pacote de Extensão do Zabbix para PostgreSQL ====
O pacote utilizado encontra-se em https://github.com/lesovsky/zabbix-extensions/tree/master/files/postgresql e foi instalado como é mostrado a seguir:
root@pgsql-suap:~# cd /opt
root@pgsql-suap:/opt# mkdir zabbix
root@pgsql-suap:/opt# cd zabbix/
root@pgsql-suap:/opt/zabbix# git clone https://github.com/lesovsky/zabbix-extensions
root@pgsql-suap:/opt/zabbix# cd zabbix-extensions/files/postgresql/
root@pgsql-suap:/opt/zabbix/zabbix-extensions/files/postgresql# ls
postgresql.conf postgresql-extended-template.xml README.md
É preciso então copiar o arquivo de configuração **postgresql.conf** para o diretório **/etc/zabbix/zabbix_agentd.d/** e reiniciar o serviço do zabbix-agent
root@pgsql-suap:/opt/zabbix/zabbix-extensions/files/postgresql# cp postgresql.conf /etc/zabbix/zabbix_agentd.d/
root@pgsql-suap:/opt/zabbix/zabbix-extensions/files/postgresql# service zabbix-agent restart
==== f) Editando o arquivo de configuração pg_hba.conf do PostgreSQL ====
root@pgsql-suap:~# cd /etc/postgresql/9.5/main/
root@pgsql-suap:/etc/postgresql/9.5/main# ls
environment pg_ctl.conf pg_hba.conf pg_ident.conf postgresql.conf start.conf
É importante editar as seguintes linhas linhas:
...
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
...
host all all zabbix.ifce.edu.br md5
...
O arquivo **pg_hba.conf** é pra ficar assim:
# PostgreSQL Client Authentication Configuration File
# ===================================================
# Use PEER apenas para conexoes locais em estacoes de trabalho
# Use TRUST apenas para conexões locais em estacoes de trabalho e sistemas monousuários
# Para os demais use MD5
# Nao use PASSWORD ou CRYPT
local all postgres peer
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 md5
# Rede interna IFCE
host all all 10.0.0.0/8 md5
host all all 200.17.33.0/24 md5
host all all 201.20.97.250/30 md5
host all all 200.129.11.0/24 md5
host all all 200.129.48.0/24 md5
host all all 200.129.16.0/24 md5
host all all 200.129.17.0/24 md5
host all all 200.17.36.0/24 md5
host all all zabbix.ifce.edu.br md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
É necessário reiniciar o serviço do PostgreSQL
root@pgsql-suap:~# service postgresql restart
root@pgsql-suap:~# service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Ter 2017-07-25 10:53:17 BRT; 24h ago
Process: 17869 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 17869 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 0
CGroup: /system.slice/postgresql.service
Jul 25 10:53:17 pgsql-suap systemd[1]: Starting PostgreSQL RDBMS...
Jul 25 10:53:17 pgsql-suap systemd[1]: Started PostgreSQL RDBMS.
Para testar se o monitoramento está OK use o seguinte comando:
root@pgsql-suap:~# zabbix_get -s 127.0.0.1 -k pgsql.ping['-h 127.0.0.1 -p 5432 -U postgres -d postgres']
==== g) Configurando o Zabbix pela Web para Monitorar o PostgreSQL ====
Primeiro é necessário importar o template postgresql-extended-template.xml para o Zabbix, encontrado no site https://github.com/lesovsky/zabbix-extensions/tree/master/files/postgresql
Configuration -> Templates -> Import
{{:sistemas:suap:import_pg_template.jpg?800|}}
Criando um Host para monitorar o pgsql-suap.ifce.edu.br
Configuration -> Hosts -> Create Host
{{:sistemas:suap:host_pgsql-suap.jpg?800|}}
Linkar o Host aos templates:
{{:sistemas:suap:templates_pgsql-suap.jpg?800|}}
Criando as Macros para monitoramento do PostgreSQL:
{{:sistemas:suap:macros_pgsql-suap.jpg?800|}}