Como adicionar um cliente do CentOS 7 Sensu

Você está aqui:
Tempo estimado de leitura: 3 min

Eu suponho que o cliente Sensu é uma máquina virtual do CentOS 7. Faça o login no SSH e siga os passos abaixo. Você não terá que alterar nada no servidor Sensu. Enquanto o cliente Sensu autenticar com sucesso com o servidor Sensu, as verificações serão executadas automaticamente.

Antes de começarmos, verifique se o firewall está configurado corretamente. Com uma configuração padrão, abra as portas TCP de saída 56715672.

Etapa 1: adicione o repositório Sensu

O pacote sensu-clientnão está nos repositórios padrão do CentOS. Adicione o repositório colando o seguinte conteúdo no arquivo /etc/yum.repos.d/sensu.repo:

[sensu]
name=sensu
baseurl=https://sensu.global.ssl.fastly.net/yum/$releasever/$basearch/
gpgcheck=0
enabled=1

Em seguida, atualize yume instale sensu-client:

yum update
yum install sensu

Todos os serviços ( sensu-serversensu-clientsensu-api) serão instalados com a instalação do sensupacote. Você pode ignorar com segurança todos os serviços, exceto os sensu-clientque serão usados. Não inicie o serviço ainda.

Etapa 2: instalar os plugins necessários

O modelo da Sensu é distribuir a carga sobre os clientes que resulta da execução de verificações e do envio dos resultados da verificação. Como resultado, você precisa instalar plug-ins do Sensu nos clientes em vez de no servidor Sensu. Alguns plugins são compilados localmente, o que significa que precisaremos de ferramentas de construção nos clientes:

yum groupinstall "Development tools"

Os seguintes plugins são muito populares e usados ​​para muitas verificações. Execute cada um desses comandos para instalar os plugins depois que os pacotes de ferramentas de desenvolvimento forem instalados. Dependendo do tamanho do seu servidor, isso pode demorar um pouco:

sensu-install -p uptime-checks
sensu-install -p process-checks
sensu-install -p http
sensu-install -p filesystem-checks
sensu-install -p cpu-checks
sensu-install -p memory-checks
sensu-install -p disk-checks
sensu-install -p load-checks
sensu-install -p network-checks

Etapa 3: adicionar arquivos de configuração

Nós iremos adicionar quatro arquivos de configuração ao cliente Sensu.

  • /etc/sensu/conf.d/client.json:

    Este arquivo contém assinaturas, o endereço IP para o cliente Sensu e o nome do cliente. Substitua os valores ipaddresse os hostnamevalores que descrevem o cliente que você está adicionando. Além disso, especifique as assinaturas definidas no servidor Sensu ou, se você não tiver nenhuma, remova a subscriptionsseção inteira . Não se esqueça de remover a vírgula depois, namese você fizer:

    {
        "client": {
            "address": "-----ipaddress-----",
            "environment": "production",
            "name": "-----hostname-----",
            "subscriptions": [
                "linux"
            ]
        }
    }
    
  • /etc/sensu/conf.d/transport.json:

    Neste arquivo, definimos o transporte usado. Por padrão, o transporte usado é RabbitMQ. Cole o seguinte conteúdo no arquivo. Nenhum valor precisa ser alterado:

    {
        "transport": {
            "name": "rabbitmq",
            "reconnect_on_error": true
        }
    }
    
  • /etc/sensu/conf.d/rabbitmq.json:

    O servidor e as credenciais do RabbitMQ são especificados neste arquivo. Substitua hostnamepelo nome DNS. Por padrão, a porta é 5672para conexões não criptografadas. O usuário e a senha do RabbitMQ também devem ser substituídos. Esses detalhes podem diferir para cada cliente Sensu ou ser os mesmos para todos os clientes. Esta é uma decisão prática que é feita pelo usuário.

    vhosté /por padrão, mas muitas vezes é alterado para /sensu. Se não tiver certeza de qual usar, tente os dois:

    {
        "rabbitmq": {
            "host": "-----hostname-----",
            "password": "-----rabbitmq_password-----",
            "port": 5672,
            "user": "-----username-----",
            "vhost": "/sensu"
        }
    }
    
  • /etc/sensu/conf.d/checks.json:

    O Sensu suporta dois tipos de verificações: verificações independentes e verificações de assinatura. As verificações de assinatura são definidas no servidor Sensu e as assinaturas são definidas no client.jsonarquivo em um cliente Sensu. Verificações autônomas são verificações definidas nos próprios clientes do Sensu. Geralmente, são verificações que se aplicam apenas a um servidor específico. Por exemplo, uma verificação que estaria em uma assinatura é uma verificação para ver se o servidor da Web ainda está em execução. Uma verificação independente pode ser uma verificação para ver se o servidor A pode alcançar o servidor B. Nenhum outro servidor precisa dessa verificação.

    Verificações autônomas são definidas neste arquivo. Abaixo você encontrará um exemplo de um checks.jsonarquivo com alguns exemplos de verificações independentes:

    {
        "checks": {
            "httpd": {
                "command": "sudo check-process.rb -p httpd",
                "handlers": [
                    "default",
                    "pushover"
                ],
                "interval": 180,
                "occurences": 3,
                "refresh": "1800",
                "standalone": true,
                "ttl": 1200
            },
            "mysqld": {
                "command": "sudo check-process.rb -p mysqld",
                "handlers": [
                    "default",
                    "pushover"
                ],
                "interval": 180,
                "occurences": 3,
                "refresh": "1800",
                "standalone": true,
                "ttl": 1200
            }
        }
    }
    

Depois de concluir a configuração do cliente Sensu, altere os direitos:

chown -R sensu:sensu /etc/sensu/conf.d

Etapa 4: conceda permissões ao sensuusuário

As verificações são executadas como o usuário sensu. Naturalmente, esse usuário tem direitos limitados. No entanto, algumas verificações precisam de rootpermissões para serem executadas. Permitiremos que o usuário sensuexecute qualquer verificação, rootmas limite suas outras permissões.

Cole o seguinte conteúdo no arquivo /etc/sudoers.d/sensu:

Defaults:sensu
secure_path=/opt/sensu/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/check*.rb *
sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/metrics*.rb *

As duas primeiras linhas definem o caminho padrão, que permite especificar apenas o nome do script no comando de verificação, em vez de todo o caminho. Por exemplo, simplesmente usando o comando sudo check-process.rb -p mysqldfuncionará sem precisar especificar o caminho inteiro ( /opt/sensu/embedded/bin/check-process.rb -p mysqld).

As outras linhas permitem que o sensuusuário execute qualquer script de verificação como root.

Finalmente, inicie o sensu-clientserviço e inicie-o automaticamente na inicialização:

systemctl start sensu-client
systemctl enable sensu-client

Se você tiver o Uchiwa instalado, o novo cliente deverá aparecer na lista. Se não, depure o sensu-clientinspecionando o arquivo de log/var/log/sensu/sensu-client.log

Esse artigo foi útil?
Não Gostei 0
Visualizações: 40

Ainda não Têm uma Conta?

Então Cadastre-se

Nome de Usuário*
E-mail*
Senha*
Confirmar Senha*

Já têm Uma Conta? Click Aqui.

Já tem uma Conta?

Ainda não tem Conta?