Monitorando Node GrayLog usando o Zabbix

Onx Solutions está disponibilizando um dos seus templates de monitoração de Nodes Graylog usando o Zabbix versão 3.4.

Adicionamos no template uma feature do Zabbix chamada LLD( Low Level Discovery), facilitando a descoberta dos Nodes no GrayLog, sendo assim você não precisará cadastrar os nodes, basta definir o tempo na regra de descoberta no Zabbix.

Itens Monitorados

  • GrayLog: Filter execution Time (FIltered, Incomming, Outgoing, Process)
  • GrayLog: Internal Log Message (Error, Fatal, Trace, Warn)
  • GrayLog: Journal ( Journal Size)
  • GrayLog: Node Memory(LLD)/( Free Memory, Max Memory, Total Memory, Used Memory)
  • GrayLog: Node Status (Lifecycle, Processing, Status )
  • GrayLog: Services

Pre-requisitos

  • Zabbix 3.4 or 3.2
  • GrayLog 2.4
  • Python 3.4 or python3
  • Imports python
    • requests
    • json
    • sys

Procedimentos

1. Baixe o arquivo monitoring-graylog.py e copie para a pasta de scripts no seu servidor ( onde fica o agente do Zabbix instalado)

# wget  https://raw.githubusercontent.com/bezarsnba/zabbix-graylog-monitoring/master/monitoring-graylog.py
# cp monitoring-graylog.py /etc/zabbix/scripts/
# chmod +x monitoring-graylog.py

2. Altere as variáveis abaixo do arquivo monitoring-graylog.py:

# vim  monitoring-graylog.py
apiUserGray="<Username Graylog>"
apiPassGray="<Password Username>"

## Functions to login in Api Rest ##
def apiGrayLog(valueApi):
      r = requests.get('http://<Ip GrayLog Server>:9000/api/%s' % valueApi, auth=(apiUserGray,apiPassGray))
      return r.text
3. Execute o script passando como parâmetro a função lldgraylognode:
# python3.4 monitoring-graylog.py lldgraylognode
{
    "data":[
        {
             "{#NODEID}":"b6171e87-b8e6-4c14-9014-b4a50754488b"
        },
       {

             "{#NODEID}":"2c0b3a0d-d8ff-4b20-ba8d-0e8330f0ab2e"
        }
   ]
}
4. Verifique onde esta armazenado os arquivos *.conf no agente zabbix:
# grep conf /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf
5. Copie o arquivo user_parameter_graylog.conf para o diretório que foi encontrado passo 4 e altere o caminho do binário python :
# wget https://raw.githubusercontent.com/bezarsnba/zabbix-graylog-monitoring/master/user_parameter_graylog.conf 
# cp user_parameter_graylog.conf /etc/zabbix/zabbix_agentd.conf.d/
# cat user_parameter_graylog.conf
UserParameter=graylog.node.men[*],/usr/bin/python3.4 /etc/zabbix/scripts/monitoring-graylog.py monnode $1 $2
UserParameter=graylog.cluster.status[*],/usr/bin/python3.4 /etc/zabbix/scripts/monitoring-graylog.py moncluster $1 $2
UserParameter=graylog.inter.log[*],/usr/bin/python3.4 /etc/zabbix/scripts/monitoring-graylog.py monmetric $1 $2
UserParameter=graylog.journal.size[*],/usr/bin/python3.4 /etc/zabbix/scripts/monitoring-graylog.py monmetric $1 $2
UserParameter=graylog.proc.buffer[*],/usr/bin/python3.4 /etc/zabbix/scripts/monitoring-graylog.py monprocessbuffer $1 $2
UserParameter=graylog.discovery.node,/usr/bin/python3.4 /etc/zabbix/scripts/monitoring-graylog.py lldgraylognode
6. Reinicie o agente:
# systemctl restart zabbix-agent
6.Use o zabbix_get para testar alguns itens:
# zabbix_get -s < IP Agent Zabbix > -k graylog.discovery.node
{
     "data":[
         {
            "{#NODEID}":"b6171e87-b8e6-4c14-9014-b4a50754488b"
          },
        {
            "{#NODEID}":"2c0b3a0d-d8ff-4b20-ba8d-0e8330f0ab2e"
        }
     ]
  }

# zabbix_get -s < IP Agent Zabbix > -k graylog.cluster.status['2c0b3a0d-d8ff-4b20-ba8d-0e8330f0ab2e',lb_status]
alive
7. Importe o template template_graylog-node.xml para o seu Zabbix.
8. Adicione o Template Graylog Node no host do Graylog:
Após estes procedimento basta aguardar alguns instantes e verificar como esta a monitoração do Host:

Dashboard dos Itens

Dashboard Grafana

 

Se precisar de ajuda mande um e-mail para: bramos@onxsolutions.net

About: Bezaleel Ramos

Fundador da empresa Onx Solutions em Goiânia. Formado em Tecnologia em Redes de Computadores pela Universidade Nove de Julho em São Paulo. Possui certificações LPIC-1,LPIC-2, ZABBIX Certified Specialist,Novell Certified Linux Administrator (CLA) e Linux Administrator for SUSE Linux Enterprise.