quinta-feira, 6 de junho de 2019

Zabbix 4.2.2 - Problemas encontrados

Ultima Atualização: 06/06/2019
Problemas encontrados: 3
Problemas corrigidos: 3

Atualizei recentemente o Zabbix da versão 4.0 para a 4.2, os problemas encontrados serão reportados abaixo e mostrarei como solucioná-los. À medida que for encontrando mais problemas irei atualizando esta postagem.

1) Insufficient file system permissions. Assets cache directory is not writable.
Basta dar permissão ao usuário apache.
chown apache:apache /usr/share/zabbix/assets

2) Legenda dos gráficos ausente
Para esta correção basta criar um link simbólico referenciando o arquivo das fontes
cd /usr/share/zabbix/assets/fonts

ln -s /usr/share/zabbix/fonts/graphfont.ttf

3) Barra de rolagem horizontal de mapas grandes ausente
Adicionar linha aos estilos CSS blue e dark
vim /usr/share/zabbix/assets/styles/blue-theme.css

vim /usr/share/zabbix/assets/styles/dark-theme.css

Antes da alteração:
.sysmap-scroll-container {
  overflow-x: auto;
  overflow-y: hidden;
  position: relative;
  width: calc(100% - 20px);
  border: 10px solid #fff;
  background: #fff;
  display: block;
  margin: 4px 0; }

Após alteração (em negrito):
.sysmap-scroll-container {
  overflow-x: auto;
  overflow-y: hidden;
  position: relative;
  width: calc(100% - 20px);
  border: 10px solid #fff;
  background: #fff;
  display: block;
  margin: 4px 0; 
  width: max-content; }

quarta-feira, 5 de junho de 2019

CentOS + Grafana + Zabbix

Segue abaixo os passos para fazer a integração do Grafana ao Zabbix.
Testado com CentOS 7/8 e Zabbix.

Instalando os pacotes necessários
yum install fontconfig freetype* urw-fonts -y

Configurando o repositório do Grafana
vim /etc/yum.repos.d/grafana.repo

