anúncios

domingo, 10 de novembro de 2019

Instalando Zabbix 4.4 no Debian 10

O que é Zabbix?

Zabbix é um software que monitora diversos parâmetros de uma rede como a integridade e desempenho dos servidores. Oferece excelentes relatórios e visualização de dados de recursos com base nos dados armazenados, e usa um mecanismo de notificação flexível que permite aos usuários configurar e-mail e integrar com Telegram com alertas para qualquer evento, o que permite uma reação rápida para os problemas do servidor.

Corretamente configurado, o Zabbix pode desempenhar um papel importante no controle da infraestrutura de TI. Isto é igualmente verdade para as pequenas organizações com alguns servidores e para grandes empresas com um grande número de servidores.

Observação: Testado na distribuição GNU/Linux Debian 10 e a versão atual do Zabbix é 4.4 até a data de publicação desta postagem.

Download do pacote Zabbix no Debian 10

# wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+buster_all.deb
# dpkg -i zabbix-release_4.4-1+buster_all.deb
# apt update


Instalação do Server/proxy/frontend

# apt install zabbix-server-mysql
# apt install zabbix-proxy-mysql
# apt install zabbix-frontend-php zabbix-apache-conf

Caso preferir o Nginx como webserver, substituir 'apache' por 'nginx'

Criação do banco de dados para o Zabbix

O SGBD utilizado nesse howto foi MySQL
PS: A partir do MySQL 5.7 e MariaDB 10.2, a autenticação do root é realizado via Socket TCP e o password é o mesmo do usuário regular do sistema.

shell> mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '';
mysql> quit;


Importação do schema e dados no servidor com MySQL

# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

Configuração das credencias para o servidor Zabbix

# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=secret
Configuração do Frontend

Se o webserver for Apache, como utilizado nesse howto, então edite o arquivo /etc/zabbix/apache.conf e ajuste as configurações como segue:
# vim /etc/zabbix/apache.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone America/Sao_Paulo
Case o webserver for Nginx, edite o arquivo /etc/zabbix/nginx.conf e descomente as linhas seguintes:
liste 80;
server_name zabbix.local;
Edite também o arquivo /etc/zabbix/php-fpm.conf para ajustar conforme segue:
php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[date.timezone] = America/Sao_Paulo
Instalação do Agent
# apt install zabbix-agent

Inicialização do Agent
# systemctl start zabbix-agent

Inicialização do servidor Zabbix
# systemctl enable zabbix-server
# systemctl start apache2
# update-rc.d zabbix-server enable


Setup Zabbix
No browser http://IP-SERVIDOR/zabbix
Segue os steps conforme os screenshots seguintes:













O usuário e password default são: Admin/zabbix




Feito!

domingo, 27 de outubro de 2019

Instalando e Configurando ambiente PHP no Fedora

Na postagem Integração do Oracle Client no PHP com Debian/Ubuntu , foi explicado os procedimentos no Debian/Ubuntu. Então, o objeto deste howto é explicar os procedimentos de instalação e configuração do ambiente PHP com as extensões dos SGBDs MySQL, PostgreSQL, OCI8 e módulos PHP usuais na distribuição Fedora 30. A maioria dos procedimentos são os mesmos, mas no Fedora tem algumas particularidades.

Observação: O Fedora 30 já inclui no repositório o PHP 7.3.

1. Instalação dos pacotes Apache, PHP e extensões ao SGBD MySQL, PostgreSQL e posteriormente do OCI8

# dnf install -y httpd php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-curl php-soap php-pgsql

2. Download do pacote Oracle Client
Pacotes oracle-instantclient19.3-basiclite-19.3.0.0.0-1.x86_64.rpm, oracle-instantclient19.3-sqlplus-19.3.0.0.0-1.x86_64.rpm , oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm

PS: Até a data de publicação deste howto a versão corrente do Oracle Cient é 19.3, então no geral basta substituir a versão que for a mais recente.

3. Instalação dos pacotes do download
# dnf install oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
# dnf install oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm
# dnf install oracle-instantclient19.3-sqlplus-19.3.0.0.0-1.x86_64.rpm


4. Criar o arquivo oracle.conf no diretório /etc/ld.so.conf.d/ e dentro do arquivo adicionar
/usr/lib/oracle/19.3/client64/lib
$ sudo vim /etc/ld.so.conf.d/oracle.conf

5. Atualizar as bibliotecas compartilhadas do sistema $ sudo ldconfig

6. Exportar a variável ORACLE_HOME

$ export ORACLE_HOME=/usr/lib/oracle/19.3/client64/

7. Download do código fonte do oci8 e extrair os arquivos e fazer a compilação.

# pecl download OCI8
# tar zxvf oci8-2.2.0.tgz
# cd oci8-2.2.0/
# phpize
# ./configure --with-oci8=instantclient,/usr/lib/oracle/19.3/client64/lib
# make install


