18 de jun. de 2020

Hands On - Administração do ((OTRS 6)) Community Edition

Grafana com SSL e redirect para porta 80

Olá, meu caro, este é mais um post rápido e direto, quando estamos trabalhando em ambientes de produção com aplicações web, que passam parâmetros de usuário e senha é crucial que tenhamos conexão criptografada e certificados sobre uma conexão criptografada. O ponto mencionado anteriormente é apenas um dos muitos pontos de segurança que precisam ser parametrizados. Nos passos abaixo nós fazemos a configuração de um certificado e redirecionamento da porta 3000 (porta de execução padrão do grafana) para a porta 80. 

Imagem 1 -  Logo grafana 


Estou executando os comandos como usuários root, porém é importante se certificar de que a aplicação está executando com um usuário isolado e com permissões restritas dentro do sistema. Crie um usuário para a aplicação e dê permissão a este usuário para seus arquivos. 




Imagem 2 -  Navegando seguro
Imagem 2 -  Navegando seguro 


Listando os certificados:

# ls -la /etc/ssl/
total 20
drwxr-xr-x.  2 root root   57 Jun 17 14:12 .
drwxr-xr-x. 82 root root 8192 Jun 18 11:30 ..
lrwxrwxrwx.  1 root root   16 Jun 12 11:33 certs -> ../pki/tls/certs
-rw-r--r--.  1 root root 2690 Aug  8  2018 server.crt
-rw-r--r--.  1 root root 1679 Aug  8  2018 server.key


Edite o arquivo /etc/grafana/grafana.ini e altere os parâmetro abaixo para ficar da seguinte maneira.

Antes:

;protocol = http
;http_port = 3000
;cert_file = 
;cert_key =


Depois:

protocol = https
http_port = 3000
cert_file = /etc/certs/server.crt
cert_key = /etc/certs/server.key


Agora bastas reiniciar o Servidor do Grafana.

#sudo -u grafana systemctl restart grafana-server

Fazendo redirect da porta 3000 para porta 80

#iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000


Visualizando as regras NAT de redirecionamento criadas:

# iptables -L -t nat -n -v
Chain PREROUTING (policy ACCEPT 3393 packets, 282K bytes)
 pkts bytes target     prot opt in     out     source               destination
 702K   61M PREROUTING_direct  all  --  *      *       0.0.0.0/0            0.0.0.0/0
 702K   61M PREROUTING_ZONES_SOURCE  all  --  *      *       0.0.0.0/0            0.0.0.0/0
 702K   61M PREROUTING_ZONES  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    4   208 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 3000
    6   312 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 redir ports 3000





Leitura recomendada:

16 de jun. de 2020

Calculadora para Terminal $..


Olá meu caro, o intuito desse post é ser bem simples e direto, se precisar de alguma informação mais específica podem encontrar acessando Guialinux.



Para calcular a soma de dois números:
[root@master ~]# expr 9990 + 150
10140