[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

Atualizando a lista de repositórios
yum repolist all

Instalando o Grafana
yum install grafana -y

Iniciando o serviço do Grafana e habilitando na inicialização do Sistema Operacional

Via INIT.D
service grafana-server start

chkconfig --add grafana-server

Via SYSTEMD
systemctl daemon-reload

systemctl start grafana-server

systemctl enable grafana-server

Instalando plugin para integração com o Zabbix
grafana-cli plugins install alexanderzobnin-zabbix-app

Instalando plugin para criar gráfico em formato Pizza e Donut
grafana-cli plugins install grafana-piechart-panel

Caso queira listar os plugins disponíveis
grafana-cli plugins list-remote

Reiniciando o serviço Grafana
systemctl restart grafana-server

Caso utilize firewall, libere as portas dele para acessar o Grafana
firewall-cmd --add-port=3000/tcp --permanent

firewall-cmd --reload

Agora você já pode acessar o servidor do Grafana pela porta 3000.

Arquivos do Grafana
Binários: /usr/sbin/grafana-server
O script de inicialização: /etc/init.d/grafana-server
Systemd: grafana-server.service
Instala o arquivo padrão (ambiente vars): /etc/sysconfig/grafana-server
Arquivo de configuração: /etc/grafana/grafana.ini
Log do grafana: /var/log/grafana/grafana.log
Banco de dados do Grafana é em Sqlite3 e fica em: /var/lib/grafana/grafana.db

http://ipdoservidor:3000


Utilize o usuário e senha padrão:

usuário: admin
senha: admin

No primeiro logon pedirá para alterar a senha do usuário admin.


Em Configuration/Plugins habilite o plugin do Zabbix


Configurar o plugin para acessar a API do Zabbix, vá em Home depois em Add data source


Ao selecionar Zabbix, preencher com as seguintes informações:

Nome: Nome da Datasource
URL: http://ipdozabbix/zabbix/api_jsonrpc.php
Access: Browser
Username: Admin
Password: Senha (da conta Admin do Zabbix)
Trends: Habilite o Trends
Zabbix Version: Selecione a sua

Clicar em Save & Test.

Agora você já pode administrar os usuários e criar seus dashboards.

terça-feira, 4 de junho de 2019

Atualizar Zabbix 4.0 para 4.2

Segue abaixo os passos para atualização do sistema Zabbix da versão 4.0 para a versão 4.2.
Todos os comando foram testados em CentOS 7 e levou uma média de 3 minutos com o servidor parado. É bem interessante fazer um backup antes do procedimento, mas fiz e refiz em máquina virtual similar ao servidor de produção e só tive 2 problemas, suas respectivas soluções já constam no final do passo a passo.

CentoOS 7
systemctl stop zabbix-server

rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm

yum clean all

yum makecache

Debian 9
rm -Rf /etc/apt/sources.list.d/zabbix.list

wget https://repo.zabbix.com/zabbix/4.2/debian/pool/main/z/zabbix-release/zabbix-release_4.2-1+stretch_all.deb

dpkg -i zabbix-release_4.2-1+stretch_all.deb

apt update

Ubuntu 18
rm -Rf /etc/apt/sources.list.d/zabbix.list

wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+bionic_all.deb

dpkg -i zabbix-release_4.2-1+bionic_all.deb

apt update

Comando para checar os itens instalados que precisam ser atualizados
rpm -qa | grep zabbix

No meu caso, retornou: zabbix-release, zabbix-agent, zabbix-web e zabbix-server-mysql
yum upgrade zabbix-server-mysql zabbix-web zabbix-agent zabbix-get

Debian 9 / Ubuntu 18
apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent

Voltando com o serviço
systemctl start zabbix-server

systemctl start zabbix-agent

ERROS ENCONTRADOS

Ao voltar o serviço, obtive o erro INSUFFICIENT FILE SYSTEM PERMISSIONS. ASSETS CACHE DIRECTORY IS NOT WRITABLE, para corrigir utilizei o comando abaixo.
chown apache:apache /usr/share/zabbix/assets

Também notei que os gráficos ficaram sem suas legendas, para corrigir utilizei os comandos abaixo.
cd /usr/share/zabbix/assets/fonts

ln -s /usr/share/zabbix/fonts/graphfont.ttf

terça-feira, 23 de outubro de 2018

Analisando o valor do tmp_table_size


1. Encontrar o valor atual do tmp_table_size

mysql> show global variables like 'tmp_tables_size';
Empty set (0,26 sec)

2. Encontrar a porcentagem de tabelas criadas no disco

mysql> show global status like 'created_tmp_disk_tables';
+-------------------------+--------+
| Variable_name           | Value  |
+-------------------------+--------+
| Created_tmp_disk_tables | 125193 |
+-------------------------+--------+
1 row in set (0,00 sec)

3. Continuando

mysql> show global status like 'created_tmp_tables';
+--------------------+--------+
| Variable_name      | Value  |
+--------------------+--------+
| Created_tmp_tables | 411690 |
+--------------------+--------+
1 row in set (0,01 sec)

4. Calculando

Tmp_disk_tables=((created_tmp_disk_tables*100/(created_tmp_tables+created_tmp_disk_tables))
= ((125193*100/(411690 + 125193))
= 23.32%

5. Ajustando

Caso o valor encontrado no cálculo do item 4 exceda 25%, aumentar o valor da variável tmp_table_size e repetindo o mesmo valor na variável max_heap_table_size

vi /etc/my.cnf
tmp_table_size=xxx
max_heap_table_size=xxx

6. Reiniciar o serviço MySQL

segunda-feira, 22 de outubro de 2018

Otimizazando o table_open_cache

Para obter os melhores valores desta variável, acesse o banco de dados e siga os passos abaixo:

1. Pegando os valores atuais de open_tables e opened_tables

mysql> show global status like 'open%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Open_files               | 0     |
| Open_streams             | 0     |
| Open_table_definitions   | 363   |
| Open_tables              | 400   |
| Opened_files             | 658   |
| Opened_table_definitions | 363   |
| Opened_tables            | 42565 |
+--------------------------+-------+
7 rows in set (0,00 sec)

2. Descobrindo a taxa de ocorrência do Table Cache

Taxa de ocorrência = table_open_cache*100/Opened_tables.  
                   = 400*100/42565
                   = 0.94%
Em geral este valor deve ser acima de 50%.

3. Achar o total de tabelas do seu banco de dados

mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE';
+----------+
| COUNT(*) |
+----------+
|      144 |
+----------+
1 row in set (0,01 sec)

4. Encontrar threads atualmente conectadas ao banco de dados

mysql> show global status like '%Threads_connected%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 199   |
+-------------------+-------+
1 row in set (0,00 sec)

5. Calculando o valor do table_open_cache

Table_open_cache = total_tables*Threads_connected*.50
                 = 144*199*.50
                 = 14328

6. Calculando o valor do open_files_limit

open_files_limit= Table_open_cache*2
                = 14328*2
                = 28656

7. Editar as variáveis no arquivo

vi /etc/my.cnf
table_open_cache=39390
open_files_limit=78780

8. Reiniciar o serviço MySQL
 

terça-feira, 5 de junho de 2018

Console com caracteres diferentes

Algumas vezes via console, o mesmo fica com o teclado e os caracteres desconfigurados. Para corrigir esse problema e reconfigurá-los para o padrão PT_BR, basta seguir os passos abaixo.

dpkg-reconfigure locales

"Locales" a serem gerados:
  • en_US.UTF-8 UTF-8
  • pt_BR ISO-8859-1

Locale padrão para o ambiente do sistema
  • pt_BR.UTF-8

apt-get install console-data
dpkg-reconfigure console-data

  • Política para gerenciar mapas de teclados: Selecionar mapa de teclado da lista de arquiteturas
  • Família do layout do teclado: qwerty
  • Layout de teclado: Brazilian
  • Variante do teclado: BR-Latin1

dpkg-reconfigure console-setup

  • Configuração para usar no console: UTF-8
  • Conjunto de caracteres suportados: Latin1 e Latin5
  • Fonte para o console: Fixed
  • Tamanho da fonte: 8x16

Ubuntu Server Atualizar Versão

O tutorial abaixo serve para atualizar da versão 16.04 LTS para versão 18.04 LTS.

apt update
apt dist-upgrade
apt autoremove
apt-get install update-manager-core
nano /etc/update-manager/release-upgrades

Verificar se no final do arquivo /etc/update-manager/release-upgrades

Prompt=lts

do-release-upgrade -d

Confirmar nas solicitações.