8. Habilitar o oci8.ini no diretório de módulos do PHP
# vim /etc/php.d/oci8.ini
extension=oci8.so
extension=pdo_oci.so
9. Habilitar o PHP no Apache
Adicione o .php no arquivo /etc/httpd/conf/httpd.conf
< IfModule mime_module >
   AddType text/html .php .phps
< /IfModule >
10. Habilitar, iniciar e verificar o status do Apache
# systemctl enable httpd
# systemctl start httpd
# systemctl status httpd


11. Testar com a função phpinfo() no info.php se a extensão Oracle foi habilitada
$ sudo vim /var/www/html/info.php
< ?php
phpinfo();


Confere os screenshots abaixo:





Se exibir como no screenshot, então a extensão Oracle no PHP foi habilitada corretamente.

12. Testar conexão com banco de dados Oracle no PHP
Agora para confirmar, teste a conexão com Oracle no script PHP testeconectaoracle.php
< ?php
try{
$conn = new PDO('oci:dbname=//127.0.0.1:1521/testedb; 'oracleuser','password');
if($conn) {
echo "database conectado";
}
}catch (PDOException $e){
// report error message
echo $e->getMessage();
}


No browser http://localhost/testeconectaoracle.php
Com isso, irá aparecer a mensagem "database conectado" , se as credencias do usuário, password e banco estiverem corretas.

Feito!

sexta-feira, 18 de outubro de 2019

Deploy de aplicação PHP no Heroku

O objeto deste howto é explicar os procedimentos para deploy de uma aplicação web desenvolvida em PHP com Framework Laravel no Heroku.

O que é Heroku?

Heroku é uma solução de Plataforma como Serviço ( Platform as a Service - PaaS), no qual o fornecedor entrega para o cliente um ambiente pronto para receber a aplicação. Diferente do IaaS Infraestrutura como Serviço ( Infrastructure as a Service - IaaS), no qual o cliente contrata máquinas (reais ou virtuais) e é responsável pela instalação de bibliotecas, montagem das estruturas do sistema de arquivos, entre outros recursos, o PaaS é uma solução de alto nível que abstrai este tipo de preocupação.

Como o ambiente é entregue pelo fornecedor, ao cliente basta se concentrar em desenvolver e instalar a aplicação. Normalmente nos serviços PaaS a instalação ou atualização é feita através de commits em repositórios remotos vinculados à aplicação, (e.g. GIT).

Requerimentos
  1. Criar a conta no Heroku, caso ainda não tenha;
  2. Instalar o Heroku CLI conforme o SO que estiver instalado;
  3. Instalar o sistema de versionamento GIT;
Após fizer os requerimentos obrigatórios, podemos seguir os procedimentos seguintes:

Acesse até o diretório onde encontra-se o seu projeto desenvolvido em PHP com Framework Laravel

Inicio do repositório local e adicionando os arquivos para commit
git init
git add .
git commit -m "first commit"


Crie um Procfile. Heroku lança um servidor Apache com PHP para servir o aplicativo a partir do DocumentRoot, que no nosso caso é a diretório /public.
echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile

git add Procfile
git commit -m "Heroku Procfile"


Criar a aplicação no Heroku
heroku create nome-app

Buildpack PHP do Heroku
heroku buildpacks:set heroku/php

Acessar o bash do Heroku
heroku run bash

Gerar a KEY da aplicação
php artisan key:generate --show

Adicionar a KEY no .env
heroku config:set APP_KEY = [ colocar a chave gerada aqui ]

Adicionar credenciais do banco de dados no arquivo .env

heroku config:set DB_HOSTNAME = [ colocar o IP do servidor do banco de dados ]
heorku config:set DB_PORT = [ MySQL colocar 3306 ou PostgreSQL colocar 5432 ]
heroku config:set DB_DATABASE = [ colocar o nome do banco de dados ]
heroku config:set DB_USERNAME = [ colocar o usuário de conexão com banco de dados ]
heorku config:set DB_PASSWORD = [ colocar o password do usuário de conexão com banco de dados ]


Push do projeto no repositório remoto GIT no Heroku
git push heroku master --app nome-app

Executar os migrations e seeds no Heroku
php artisan migrate --app nome-app
php artisan db:seed --app nome-app


Abrir a aplicação no browser que definiu como padrão
heroku open --app nome-app

Feito!

quinta-feira, 17 de outubro de 2019

Configurando Proxy Reverso na aplicação web com Tomcat

O objetivo deste howto é explicar os procedimentos de configuração do Proxy Reverso de uma aplicação web com Tomcat no Debian 10 / Ubuntu Server 19.04, por exemplo, uma aplicação que foi desenvolvida em Java como webserver Tomcat e pretende deixar o webserver Apache na frente que faça o redirecionamento ao Tomcat, então nesse cenário se aplica Proxy Reverso.

Segue os procedimentos:

Instalação do Apache

# apt install apache2

Habilitar os módulos no Apache

# a2enmod proxy
# a2enmod proxy_http
# a2enmod proxy_balancer
# a2enmod proxy_ajp

Configuração Proxy no diretório /etc/apache2/mods-enabled/proxy.conf
# vim /etc/apache2/mods-enabled/proxy.conf
< IfModule mod_proxy.c >
ProxyRequests Off
< Proxy * >
AddDefaultCharset off
Order deny,allow
Allow from all
< /Proxy >
ProxyVia On
ProxyPass /aplicacao http://localhost:8080/aplicacao
ProxyPassReverse /aplicacao http://localhost:8080/aplicacao
< /IfModule >

Faça alteração das informações de ProxyPass e ProxyPassReverse conforme sua aplicação que deseja criar o proxy reverso. Após reiniciar o Apache, as alterações estão ativadas e pode acessar http://localhost/aplicacao que será redirecionado para aplicação na porta 8080 do Tomcat.

# systemctl restart apache2

Feito!

domingo, 13 de outubro de 2019

Instalando driver da NVIDIA no Debian e derivados

O objetivo deste howto é explicar os procedimentos de instalação da placa de vídeo NVIDIA no Debian e derivados.

Se aplica também para quem tem VGA híbridos Intel e NVIDIA.



Segue os procedimentos:

1. Acesse o site NVIDIA Drivers , selecione a versão do driver NVIDIA que tem no seu computador ou notebook. Pesquise pela versão NVIDIA
2. $ apt search nvidia
Verifique por nvidia-drivers-X, onde X é a versão mais próxima do resultado encontrado no item 1.
$ sudo apt install nvidia-driver-X
Onde o X é a versão correspondente mais próxima do resultado encontrado no item 1.
3. Verificar o nouveau esta na backlist
$ cd /etc/modprobe.d

olhar o arquivo gerado nvidia-graphics-drivers.conf que contém os conteúdos
blacklist nouveau
blacklist lim-nouveau
alias nouveau off
alias lbm-nouveau off
Caso não gerou o arquivo nvidia-graphics-drivers.conf, então crie-o e adicione o mesmo conteúdo no arquivo.

4. Gerar o arquivo initrd do Kernel

$ sudo update-initramfs -u

Antes de reiniciar, ao executar

$ sudo lsmod | grep -i nvidia
sem retorno

$ sudo lsmod | grep -i nouveau
com retorno

Após reiniciar, o resultado será ao contrário, com retorno da nvidia e nenhum do nouveau.

$ sudo reboot

Feito!

domingo, 6 de outubro de 2019

Configurando ambiente de desenvolvimento PHP no Docker

O objetivo deste howto é apresentar a configuração do ambiente de desenvolvimento PHP no Docker

Com o Docker e Docker compose instalados, adicione o docker-compose.yml na raiz do diretório onde desejar ter o ambiente PHP que ficará os projetos.

A imagem saitam10/apache2-php7.3 inclui o Apache2, PHP 7.3, os módulos usuais, extensões aos SGBD MySQL, PostgreSQL e OCI8 (Oracle) e gerenciador composer

A estrutura do ambiente PHP é essa
ambiente-docker
 apache2-php7.3
      mysql
       data
      php
        Dockerfile
        vhost.conf
      www
      docker-compose.yml

O volume no HOST é www que é mapeado no container PHP /var/www/html

docker-compose.yml



No diretório php, inclui os arquivos Dockerfile e vhost.conf
Dockerfile



vhost.conf



Build do ambiente
Executar docker-compose up -d no diretório raiz do ambiente PHP

Após o build com sucesso, acessar o container PHP docker exec -it apache2-php7.3 bash e instalar o framework PHP de sua preferência, nesse howto é utilizado o Framework Laravel

composer create-project --prefer-dist laravel/laravel projeto

Por fim, adicione no arquivo hosts, no Linux é /etc/hosts, no Windows é c:\windows\system32\drivers\etc\hosts
127.0.0.1 projeto.local
No browser http://projeto.local

Feito!

sexta-feira, 4 de outubro de 2019

Instalando o Docker no Windows

Na postagem anterior foi apresentado a instalação do Docker e Docker Composer no Linux, mas caso use Windows 10 e seu hardware atenda os requisitos necessários, pode instalar e usar o Docker no Windows 10 também.

Os pré-requisitos são:
  • Windows 10 64 bits. Pro/Enterprise/Education
  • Pelo menos 4GB de RAM
  • Suporte de virtualização habilitado na BIOS
Atendendo os pré-requisitos listados, então habilite o Hyper-V e faça o download Docker for Windows e proceda com Next>Next>Finish.

O instalador inclui o Docker e Docker Compose, os comandos são reconhecidos no PowerShell.

Feito!