Instalando o Zabbix via Puppet

Aviso:

Este tutorial foi escrito para ensinar a montar um servidor Zabbix Server, Agent e Proxy usando o Puppet. 

Se você ainda não sabe o que é Puppet, como funciona e para que serve, sugiro parar por aqui e começar a estudar pelo livro que publiquei pela Novatec https://novatec.com.br/livros/puppet/, pelos links que estão nesta página: http://blog.aeciopires.com/primeiros-passos-com-o-puppet

 

Considerarei que você já instalou Puppet-Server e Puppet-Agent em dois hosts diferentes seguindos as instruções de um dos tutoriais a seguir. A leitura e implementação deles é requisito para a continuação deste tutorial.

No Debian 9 e Ubuntu Server 16.04:
http://blog.aeciopires.com/configurando-um-ambiente-puppet-3

No CentOS/Red Hat 7:
http://blog.aeciopires.com/configurando-um-ambiente-puppet-4

 

Prepare o ambiente

O Zabbix pode ser gerenciado via Puppet usando o módulo puppet-zabbix. Nos passos a seguir será apresentada uma configuração bem simples para este serviço. Mais exemplos de configuração deste módulo podem ser encontrados na página https://forge.puppet.com/puppet/zabbix

1) Acesse o Puppet Server e execute o comando a seguir para instalar as dependências e o módulo puppet-zabbix.

puppet module install puppetlabs-mysql
puppet module install puppet-zabbix

2) Ainda no PuppetServer, edite o arquivo /etc/puppetlabs/code/environments/production/manifests/site.pp e defina a seguinte configuração para gerenciar o serviço Zabbix Server e Zabbix Agent no host puppet1 e Zabbix Proxy no host puppetserver.

 

node puppet1.domain.com.br {
  #Configurando o Apache
  class { 'apache':
    mpm_module       => 'prefork',
    default_vhost    => false,
    server_signature => 'Off',
    server_tokens    => 'Prod',
    trace_enable     => 'Off',
  }

  #Incluindo o suporte ao PHP no Apache
  include apache::mod::php

  #Definindo a porta padrao do HTTP
  apache::listen { '80': }

  #Defindo as cifras e protocolos SSL a serem usados no acesso via HTTPS
  class { 'apache::mod::ssl':
    ssl_cipher => 'HIGH:MEDIUM:!aNULL:!MD5:!SSLv3:!SSLv2:!TLSv1:!TLSv1.1',
    ssl_protocol => [ 'all', '-SSLv2', '-SSLv3', '-TLSv1', '-TLSv1.1' ],
  }

  #Configurando o modulo wsgi
  class { 'apache::mod::wsgi':
    wsgi_socket_prefix => '/var/run/wsgi',
  }

  #Adicionando o suporte a MySQL
  class { 'mysql::server': }

  #Configurando o Zabbix Server
  class { 'zabbix':
    zabbix_url     => 'puppet1.domain.com.br',
    database_type  => 'mysql',
    zabbix_version => '3.4',
    apache_use_ssl => true,
  }

  #Configurando o Zabbix Agent
  class { 'zabbix::agent':
    zabbix_version => '3.4',
    server         => 'puppet1.domain.com.br',
  }
}

node puppetserver.domain.com.br {

  #Configurando o Zabbix Proxy num host que so sera Proxy
  class { 'zabbix::proxy':
    zabbix_server_host => 'puppet1.domain.com.br',
    zabbix_version     => '3.4',
    database_type      => 'sqlite',
    database_name      => '/var/lib/sqlite/zabbix_proxy.db',
  }
}

3) Acesse os hosts puppetserver e puppet1 e execute o comando a seguir para obter o novo catálogo de configuração.

puppet agent -t

4) Verifique o funcionamento do serviço. O Zabbix estará disponível na URL: https://node1.domain.com.br. Pode fazer login com o usuário Admin e a senha zabbix.

5) O arquivo de configuração do Zabbix Server e Zabbix Agent do host node1 fica respectivamente em: /etc/zabbix/zabbix_server.conf/etc/zabbix/zabbix_agentd.conf.

6) O arquivo de configuração do Zabbix Proxy do host puppetserver fica respectivamente em: /etc/zabbix/zabbix_proxy.conf.

Para aprender mais sobre o Puppet, veja o livro que publiquei pela editora Novatec: https://novatec.com.br/livros/puppet/

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *