Skip to content

dica

[DICA AVANÇADA] Restringindo o acesso a menus do Zabbix

Atualizado em 19/01/2017.

 

Dica testada apenas no Zabbix 2.4.X.

 

O Zabbix tem três perfis(papeis): user (USER_TYPE_ZABBIX_USER), admin (USER_TYPE_ZABBIX_ADMIN) e super admin (USER_TYPE_SUPER_ADMIN).

Os menus do Zabbix são exibidos de acordo com o perfil que um usuário possui. Editando o código fonte da interface web do Zabbix é possível restringir o acesso aos menus ainda mais.

Exemplo de restrição: habilitar a exibição apenas do menu Monitoramento > Gráficos e desabilitar a exibição dos outros menus para qualquer usuário que possui o perfil user (USER_TYPE_ZABBIX_USER).

 

Observação: Isso afetará todos os usuários que possuírem o perfil  user (USER_TYPE_ZABBIX_USER). A dica abaixo não serve para restringir este acesso a determinada conta de usuário.

 

O arquivo a ser alterado para restringir o acesso aos menus é o PATH_ZABBIX/include/menu.inc.php.  Esse arquivo define quais serão os menus a serem exibidos de acordo com o perfil.

Onde:
PATH_ZABBIX => Diretório que contém a interface Web do Zabbix. Ex.: /var/www/zabbix
 
Abaixo está um trecho do conteúdo editado do arquivo PATH_ZABBIX/include/menu.inc.php. Em vermelho está o que foi adicionado para aplicar a restrição para exibir apenas o menu Monitoramento > Gráficos para usuários do perfil user. Os demais menus serão acessados no mínimo por contas de usuários com o perfil de admin.
 
$ZBX_MENU = array(
    'view' => array(
        'label'                => _('Monitoring'),
        'user_type'            => USER_TYPE_ZABBIX_USER,
        'default_page_id'    => 0,
        'pages' => array(
[...]
            array(
                'url' => 'charts.php',
                'label' => _('Graphs'),
                'sub_pages' => array('chart2.php', 'chart3.php', 'chart6.php', 'chart7.php')
            ),
            array(
                'url' => 'screens.php',
                'label' => _('Screens'),
                'sub_pages' => array('slides.php'),
               'user_type' => USER_TYPE_ZABBIX_ADMIN
            ),
            array(
                'url' => 'maps.php',
                'label' => _('Maps'),
                'sub_pages' => array('map.php'),
               'user_type' => USER_TYPE_ZABBIX_ADMIN
            ),
            array(
                'url' => 'discovery.php',
                'label' => _('Discovery'),
                'user_type' => USER_TYPE_ZABBIX_ADMIN
            ),
[...]
 
O trecho de código acima foi editado e diz que o menu Monitoramento pode ser acessado por um usuário que tenha, no mínimo, o perfil user (USER_TYPE_ZABBIX_USER). Mas veja que alguns sub-menus como: Monitoramento > Telas, Monitoramento > Mapas, Monitoramento > Auto Busca (Discovery) só devem ser acessados por um usuário que possua o perfil  admin (USER_TYPE_ZABBIX_ADMIN).

Observação: O problema é que isso afeta todos os usuários comuns que tem aquele perfil para o qual você está ocultando os menus e obriga você a modificar o código fonte a cada nova atualização do Zabbix. Se quiser continuar mesmo assim, edite e faça testes neste arquivo.

O conteúdo deste arquivo pode mudar em versões novas e se faz necessário entender o código da cada versão afim de evitar problemas.

 

[DICA AVANÇADA] Desabilitando o acesso a página de configurações do perfil de um usuário no Zabbix

a

No Zabbix, o link Configurações ou Configurations serve para acessar a página de configurações de perfil de um usuário, onde é possível mudar a senha, linguagem, tema, enfim.

Se você quiser criar um usuário só para fins de demonstração ou visualização sem que ele acesse a página Configurações para alterar estes dados, siga o seguinte roteiro. Vamos supor que o nome do usuário é demonstracao.

1) Edite o arquivo PATH_ZABBIX/include/defines.inc.php

Onde:

PATH_ZABBIX => Diretório que contém a interface Web do Zabbix. Ex.: /var/www/zabbix

Adicione a linha abaixo para criar uma variável de ambiente.

define('DEMONSTRACAO_USER','demonstracao');

 

2) Edite o arquivo PATH_ZABBIX/profile.php e adicione após a linha 43, as linhas abaixo:

if (CWebUser::$data['alias'] == DEMONSTRACAO_USER) {
 access_deny();
}

Salve todas as alterações e tente acessar o Zabbix com a conta demonstracao.

Verá que não conseguirá acessar a página “Configurações” ao lado do link “Desconectar”. Faça logout e logue com outro usuário e repita o teste.

Verá que qualquer outro usuário poderá mudar as configurações do perfil.

Observação: Isso foi testado no Zabbix 2.4.4.

[DICA AVANÇADA] Aumentando a quantidade dos últimos incidentes a serem exibidos no dashboad

Quero compartilhar mais esta dica com você.

Se quiser aumentar a quantidade dos últimos incidentes a serem exibidos no dashboard do Zabbix, altere o arquivo PATH_ZABBIX_WEB/include/defines.inc.php.

Onde:

PATH_ZABBIX_WEB => é o caminho em que estão os arquivos da interface web. No meu caso é o diretório /var/www/html/zbx.

Neste arquivo altere a linha, conforme o exemplo abaixo:
define(‘DEFAULT_LATEST_ISSUES_CNT’, 200); //No lugar do 200 era 20
PS.: Isto foi testado na versão 2.4.3. Em outras versões do Zabbix, a linha de código e a localização da mesma pode ser alterada.
Depois disso salve o arquivo, reinicie o Apache e veja o resultado da modificação. Altere a quantidade conforme a necessidade do ambiente.

[DICA AVANÇADA] Aumentando o limite de caracteres exibidos pela macro {ITEM.LASTVALUE}

Bom dia!

Quero compartilhar esta dica com você:

Quem já usou ou quer usar a macro {ITEM.LASTVALUE} no nome ou na descrição de uma trigger precisa saber que, por padrão, só são exibidos os 20 primeiros caracteres.

Isto é um problema quando o retorno de um item do tipo texto é usado na descrição de uma trigger, como foi o meu caso.

Para aumentar o número de caracteres a ser exibido pela macro {ITEM.LASTVALUE} apenas para itens do tipo texto, caracter ou log, altere o arquivo PATH_ZABBIX_WEB/include/items.inc.php.

Onde:

PATH_ZABBIX_WEB => é o caminho em que estão os arquivos da interface web. No meu caso é o diretório /var/www/html/zbx.

Neste arquivo altere as linhas 887 e 888, conforme o exemplo abaixo:
  if ($trim && mb_strlen($value) > 2048) { //No lugar de 2048 era 20
                      $value = mb_substr($value, 0, 2048).’…’; //No lugar de 2048 era 20
  }
PS.: Isto foi testado na versão 2.4.3. Em outras versões do Zabbix, as linhas de código e a localização das mesmas pode ser alterada.
Veja nas imagens abaixo o impacto dessa alteração.
config_trigger
Configuração da trigger, usando a macro {ITEM.LASTVALUE} na descrição.
antesResultado da macro exibido antes da alteração.
depois
Resultado da macro exibido depois da alteração.