Configure sua própria rede privada com o OpenVPN
O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes
O Icinga2 é um poderoso sistema de monitoramento e, quando usado em um modelo de cliente principal, pode substituir a necessidade de verificações de monitoramento baseadas em NRPE. O modelo cliente-mestre é mais seguro por vários motivos . Ele também permite um monitoramento mais distribuído, permitindo que as verificações sejam modificadas em um servidor e propagadas para outros. Ele também fornece um local centralizado para alterações.
Por exemplo: digamos que você tenha 4 servidores da Web com balanceamento de carga diferentes. Se você sabe que haverá um pico de carga (talvez uma venda ou algo para o qual você antecipa muita atividade), convém aumentar os níveis nos quais o alto uso da CPU alerta os administradores do sistema. Se você estiver usando verificações de NRPE, precisará acessar cada servidor e modificar o /etc/nrpe.d/common_commands.cfg
documento em cada um deles. No modelo de cliente principal, você pode simplesmente modificar as definições de host na /etc/icinga2/repository.d/hosts/
pasta e recarregar o Icinga. As verificações serão propagadas para cada servidor e serão selecionadas automaticamente. Você também pode adicionar verificações com muita facilidade, modificando os /etc/icinga2/repository.d/services/
arquivos, e eles serão propagados e reconhecidos automaticamente, desde que os plug-ins existam nos servidores do cliente.
icinga2master.example.com
.icinga2client.example.com
.Algumas deste guia refletem as instruções de instalação listadas acima, mas isso deve ser feito na máquina cliente e não na máquina servidor.
Adicione o repositório "ICINGA" ao sistema do cliente para instalar os pacotes Icinga.
sudo cat > /etc/yum.repos.d/ICINGA-release.repo << 'EOF'
[icinga-stable-release]
name=ICINGA (stable release for epel)
baseurl=http://packages.icinga.org/epel/$releasever/release/
enabled=1
gpgcheck=1
gpgkey=http://packages.icinga.org/icinga.key
EOF
Instale os pacotes necessários.
# CentOS 6
sudo yum -y install icinga2 mysql-server mysql icinga2-ido-mysql nagios-plugins-disk nagios-plugins-load nagios-plugins-procs nagios-plugins-ssh nagios-plugins-users nagios-plugins-swap nagios-plugins-ping icingacli
# CentOS 7
sudo yum -y install icinga2 mariadb-server mysql icinga2-ido-mysql nagios-plugins-disk nagios-plugins-load nagios-plugins-procs nagios-plugins-ssh nagios-plugins-users nagios-plugins-swap nagios-plugins-ping icingacli
O CentOS 7 usa o MariaDB em vez do MySQL, portanto os pacotes necessários são um pouco diferentes. Inicie os serviços e defina-os para iniciar na inicialização.
sudo chkconfig icinga2 on
sudo service icinga2 start
Defina o serviço MySQL para iniciar na inicialização e inicie-o agora para que possamos protegê-lo.
# CentOS 6
sudo chkconfig mysqld on
sudo service mysqld start
#CentOS 7
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
Proteja a instalação do MySQL / MariaDB. O CentOS 6 e 7 usam o mesmo comando.
sudo mysql_secure_installation
Durante o processo, responda às perguntas conforme mostrado:
Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: $newRootPassword
Re-enter new password: $newRootPassword
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Anote $newRootPassword
como você precisará várias vezes, e é difícil redefinir.
Você precisa criar o icinga
nome de usuário e importar o esquema para o banco de dados. Isso é feito da mesma maneira no CentOS 6 e 7.
sudo mysql -u root -p
>CREATE DATABASE icinga;
>GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY '$someIcingaPassword';
>exit
Em seguida, importe o esquema para o banco de dados que você acabou de criar.
sudo mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Você precisará digitar a $newRootPassword
senha do MySQL / MariaDB usada durante o mysql_secure_installation
comando acima, não a que $someIcingaPassword
você acabou de criar - que será usada posteriormente.
Ative o ido
módulo (banco de dados).
sudo icinga2 feature enable ido-mysql
Você precisará editar o /etc/icinga2/features-enabled/ido-mysql.conf
arquivo para adicionar as informações do banco de dados. Você pode fazer isso com o seguinte comando.
sudo vi /etc/icinga2/features-enabled/ido-mysql.conf
Nesse arquivo, encontre as linhas comentadas (comece com //
).
//user = "icinga"
//password = "icinga"
//host = "localhost"
//database = "icinga"
... e edite-os usando o usuário / senha que você acabou de criar.
user = "icinga"
password = "$someIcingaPassword"
host = "localhost"
database = "icinga"
Certifique-se de descomentar as linhas removendo as duas barras iniciais.
Em seguida, reinicie o serviço para captar as alterações.
sudo service icinga2 restart
Você precisará adicionar uma conexão entre o servidor cliente e o mestre Icinga2 que já foi configurado. Você precisará fazer isso usando o Firewalld no CentOS 7 ou o IPTables no CentOS 6 ou 7.
# CentOS 6
sudo vi /etc/sysconfig/iptables
...
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5665 -j ACCEPT
...
#Icinga2 Master
-A OUTPUT -p tcp -m state --state NEW -m tcp --dport 5665 -j ACCEPT
sudo iptables restart
# CentOS 7
sudo firewall-cmd --add-port=5665/tcp --permanent
sudo firewall-cmd --reload
Agora, edite o arquivo hosts para adicionar o mestre como um nome de domínio local.
sudo vi /etc/hosts
...
$masterIP icinga2master icinga2master.example.com
Esta etapa precisa ser executada no mestre Icinga2. Você precisará inicializá-lo como mestre e gerar uma solicitação de assinatura de certificado que seu cliente usará para se comunicar.
sudo icinga2 node wizard
Isso executará o assistente do nó, que fará várias perguntas. A tela terá a seguinte aparência e as respostas que você fornecerá serão listadas.
Welcome to the Icinga 2 Setup Wizard!
We'll guide you through all required configuration details.
Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]: n
Starting the Master setup routine...
Please specify the common name (CN) [icinga2-master1.localdomain]: icinga2master.example.com
Checking for existing certificates for common name 'icinga2master.example.com'...
Certificates not yet generated. Running 'api setup' now.
information/cli: Generating new CA.
information/base: Writing private key to '/var/lib/icinga2/ca/ca.key'.
information/base: Writing X509 certificate to '/var/lib/icinga2/ca/ca.crt'.
information/cli: Generating new CSR in '/etc/icinga2/pki/icinga2master.example.com.csr'.
information/base: Writing private key to '/etc/icinga2/pki/icinga2master.example.com.key'.
information/base: Writing certificate signing request to '/etc/icinga2/pki/icinga2master.example.com.csr'.
information/cli: Signing CSR with CA and writing certificate to '/etc/icinga2/pki/icinga2master.example.com.crt'.
information/cli: Copying CA certificate to '/etc/icinga2/pki/ca.crt'.
Generating master configuration for Icinga 2.
information/cli: Adding new ApiUser 'root' in '/etc/icinga2/conf.d/api-users.conf'.
information/cli: Enabling the 'api' feature.
Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect.
information/cli: Dumping config items to file '/etc/icinga2/zones.conf'.
information/cli: Created backup file '/etc/icinga2/zones.conf.orig'.
Please specify the API bind host/port (optional):
Bind Host []: <hit enter>
Bind Port []: <hit enter>
information/cli: Created backup file '/etc/icinga2/features-available/api.conf.orig'.
information/cli: Updating constants.conf.
information/cli: Created backup file '/etc/icinga2/constants.conf.orig'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
Done.
Now restart your Icinga 2 daemon to finish the installation!
Em seguida, reinicie o Icinga2 para captar as alterações.
sudo service icinga2 restart
Agora que é um mestre, você pode usá-lo para gerar a sequência de solicitação de assinatura de certificado.
sudo icinga2 pki ticket --cn icinga2client.example.com
Você receberá algumas cordas $pkiString
. Copie essa sequência, conforme necessário no cliente.
Execute o assistente do nó para gerar os certificados e conectar-se ao mestre.
sudo icinga2 node wizard
Ele virá com uma página semelhante à acima. Esta página é mostrada abaixo com respostas incluídas.
Welcome to the Icinga 2 Setup Wizard!
We'll guide you through all required configuration details.
Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]: Y
Starting the Node setup routine...
Please specify the common name (CN) [icinga2client.example.com]:
Please specify the master endpoint(s) this node should connect to:
Master Common Name (CN from your master setup): icinga2master.example.com
Do you want to establish a connection to the master from this node? [Y/n]: Y
Please fill out the master connection information:
Master endpoint host (Your master's IP address or FQDN): icinga2master.example.com
Master endpoint port [5665]: 5665
Add more master endpoints? [y/N]: N
Please specify the master connection for CSR auto-signing (defaults to master endpoint host):
Host [icinga2master.example.com]: icinga2master.example.com
Port [5665]: 5665
information/cli: Created backup file '/etc/icinga2/pki/icinga2client.example.com.key.orig'.
information/cli: Created backup file '/etc/icinga2/pki/icinga2client.example.com.crt.orig'.
information/base: Writing private key to '/etc/icinga2/pki/icinga2client.example.com.key'.
information/base: Writing X509 certificate to '/etc/icinga2/pki/icinga2client.example.com.crt'.
information/cli: Fetching public certificate from master (icinga2master.example.com, 5665):
Certificate information:
Subject: CN = icinga2master.example.com
Issuer: CN = Icinga CA
Valid From: Jan 10 21:08:37 2017 GMT
Valid Until: Jan 7 21:08:37 2032 GMT
Fingerprint: FE 72 AB F3 18 A5 12 E0 0C 5D 94 8B 96 C4 57 3B 00 5C E0 04
Is this information correct? [y/N]: Y
information/cli: Received trusted master certificate.
Please specify the request ticket generated on your Icinga 2 master.
(Hint: # icinga2 pki ticket --cn 'icinga2client.example.com'): $pkiString
information/cli: Requesting certificate with ticket '$pkiString'.
warning/cli: Backup file '/etc/icinga2/pki/icinga2client.example.com.crt.orig' already exists. Skipping backup.
information/cli: Writing signed certificate to file '/etc/icinga2/pki/icinga2client.example.com.crt'.
information/cli: Writing CA certificate to file '/etc/icinga2/pki/ca.crt'.
Please specify the API bind host/port (optional):
Bind Host []: <enter key>
Bind Port []: <enter key>
Accept config from master? [y/N]: Y
Accept commands from master? [y/N]: Y
information/cli: Disabling the Notification feature.
Disabling feature notification. Make sure to restart Icinga 2 for these changes to take effect.
information/cli: Enabling the Apilistener feature.
warning/cli: Feature 'api' already enabled.
information/cli: Created backup file '/etc/icinga2/features-available/api.conf.orig'.
information/cli: Generating local zones.conf.
information/cli: Dumping config items to file '/etc/icinga2/zones.conf'.
information/cli: Created backup file '/etc/icinga2/zones.conf.orig'.
information/cli: Updating constants.conf.
information/cli: Created backup file '/etc/icinga2/constants.conf.orig'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
Done.
Now restart your Icinga 2 daemon to finish the installation!
Vá em frente e reinicie o Icinga2 para captar as alterações.
sudo icinga2 restart
Isso já pode ser feito, mas você precisa garantir que os recursos de comando e API estejam ativados.
sudo icinga2 feature enable command
sudo icinga2 feature enable api
Se eles não estiverem ativados, será exibido "recurso ativado", portanto, você precisará reiniciar o daemon Icinga2. Mas primeiro, você precisa alterar a propriedade dos arquivos no /etc/icinga2
diretório, pois alguns deles têm as permissões erradas após executar o assistente do nó. Todos devem ter o proprietário e o grupo definidos icinga
. Altere as permissões usando o seguinte comando:
sudo chown -R icinga:icinga /etc/icinga2/
Agora, você pode reiniciar o daemon Icinga2.
sudo service icinga2 restart
A configuração do cliente requer a edição de alguns arquivos diferentes.
/etc/icinga2/zones.conf
: Contém os pontos de extremidade (servidores) e as zonas que os contêm. É assim que os servidores são particionados. Verifique se os nomes dos clientes correspondem aos nomes do servidor./etc/icinga2/icinga2.conf
: Você está aceitando comandos e configurações do mestre, portanto, é necessário fazer uma edição menor neste arquivo para evitar definições de comandos duplicadas.Primeiro, vamos modificar o zones.conf
arquivo para definir o servidor e a zona em que está, além de criar uma zona "global" para definições de comando que são universais para TODOS os servidores, em vez de exclusivas para cada um (como verificações de disco) .
sudo vi /etc/icinga2/zones.conf
object Zone clientZone {
endpoints = [ "icinga2master.example.com" ]
}
object Zone "global-templates" { # Add global templates zone
global = true
}
object Endpoint NodeName {
host = "$icinga2clientIP"
}
object Zone ZoneName {
endpoints = [ NodeName ]
parent = clientZone
}
É importante saber que, no momento, só pode haver 2 nós por zona. Você pode criar quantas zonas desejar, mas se houver mais de 2 nós por zona, é possível que o serviço Icinga2 não funcione corretamente. Isso não é um problema no cliente, a menos que você já tenha 2 nós na zona clientZone
; nesse caso, será necessário criar outro nome de zona.
Agora, faça a modificação no /etc/icinga2/icinga2.conf
arquivo. Você precisa comentar a linha include_recursive "conf.d"
.
sudo vi /etc/icinga2/icinga2.conf
...
//include_recursive "conf.d"
...
Verifique a configuração para garantir que tudo esteja formatado corretamente.
sudo icinga2 daemon -C
Se você tiver problemas de permissão, é provável que o item seja de propriedade dele root:root
. Chown icinga:icinga
para resolver.
sudo chown -R icinga:icinga /etc/icinga2/
Existem outros problemas com as configurações, geralmente as informações fornecidas pela saída do sudo icinga2 daemon -C
comando serão detalhadas o suficiente para localizá-las. A solução de todos os problemas em potencial que está surgindo está fora do escopo deste guia.
Se a verificação for bem-sucedida, vá em frente e recarregue o serviço:
sudo service icinga2 restart
Você precisará conceder ao icinga
usuário permissões de sudo para que os comandos possam ser executados. Essas permissões do sudo serão restritas ao diretório específico do plug-in. Isso pode ser colocado no final do arquivo.
sudo vi /etc/sudoers
...
Defaults:icinga !requiretty
icinga ALL=(ALL) NOPASSWD: /usr/lib64/nagios/plugins/
Agora a configuração do cliente está oficialmente concluída. Não é necessário fazer mais modificações, nenhuma verificação de serviço será configurada no mestre e propagará para o cliente. Você precisará instalar quaisquer plug-ins adicionais necessários, no entanto. Os plug-ins também podem ser escritos usando python, perl, BASH, PHP e outras linguagens de script.
Você precisará voltar ao mestre para configurar o cliente para que ele possa ser conectado. Existem algumas etapas que precisarão ser seguidas:
repository.d
.A configuração do host será inserida no /etc/icinga2/repository.d/hosts/icinga2client.example.com.conf
arquivo.
sudo vi /etc/icinga2/repository.d/hosts/icinga2client.example.com.conf
object Host "icinga2client.example.com" {
import "satellite-host"
address = "$icinga2clientIP"
vars.os = "Linux"
}
sudo chown icinga:icinga /etc/icinga2/repository.d/hosts/icinga2client.example.com.conf
Agora, o host existe na configuração do cliente, mas precisa ser colocado em uma zona. Essa zona estará na /etc/icinga2/repository.d/zones
pasta, com o mesmo nome que o nome da zona para facilitar o rastreamento.
sudo vi /etc/icinga2/repository.d/zones/clientZone.conf
object Zone "clientZone" {
endpoints = [ "icinga2client.example.com" ]
parent = "icinga2master.example.com"
}
Em seguida, você precisa adicionar a global-templates
zona.
sudo vi /etc/icinga2/repository.d/zones/global-templates.conf
object Zone "global-templates" {
global = true
}
Por fim, adicione o terminal do cliente para que a matriz de terminais "clientZone" seja preenchida quando executada.
sudo vi /etc/icinga2/repository.d/endpoints/icinga2client.example.com.conf
#Change values to match the host you're adding
object Endpoint "icinga2client.example.com" {
host = "$icinga2clientIP"
}
Para garantir que não haja problemas de permissão, vá em frente e altere o proprietário / grupo novamente.
sudo chown -R icinga:icinga /etc/icinga2
Verifique as alterações na configuração para garantir que não haja mais problemas.
sudo icinga2 daemon -C
Se a verificação for bem-sucedida, prossiga com a recarga.
sudo service icinga2 restart
Se você visitar o site Icinga2, verá o servidor acessível.
Você pode encontrar erros sobre "comando não encontrado" ou "verificação não definida". É aqui que a zona de modelos globais entra em cena. Você precisará copiar a configuração em /etc/icinga2/conf.d/
arquivos e colocá-los em /etc/icinga2/zones.d/global-templates/
arquivos. Por exemplo, para criar um comando "check_software", você precisa fazer o seguinte.
sudo mkdir /etc/icinga2/zones.d/global-templates
sudo vi /etc/icinga2/zones.d/global-templates/commands.conf
object CheckCommand "check_software" {
import "plugin-check-command"
command = [ "/usr/bin/sudo", PluginDir + "/software_service_check.sh" ]
}
O software_service_check.sh
arquivo precisará existir na /usr/lib64/nagios/plugins
pasta do cliente .
Em seguida, adicione a verificação do serviço ao /etc/icinga2/repository.d/hosts/services.conf
arquivo.
sudo vi /etc/icinga2/repository.d/hosts/services/services.conf
apply Service "Check Software Service" {
import "mail-service"
check_command = "check_software" # This check command is the same name as the one you defined in global-templates/commands.conf
assign where host.vars.client_endpoint # This will apply to every client server. If you need it to be more restrictive, you should look into custom variables
}
Você precisará alterar as permissões novamente.
sudo chown -R icinga:icinga /etc/icinga2
Em seguida, verifique novamente a configuração.
sudo icinga2 daemon -C
Por fim, se for bem-sucedido, recarregue:
sudo service icinga2 restart
Parabéns! Agora você está usando o Icinga2 em um modelo de cliente principal e agora pode evitar a necessidade de usar as verificações inseguras de NRPE!
O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes
Usando um sistema diferente? Introdução O CyberPanel é um dos primeiros painéis de controle do mercado, tanto de código aberto quanto de OpenLiteSpeed. What thi
Usando um sistema diferente? O ESpeak pode gerar arquivos de áudio de conversão de texto em fala (TTS). Isso pode ser útil por vários motivos, como criar seu próprio Turim
Usando um sistema diferente? O LibreNMS é um sistema de monitoramento de rede de código aberto completo. Ele usa o SNMP para obter os dados de diferentes dispositivos. Uma variedade
Usar um usuário sudo para acessar um servidor e executar comandos no nível raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sud
Usando um sistema diferente? O RabbitMQ é um intermediário de mensagens de código aberto amplamente usado, escrito na linguagem de programação Erlang. Como um middleware orientado a mensagens
Usando um sistema diferente? O RTMP é ótimo para veicular conteúdo ao vivo. Quando o RTMP é emparelhado com o FFmpeg, os fluxos podem ser convertidos em várias qualidades. Vultr i
Usando um sistema diferente? Gradle é um conjunto de ferramentas de automação de compilação de código aberto e gratuito baseado nos conceitos do Apache Ant e Apache Maven. Gradle fornece
Usando um sistema diferente? Neste guia, veremos como configurar um servidor FTP (ProFTPd) para transferir arquivos entre o seu PC e o seu servidor.
Usando um sistema diferente? O Netdata é uma estrela em ascensão no campo do monitoramento de métricas do sistema em tempo real. Comparado com outras ferramentas do mesmo tipo, o Netdata:
Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta
Neste tutorial, aprenda como configurar um servidor multiplayer Just Cause 2. Pré-requisitos Verifique se o sistema está totalmente atualizado antes de começarmos
Usando um sistema diferente? Neste tutorial, explicarei como configurar um servidor Starbound no CentOS 7. Pré-requisitos Você precisa ser o proprietário deste jogo
O ZNC é um segurança IRC gratuito e de código aberto que permanece permanentemente conectado a uma rede para que os clientes possam receber mensagens enviadas enquanto estiverem offline. Thi
O Django é uma estrutura Python popular para escrever aplicativos da web. Com o Django, você pode criar aplicativos mais rapidamente, sem reinventar a roda. Se você quiser você
Outubro é um sistema de gerenciamento de conteúdo de código aberto baseado no Laravel PHP Framework. Com uma interface elegante e uma arquitetura modular concisa
Após alterar a porta SSH, configurar a batida na porta e fazer outros ajustes para a segurança SSH, talvez haja mais uma maneira de protegê-lo
Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL
Usando um sistema diferente? O Directus 6.4 CMS é um sistema de gerenciamento de conteúdo sem cabeça (CMS) poderoso e flexível, gratuito e de código aberto que fornece
Usando um sistema diferente? O Reader Self 3.5 é um leitor de RSS auto-hospedado, simples e flexível, gratuito e de código aberto, e uma alternativa ao Google Reader. Leitor Sel
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.
O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+
Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.
Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais
13 Ferramentas de Extração de Dados Comerciais de Big Data
Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true
À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.
Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1
A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA na área da saúde ainda está crescendo dia a dia.