# apt-get install zabbix-agent
# systemctl start zabbix-agent# apt-get enable zabbix-agentConteúdo técnico, ferramentas e experiências práticas da IceNex.
# apt-get install zabbix-agent
# systemctl start zabbix-agent# apt-get enable zabbix-agentHoje vamos falar de monitoração, mais precisamente de monitoração com a ferramenta Zabbix.
Além disso é possível criar regras de relacionamento para análise de causa raiz para problemas que ocorram.
Sem contar a possibilidade de monitorar recursos por agente, sem agente, SNMP, IPMI e JMX. É realmente uma grande quantidade de opções.
Bem, vamos lá, para parte prática!
Nosso cenário será o seguinte:
# wget https://repo.zabbix.com/zabbix/5.2/debian/pool/main/z/zabbix-release/zabbix-release_5.2-1+debian10_all.deb# dpkg -i zabbix-release_5.2-1+debian10_all.deb# apt-get update
# apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
# apt-get install mariadb-common mariadb-server mariadb-client
# systemctl start mariadb ; systemctl enable mariadb
# mysql_secure_installation
Enter current password for root (enter for none): Pressione Enter
Set root password? [Y/n]: Y
New password: <Enter root DB password>
Re-enter new password: <Repeat root DB password>
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
- Criando o database -
# mysql -uroot -p'Senha-do-Banco-de-Dados' -e "create database zabbix character set utf8 collate utf8_bin;"
- Permitindo conexão -
# mysql -uroot -p'Senha-do-Banco-de-Dados' -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'Senha-do-usuario-zabbix';"
- Importando o schema e data-
# mysql -uroot -p'Senha-do-Banco-de-Dados' zabbix -e "set global innodb_strict_mode='OFF';"
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'Senha-do-usuario-zabbix' zabbix
- Habilitando o strict mode -
# mysql -uroot -p'Senha-do-Banco-de-Dados' zabbix -e "set global innodb_strict_mode='ON';"
DBPassword=Senha-do-usuario-zabbix
Até mesmo no ambiente produção (fora este lab que estamos fazendo) é bom já deixar anotado para solicitar ou fazer as liberações no firewall.
3 - Agora vamos fazer o start e enable do serviço Zabbix Server e Agent Processes
# systemctl restart zabbix-server zabbix-agent ; systemctl enable zabbix-server zabbix-agent
php_value date.timezone America/Sao_Paulo
# systemctl restart apache2 ; systemctl enable apache2
Fala pessoal, beleza?
Espero que estejam todos bem!
Conforme meu post sobre Jenkins e pipeline para deploy de uma aplicação, vamos para segunda parte.
A primeira parte foi apenas para instalação e a segunda agora é para criação e uso de um pipeline.
Vamos definir pipeline como uma sequência de instruções que serão executadas até finalizar e prover uma entrega.
Nosso cenário será o seguinte:
Uma observação importante: Eu não sou um expert e nem estou falando que este modelo de pipeline que estou propondo é o melhor e que não podemos fazer de outra forma. Essa foi uma forma que achei para ajudar em uma necessidade do meu dia-a-dia, OK? Cada um deve avaliar a melhor forma de usar a estrutura de funcionalidade e adaptar para o seu uso.
Agora vamos a criação do pipeline na console do Jenkins.
Para isso clicar em New Job - Insira um nome - Clique em pipeline - OK
pipeline {
agent none
environment {
IP = "xx.xx.xx.xx"
}
stages {
stage ('Copia o pacote da aplicacao para o servidor') {
agent any
steps {
sh '''#!/bin/bash
scp /home/jenkins/repoapp/mon-java.tar.gz root@$IP:/opt
'''
}
}
stage ('SSH + desccompacta pacote do aplicacao') {
agent any
steps {
sh '''#!/bin/bash
ssh -o StrictHostKeyChecking=no root@$IP << EOF
tar xzvf /opt/mon-java.tar.gz -C /opt
exit
EOF
'''
}
}
stage ('Adiciona usuario banco Postgres e muda permissao do data e tmp'){
agent any
steps {
sh '''#!/bin/bash
ssh -o StrictHostKeyChecking=no root@$IP << EOF
useradd -m -d /opt/ManageEngine/OpManager/pgsql/ postgres
chown -R postgres:postgres /opt/ManageEngine/OpManager/pgsql/tmp/
chown -R postgres:postgres /opt/ManageEngine/OpManager/pgsql/data/
exit
EOF
'''
}
}
stage ('Cria o serviço e incia a aplicacao'){
agent any
steps {
sh '''#!/bin/bash
ssh -o StrictHostKeyChecking=no root@$IP << EOF
cd /opt/ManageEngine/OpManager/bin/
./linkAsService.sh
systemctl daemon-reload
systemctl start OpManager.service
exit 0
EOF
'''
}
}
stage ('Alguns tunings na aplicacao'){
agent any
steps {
sh '''#!/bin/bash
ssh -o StrictHostKeyChecking=no root@$IP << EOF
sed -i 's/wrapper.java.initmemory=512/wrapper.java.initmemory=600/g' /opt/ManageEngine/OpManager/conf/wrapper.conf
sed -i 's/wrapper.java.maxmemory=1024/wrapper.java.maxmemory=1500/g' /opt/ManageEngine/OpManager/conf/wrapper.conf
sed -i 's/24MB/1024MB/g' /opt/ManageEngine/OpManager/pgsql/data/postgres_ext.conf
sleep 4m
exit
EOF
'''
}
}
}
}Fala galera, beleza?
Espero que tudo bem ...
Hoje muito se fala de automação, entraga de forma automatizada, DevOps, etc.
Bem, pensando nisso eu resolvi fazer dois posts, sendo o primeiro com o passo-a-passo de instalação de Jenkins no Debian (já vou começar a fazer os labs no Debian, visto que o projeto do CentOS está chegando ao fim) e o segundo post com um exemplo de um pipeline para automatizar a entrega de uma ferramenta de monitoração, algumas customizações do SO, criação de serviço e start.
Primeiramente ... O que é Jenkins?
- Nada mais é do que um servidor/serviço de automação gratuito muito utilizado hoje em dia em esteiras DevOps para entrega contínua.
Para saber mais sobre o projeto, basta acessar o site oficial: https://www.jenkins.io/
Laboratório utilizado:
# apt-get update
# apt-get install default-jdk
# wget –q –O – https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add –
# sh –c ‘echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’
# apt-get update && apt-get install jenkins
# systemctl start jenkins ; systemctl enable jenkins# cat /var/lib/jenkins/secrets/initialAdminPassword
$ sudo apt install isc-dhcp-server
$ sudo vi /etc/default/isc-dhcp-server
$ sudo vi /etc/dhcp/dhcpd.conf
# This is a very basic subnet declaration.
#subnet 10.254.239.0 netmask 255.255.255.224 {
#range 10.254.239.10 10.254.239.20;
#option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
#}
$ sudo /etc/init.d/isc-dhcp-server start
$ sudo /etc/init.d/isc-dhcp-server status