Para calcular a diferença de dois números:
[[root@master ~]# expr 8080 - 100
7980

Para multiplicar dois números: Note que \ é usada para impedir que o shell interprete o operador *.
[root@master ~]# expr 5 \* 2
10

Observações

  • O comando expr só trabalha nas operações aritméticas com números inteiros. Use a linguagem bc para números com ponto flutuante.
  • O comando dc também pode ser usado para operações aritméticas.

11 de jun. de 2020

Criando uma rotação de arquivo de log no Linux com logrotate


Olá, meu caro!

O logrotate já é o responsável por administrar os logs de muitas aplicações, se você for até a pasta onde  estão as configurações e listar, verá algo como na saída abaixo:



[root@master logrotate.d]# cd /etc/logrotate.d/
[root@master logrotate.d]# ls -la
total 72
drwxr-xr-x.   2 root root  249 May 11 06:24 .
drwxr-xr-x. 141 root root 8192 Jun 11 16:19 ..
-rw-r--r--    1 root root   91 Nov 27  2019 bootlog
-rw-r--r--.   1 root root  160 Sep 19  2018 chrony
-rw-r--r--    1 root root  194 Nov 27  2019 httpd
-rw-r--r--    1 root root  172 Sep 29  2016 iscsiuiolog
-rw-r--r--    1 root root  165 Apr  1 00:31 libvirtd
-rw-r--r--    1 root root  142 Apr  1 00:31 libvirtd.qemu
-rw-r--r--    1 root root  893 Apr  2 14:51 mariadb
-rw-r--r--    1 root root  106 Apr 10  2018 numad
-rw-r--r--.   1 root root  408 Aug  3  2017 psacct
-rw-r--r--    1 root root  115 Apr  2 10:24 samba
-rw-r--r--    1 root root   71 Apr  2 10:17 subscription-manager
-rw-r--r--    1 root root  224 Nov 27  2019 syslog
-rw-r--r--    1 root root   32 Dec  9  2013 up2date
-rw-r--r--.   1 root root  100 Oct 30  2018 wpa_supplicant
-rw-r--r--    1 root root  103 Apr  2 12:56 yum
/var/www/logs/*.log {
    daily
    missingok
    dateext
    dateformat _%Y-%m-%d
    dateyesterday
    rotate 90
    compress
    delaycompress
    compressext
    notifempty
    create 0640 www-data www-data
    sharedscripts
    postrotate
           [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    endscript
    
  
[root@master logrotate.d]#  cd /etc/logrotate.d/
[root@master logrotate.d]#  touch securelog
[root@master logrotate.d]#  chmod 644 securelog; chown root:root securelog
[root@master logrotate.d]#  vi securelog

/var/log/secure.log
{
daily
maxsize 100M
rotate 4
}

Arquivos padrões do logrotate

/var/lib/logrotate.status
/etc/logrotate.conf

Arquivos de configurações do logrotate de amostra
/var/log/messages {
    rotate 5
    weekly
    postrotate
        /usr/bin/killall -HUP syslogd
    endscript
}

"/var/log/httpd/access.log" /var/log/httpd/error.log {
    rotate 5
    mail www@my.org
    size 100k
    sharedscripts
    postrotate
        /usr/bin/killall -HUP httpd
    endscript
}

/var/log/news/* {
    monthly
    rotate 2
    olddir /var/log/news/old
    missingok
    postrotate
        kill -HUP 'cat /var/run/inn.pid'
    endscript
    nocompress
}


Detalhe de cada opção que pode ser utilizada com o logrotate


7 de jun. de 2020

Problemas das máquinas virtuais

A evolução do host de aplicações

Antigamente, quando queríamos montar o nosso sistema, com vários serviços (bancos de dados, proxy, etc) e aplicações, acabávamos tendo vários servidores físicos, cada um com um serviço ou aplicação do nosso sistema, por exemplo:

E claro, não conseguimos instalar os serviços diretamente no hardware do servidor, ou seja, precisamos de um intermediário entre as aplicações e o hardware, que é o sistema operacional. Ou seja, devemos instalar sistemas operacionais em cada servidor, e os sistemas poderiam ser diferentes:

E se quisermos que uma aplicação se comunique com outra ou faça qualquer comunicação externa, devemos conectar os servidores à rede. Além disso, para eles funcionarem, precisamos ligá-los à eletricidade. Logo, havia diversos custos de eletricidade, rede e configuração dos servidores.

Além disso, o processo era lento, já que a cada nova aplicação, deveríamos comprar/montar o servidor físico, instalar o sistema operacional, configurá-lo e subir a aplicação.

Capacidade pouco aproveitada

O que foi falado anteriormente não era o único problema desse tipo de arquitetura. Era muito comum termos servidores parrudos, com uma única aplicação sendo executada, para normalmente ficarem funcionando abaixo da sua capacidade, para quando for necessário, o servidor aguentar uma grande quantidade de acessos. Isso resultava em muita capacidade ociosa nos servidores, com muitos recursos desperdiçados.

Virtualização, uma solução?

Para fugir desses problemas de servidores ociosos e alto tempo e custo de subir e manter aplicações em servidores físicos, surgiu como solução a virtualização, surgindo assim as máquinas virtuais.

As máquinas virtuais foram possíveis de ser criadas graças a uma tecnologia chamada Hypervisor, que funciona em cima do sistema operacional, permitindo a virtualização dos recursos físicos do nosso sistema. Assim, criamos uma máquina virtual que tem acesso a uma parte do nosso HD, memória RAM e CPU, criando um computador dentro de outro:



E se temos uma máquina virtual que está acessando uma parte do nosso hardware como um todo, conseguimos colocar dentro dela uma das nossas aplicações. E replicar isso, criando mais máquinas virtuais com outras aplicações:


Assim, reduzimos a quantidade de servidores e consequentemente os custos com luz e rede. Além disso, dividimos melhor o nosso hardware, aproveitando melhor os seus recursos e diminuindo a ociosidade.

Problemas das máquinas virtuais

Apesar de resolver os problemas do uso de vários servidores físicos, as máquinas virtuais também possuem problemas. Para podermos hospedar a nossa aplicação em uma máquina virtual, também precisamos instalar um sistema operacional nela:

Cada aplicação necessita de um sistema operacional para poder ser executada, e esses sistemas podem ser diferentes. E apesar dos sistemas operacionais serem um software, eles possuem um custo de memória RAM, disco e processamento. Ou seja, precisamos de uma capacidade mínima para manter as funcionalidades de um sistema operacional, aumentando o seu custo de manutenção a cada sistema que tivermos.

Além disso, há um custo de configuração, isto é, liberar portas, instalar alguma biblioteca específica, etc, toda uma configuração que um sistema operacional pede. Também devemos sempre estar atentos à sua segurança, mantendo o sistema de cada máquina virtual sempre atualizado.

Muitas vezes, o tempo voltado para a manutenção das máquinas virtuais era o mesmo tempo voltado para a nossa aplicação em si. Ou seja, acabávamos dividindo o valor da nossa empresa, ao invés de focar somente nas aplicações, dividíamos o trabalho com a manutenção dos sistemas operacionais.

12 de mai. de 2020

OTRS6 - Max email attachment size

Como aumentar o tamanho máximo de um anexo no OTRS 6

Olá, meu caro! Caso se depare com algum e-mail preso na caixa de entrada da central de serviços que contenha algum anexo com tamanho superior a 20MB,tenha ciência que o otrs não capturou este e-mail devido a uma configuração que vem determinada por padrão limitando a captura de chamados com anexos que possuem tamanho superior a um tamanho X. 

Problema

Otrs não captura e-mails com anexos superiores a: X-MB via POP/IMAP (KBytes)
Figura 1 - ícone anexo


Solução

Navegue até adminitração > configurações > procure por "PostMasterMaxEmailSize" e determine o tamanho máximo de anexo em KBytes.  Salve e implante a nova configuração. 


Figura 2 - Configuração do OTRS




Figura 3 - Meme - Fácil deemais





Invalid Secret Key when using a vault and JDK 1.8.0_171 Jboss EAP 7

Proteção do JBoss EAP

Olá, meu caro! Esse post é para registro e auxílio ao problema com a utilização do vault para encriptar senhas no domain.xml ou standalone.xml do Jboss Eap 7 ou outras versões como a 6. O problema foi solucionado em versões superiores a 7.0.  


Ambiente utilizado 
  • Red Hat JBoss Enterprise Application Platform (EAP) 7
  • openjdk version "1.8.0_252"
  • OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
  • OpenJDK Runtime Environment (build 1.8.0_252-b09)
  • Centos 7

Problema 
                                       

O script EAP e vault.sh lançam a seguinte exceção:

[root@wk vault]# ../vault.sh --keystore /opt/jboss-eap/bin/vault/vault.keystore --keystore-password vault22 --alias vault --vault-block vb --attribute password --sec-attr redhat --enc-dir /opt/jboss-eap/bin/vault/ --iteration 50 --salt 1234abcd
=========================================================================

  JBoss Vault

  JBOSS_HOME: /opt/jboss-eap

  JAVA: java

=========================================================================

May 11, 2020 7:07:08 AM java.io.ObjectInputStream filterCheck
INFO: ObjectInputFilter REJECTED: null, array length: -1, nRefs: 1, depth: 1, bytes: 70, ex: n/a
Problem occurred:
java.lang.Exception: WFLYSEC0045: Exception encountered:
	at org.jboss.as.security.vault.VaultSession.initSecurityVault(VaultSession.java:192)
	at org.jboss.as.security.vault.VaultSession.startVaultSession(VaultSession.java:210)
	at org.jboss.as.security.vault.VaultTool.execute(VaultTool.java:193)
	at org.jboss.as.security.vault.VaultTool.main(VaultTool.java:83)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.jboss.modules.Module.run(Module.java:329)
	at org.jboss.modules.Main.main(Main.java:507)
Caused by: org.jboss.security.vault.SecurityVaultException: java.lang.RuntimeException: PBOX00140: Unable to get keystore (/opt/jboss-eap/bin/vault/vault.keystore)
	at org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:210)
	at org.jboss.as.security.vault.VaultSession.initSecurityVault(VaultSession.java:189)
	... 9 more
Caused by: java.lang.RuntimeException: PBOX00140: Unable to get keystore (/opt/jboss-eap/bin/vault/vault.keystore)
	at org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:691)
	at org.picketbox.plugins.vault.PicketBoxSecurityVault.init(PicketBoxSecurityVault.java:205)
	... 10 more
Caused by: java.io.IOException: Invalid secret key format
	at com.sun.crypto.provider.JceKeyStore.engineLoad(JceKeyStore.java:853)
	at java.security.KeyStore.load(KeyStore.java:1445)
	at org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:201)
	at org.picketbox.util.KeyStoreUtil.getKeyStore(KeyStoreUtil.java:151)
	at org.picketbox.plugins.vault.PicketBoxSecurityVault.getKeyStore(PicketBoxSecurityVault.java:688)
	... 11 more



Resolução

Esse problema foi rastreado no BZ / JIRA a seguir e a correção será incluída no EAP 7.1 CP3 e no EAP 6.4 CP21. A correção de bug é o jboss-modules adicionando o pacote com.sun.crypto.provider internamente, para que a solução alternativa a seguir não seja mais necessária para as versões futuras:
  • EAP 6.4.z: https://bugzilla.redhat.com/show_bug.cgi?id=1569958
  • EAP 7.1.z: https://issues.jboss.org/browse/JBEAP-14661
Até o EAP 7.1 CP3 e o EAP 6.4 CP21 serem lançados, você pode solucionar o problema adicionando o com.sun.crypto.provider ao JBOSS_MODULES_SYSTEM_PKGS (que, por sua vez, adiciona o valor à propriedade do sistema jboss.modules.system.pkgs):
  • No standalone.conf ou domain.conf (dependendo do modo que está sendo usado), localizado em JBOSS_HOME/bin/ set ou inclua com.sun.crypto.provider no final da variável JBOSS_MODULES_SYSTEM_PKGS:


Esse problema ocorre no script vault.sh,  esse comando não lê o arquivo conf (standalone.conf ou domain.conf). Até que o patch seja lançado, use JAVA_OPTS para passar a propriedade de sistema jboss.modules.system.pkgs ao executar o vault.sh, por exemplo:
JAVA_OPTS="-Djboss.modules.system.pkgs=com.sun.crypto.provider" 
[root@wk vault]# JAVA_OPTS="-Djboss.modules.system.pkgs=com.sun.crypto.provider" ../vault.sh --keystore /opt/jboss-eap/bin/vault/vault.keystore --keystore-password vault22 --alias vault --vault-block vb --attribute password --sec-attr redhat --enc-dir /opt/jboss-eap/bin/vault/ --iteration 50 --salt 1234abcd
=========================================================================

  JBoss Vault

  JBOSS_HOME: /opt/jboss-eap

  JAVA: java

=========================================================================

May 11, 2020 7:11:19 AM org.picketbox.plugins.vault.PicketBoxSecurityVault init
INFO: PBOX00361: Default Security Vault Implementation Initialized and Ready
WFLYSEC0047: Secured attribute value has been stored in Vault.
Please make note of the following:
********************************************
Vault Block:vb
Attribute Name:password
Configuration should be done as follows:
VAULT::vb::password::1
********************************************
WFLYSEC0048: Vault Configuration in WildFly configuration file:
********************************************
...


Causa raiz
A causa principal disso é o RHSA-2018: 1191 gerenciado no bugzilla 1567126, que protegia como o keystore JCEKS carrega suas chaves no openjdk. Como resultado disso, é necessária uma nova dependência para ler a classe com.sun.crypto.provider.SealedObjectForKeyProtector (finalmente, foi decidido adicionar essa dependência globalmente ao jboss-modules).


Leitura recomendada
  • Como configurar o vault
  • Solução verificada RedHat.
...

9 de mai. de 2020

Grafana 7.0 - Mudanças - Rodando em container e instalando plugin

Olá, meu caro! 

Já falei por aqui algumas dezenas de vezes sobre o grafana, construímos alguns dashboards e hoje irei apresentar a versão 7.0  desta excelente ferramenta utilizada para exibição de métricas que podem ser coletadas de diversas origens distintas. 

Todas as mudanças significativas do Grafana 7.0  podem ser conferidas clicando aqui.
O Grafana é uma ferramenta open source de visualização que pode ser utilizada para exibir dados de várias fontes diferentes, as mais comuns são; GraphiteInfluxDBElasticSearch e Prometheus. 

Figura 0 :) -  Coletas de dados com prometheus

Figura 1 — Grafana e suas fontes de dados (fonte)

Vamos ao download

Clique aqui para o link oficial do Grafana Labs

Ubuntu and Debian(64 Bit)

sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_7.0.0-beta3_amd64.deb
sudo dpkg -i grafana_7.0.0-beta3_amd64.deb


Standalone Linux Binaries(64 Bit)


wget https://dl.grafana.com/oss/release/grafana-7.0.0-beta3.linux-amd64.tar.gz
tar -zxvf grafana-7.0.0-beta3.linux-amd64.tar.gz

Red Hat, CentOS, RHEL, and Fedora(64 Bit)

wget https://dl.grafana.com/oss/release/grafana-7.0.0-beta3.x86_64.rpm
sudo yum install grafana-7.0.0-beta3.x86_64.rpm


Docker(Alpine base image)

docker run -d --name=grafana -p 3000:3000 grafana/grafana:7.0.0-beta3


Quick guide for docker install :) 

Vamos provisionar uma imagem docker, juntamente irei passar o parâmetro para realizar a instalação de um plugin que conecta o Grafana ao Zabbix. Segue o fio.

[root@ansible-1 isweluiz]# yum install docker -y 
[root@ansible-1 isweluiz]# systemctl start docker
[root@ansible-1 isweluiz]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

Para execução da imagem juntamente com o plugin de integração com Zabbix:

docker run -d --name=grafana -p 3000:3000 \
-e "GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app" \
grafana/grafana:7.0.0-beta3

Ok! Vamos olhar como está a nova interface dessa ferramenta incrível em sua versão 7.0.

[root@ansible-1 isweluiz]# docker ps -a
CONTAINER ID        IMAGE                         COMMAND             CREATED             STATUS              PORTS                    NAMES
0b961024dd0f        grafana/grafana:7.0.0-beta3   "/run.sh"           12 seconds ago      Up 12 seconds       0.0.0.0:3000->3000/tcp   grafana





A primeira diferença notável é o visual na tela de login.  A imagem de fundo foi alterada bem como o layout dos campos de login. Ficou mais moderno e fino. Essa tela pode ser personalizada através dos css's.

Acesso padrão:
Usuário: admin
Senha: admin

Figura 2 — Tela de login 

Plugin Zabbix

Para habilitar o plugin do zabbix navegue até a aba plugins e o habilite



Figura 3 — Habilitando plugin zabbix


Para adicionar uma conexão com o zabbix navegue até configuration > data sources, procure por zabbix e passe os parâmetros solicitados, ao final salve e teste a conexão.

Figura 4 — Adicionando datasource com meu servidor zabbix na gcp


Outro novo recurso do Grafana 7.0 é o inspetor de painéis. O Inspecionar permite visualizar os dados brutos de qualquer painel Grafana, além de exportar esses dados para um arquivo CSV. Com o Panel inspecionar, você também poderá realizar transformações simples de dados brutos, como junção, exibição de estatísticas de consulta ou dados de execução detalhados.
Figura 5 —Editando as métricas da nossa conexão com Zabbix, dados do servidor web

Figura 6 — Exibição extendida de uma visualização

Figura 7 - Conjunto de visualizações de um dashboard


Modo de grade automática para painel Stat e Gauge

Esse novo recurso 7.0 é para os painéis de medidores e estatísticas. Antes, o stat e o gauge suportavam apenas o empilhamento horizontal ou vertical: o modo de layout automático selecionava o empilhamento vertical ou horizontal com base nas dimensões do painel (o que fosse mais alto). Porém, no 7.0, o layout automático desses dois painéis permitirá layouts dinâmicos da grade, onde o Grafana tentará otimizar o uso do espaço e organizar cada subvisualização em uma grade.





6 de mai. de 2020

Monitoramento do SGBD MySQL com parâmetros de usuário

Olá, meu caro! 

Algumas vezes você pode precisar executar uma verificação que não faça parte do kit de testes nativos do Zabbix. Nestes casos os parâmetros de usuário poderão estender as funcionalidades da solução para novos testes desenvolvidos por você. Neste cenário iremos utilizar duas instâncias de VM's provisionadas na Google Cloud Plataform.

Instâncias de VM no GCP

Após monitoramento concluído, coleta dos dados do zabbix com Grafana
Após monitoramento concluído, gráfico provisionado no zabbix server
Após monitoramento concluído, gráfico provisionado no zabbix server


Vamos por etapas:
  1. Criar usuário no banco
  2. Conceder acesso as Databases para o usuário criado
  3. Criar arquivo de configuração com acessos ao banco .my.cnf
  4. Criar arquivo com os parâmetros extras userparameters_mysql.conf
  5. Configurar o zabbix_agentd.conf e reiniciar o serviço do agente zabbix


Criar usuário no banco

Vamos criar um usuário para acesso ao nosso banco de dados, este usuário será utilizado apenas para monitoramento, este usuário não terá permissão para acesso remoto ao banco.

Usuário: monitoradb
Password: RK83iLt6 (Gerador de password)

CREATE USER 'monitoradb'@'localhost' IDENTIFIED BY 'password';

Conceder acesso a Databases para o usuário criado

GRANT USAGE ON *.* TO monitdb@localhost IDENTIFIED BY 'RK83iLt6' WITH GRANT OPTION;
Ou
GRANT USAGE ON database.* TO monitdb@localhost IDENTIFIED BY 'RK83iLt6' WITH GRANT OPTION;

Criar arquivo de configuração do MySQL para acesso ao banco

Com um editor de preferência, crie um arquivo chamado .my.cnf e cole os parâmetros de usuário e senha utilizados ao criar o usuário:


[isweluiz@mysql zabbix]$ sudo vim /etc/zabbix/.my.cnf
[mysql]
user=monitdb
password=RK83iLt6
[mysqladmin]
user=monitdb
password=RK83iLt6

Criar arquivo com parâmetros extras - userparameters_mysql.conf

Os parâmetros de usuário são executados pelo Zabbix Agent.


[isweluiz@mysql zabbix]$ sudo vim /etc/zabbix/zabbix_agentd.d/userparameters_mysql.conf
# Sintaxe: mysql.status[variavel] - ex.: mysql.status[Slow_queries]
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix mysql -N | awk '{print $$2}'

# Sintaxe: mysql.size[<database>,<tabela>,<tipo>]
# Database eh o nome da base de dados. O Padrao eh "all".
# Tabela eh o nome da tabela. O padrao eh "all". Se a tabela for especificada, o database eh obrigatorio.
# Tipo pode ser "data", "index", "free" ou "both". Both eh a soma de "data" e "index". O padrao eh "both"
UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo " and table_name=\"$2\"");" | HOME=/etc/zabbix mysql -N' 

UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V6

Configurar o zabbix_agentd.conf e reiniciar o serviço do agente zabbix

JAR, WAR, EAR?



Entender como funciona o processo de deploy de uma aplicação Web Java e muito comum para quem esta começando, principalmente porque esse processo e feito de forma muito ‘magica’ pelas IDE’s para quem esta começando.

Vou explicar de uma forma bem simples, para que quem esta começando possa compreender de forma fácil como funciona esse processo.

Ao finalizar o desenvolvimento da sua aplicação web, você provavelmente vai querer disponibilizar essa sua aplicação em algum servidor web para que ela se torne publica.

Pacotes

Primeiro você vai precisar ver qual a melhor forma de disponibilizar o código da sua aplicação web, existem alguns tipos de pacotes que servem para diferentes situações.

JAR: Esse não é pra Web, é para classes java mais simples como uma biblioteca. É muito comum para  aplicações Desktop feitas em Java.

WAR (Web Archive): O pacote para Web, neste podem conter arquivos do tipo JAR, HTML, CSS, Imagens etc. Esse é mais utilizado para aplicações web simples ou de baixa complexidade.

EAR (Enterprise Archive): O Pacote para Web Corporativa que pode conter vários WAR e EJBs. Esse pacote é utilizado para aplicações com alta complexidade que necessitam se comunicar com outras aplicações.

Servidores

Dependendo da sua aplicação, você vai precisar disponibiliza-la em um servidor diferente.

Basicamente, as aplicações que serão disponibilizadas via pacote WAR você irá precisar de um Servidor Web, como Apache por exemplo. As aplicações que vão precisar ser disponibilizadas através de pacotes EAR vão precisar de um servidor mais complexo, então precisa ser um Servidor de Aplicação, como o JBoss, Glassfith etc.

Ambos, Servidores Web e Servidores de Aplicação são basicamente a mesma coisa, servidores web que interpretam requisições HTTP. O que muda é o que vem nesses servidores, os Servidores Web são mais simples, já os Servidores de Aplicações vem junto com aplicações auxiliares para implementar JavaEE.

22 de abr. de 2020

LANÇAMENTO DO CURSO OTRS DE A a Z

12 de mar. de 2020

What is JBoss EAP?

Red Hat JBoss Enterprise Application Platform 7, JBoss EAP 7, or simply EAP 7, is an application server that works as a middleware platform, and provides the necessary environment and infrastructure to host and manage Java EE applications. EAP 7 is built on open standards, based on the Wildfly open source software, and provides the following features:
  • It provides a reliable, performant, light-weight and supported infrastructure for deploying applications.
  • It provides a modular structure that allows service enabling, only when required. This improves performance, has security benefits, and reduces start-up and restart times.
  • Web-based management console and management command line interface (CLI) make editing XML configuration files unnecessary, and provide the ability to script and automate tasks.
  • It is Java Enterprise Edition 7 full, and web profile, certified.
  • It provides centralized management of multiple server instances and physical hosts, while a standalone server allows for a single server instance.
  • Pre-configured options for features such as high-availability clustering, messaging, and distributed caching are also provided. JBoss EAP 7 is a cloud-ready application server. It has a very small footprint, fast start-up time, and is automation-friendly. Those features are essential enablers for having an efficient deployment of an application server to a cloud infrastructure. Beyond that, Red Hat provides another offerings for improving EAP 7 cloud deployments: 
  • xPaaS container images for many JBoss middleware products, including EAP 7, as part of the OpenShift Enterprise product
  • Container images for use with Red Hat Enterprise Linux Atomic Host and other Docker-based container hosts, provided by the Red Hat container image registry
  •  Ready to use, supported VM images for Amazon AWS, and other cloud platforms such as Red Hat Enterprise Linux Open Stack Platform and Microsoft Azure deployments to follow
  • Discovery of managed domain server instances deployed as cloud instances

Discovery of clustered server instances deployed as cloud instances or as containers JBoss EAP 7 is part of a growing family of Red Hat JBoss Middleware products, such as:

  • JBoss A-MQ: Multiprotocol, high-performance messaging platform that delivers information reliably, enabling real-time integration
  • JBoss BPM Suite: Business Process Management
  • JBoss BRMS: Business rule management, business resource optimization, and complex event processing (CEP)
  • JBoss Data Grid: In-memory, distributed, NoSQL datastore solution
  • JBoss Data Virtualization: Data supply and integration solution that sits in front of multiple data sources and allows them to be treated as single source
  • JBoss Developer Studio: Integrated development environment (IDE) for developing, testing, and deploying rich web apps, mobile web apps, transactional enterprise apps, and service- oriented architecture (SOA)-based integration apps and services 
  • JBoss Fuse: Lightweight, flexible integration platform that enables rapid integration across the extended enterprise


23 de jan. de 2020

Recapitulando a ITIL - Resumidamente, o conteúdo de cada livro

Hora de recapitular conceitos sobre a ITIL.


Estratégia de serviços: identificação de requisitos e necessidades de negócio que sejam “atendíveis” por serviços de TI. Os requisitos e necessidades são acordados e documentados em um SLP (service level package ou pacote de nível de serviços).

Desenho de serviços: a partir dos requisitos é concebida a solução de TI em forma de serviços, em todos os seus aspectos, que são documentados em um SDP (service design package ou pacote de desenho de serviço). O SDP nada mais é que um documento de especificações e
características dos serviços.

Transição de serviços: trata da implementação em produção. Tal implementação é testada e acompanhada, bem como validada. O SKMS (service knowledge management system – sistema de gestão do conhecimento em serviços de TI) é atualizado com as informações do ambiente de produção.

Operação de serviços: o serviço é mantido em operação e funcionamento de acordo com os níveis de serviço (SLA – service level agreement, ou acordo de nível de serviço) estabelecidos para gerar os resultados esperados.

Melhoria de Serviço Continuada (Melhoria Contínua de Serviços): identifica oportunidades de melhoria no serviço.


Estratégia de Serviços


Objetivo: desenvolvimento de estratégias e modelos organizacionais baseados em serviços. Engloba:

  • Quais serviços serão oferecidos e para quais clientes;
  • Como criar valor para estes clientes;
  • Como fazer que percebam o valor criado;
  • Como desenvolver planos de negócio de modo a obter capacidades e recursos necessários aos serviços;
  • Como otimizar a alocação de recursos;
  • Como medir o desempenho dos serviços.

Conceitos Importantes deste livro:


Competitividade: serviços operam em mercados competitivos; portanto é necessária uma
estratégia de terceirização e provimento os serviços.

4 P's da estratégia de serviço: