UserParameter com script

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    UserParameter com script

    Boa tarde, estou fazendo algumas alterações no Template e os scripts que achei na internet, existem alguns scripts que estão dando certo e outros que não, acredito que o originalmente ele deve ter sido escrito para VInit e não para o Systemd que vem com o Centos 7, então terei que arrumar algumas coisas.
    Primeiro coloquei no zabbix_agentd.conf as linhas do UserParameter conforme abaixo:
    UserParameter=ast.up,/home/zabbix/ast_up.sh

    UserParameter=calls.num,/home/zabbix/calles_num.sh

    UserParameter=cpu.load,/home/zabbix/cpu_load.sh

    UserParameter=disk.space,/home/zabbix/disk_space.sh

    UserParameter=last.reload,/home/zabbix/ast_uptime_last_reload.sh

    UserParameter=mmysql.stat,/home/zabbix/mysql_status.sh

    UserParameter=mariadb.stat,/home/zabbix/mariadb_status.sh

    UserParameter=main.space,/home/zabbix/main_space.sh

    UserParameter=regis.time,/home/zabbix/ms_time.sh

    UserParameter=trunk.down,/home/zabbix/trunk_down.sh

    UserParameter=boot.space,/home/zabbix/boot_space.sh

    UserParameter=worng.pass,/home/zabbix/worng_pass.sh

    UserParameter=call.graf,/home/zabbix/graf_calls.sh

    UserParameter=total.proc,/home/zabbix/total_proc.sh

    UserParameter=proc.graf,/home/zabbix/total_proc_graf.sh

    UserParameter=failban.stat,/home/zabbix/fail2ban_up.sh

    UserParameter=firewalld.up,/home/zabbix/firewalld_status.sh

    UserParameter=iptables.up,/home/zabbix/iptables_status.sh

    UserParameter=long.call, /home/zabbix/longest_call.sh

    UserParameter=mount.down,/home/zabbix/mount_down.sh

    UserParameter=Replica.check,/home/zabbix/Replica_check.sh

    UserParameter=ast.crash,/home/zabbix/ast_crashes.sh
    Criei a pasta zabbix no home, com a permissão do usuário zabbix poder executar, o usuário zabbix já existe desde a instalação do zabbix, e dei permissão para o usuário e grupo zabbix, colocando permissão de excução para o grupo e usuário.
    Quando executo o firewalld_status.sh que internamente tem o código abaixo:
    #!/bin/bash

    /sbin/service firewalld status >/dev/null 2>&1
    if [ $? = 0 ]; then
    echo "1"
    else
    echo "0"
    fi
    Ele me mostra o resultado 1, por estar em execução, mais quando ele executa o script pelo agent ele não puxa os dados do mesmo, o campo fica em branco, coloquei a tela do item em anexo de como está, se puderem me dar uma ajuda agradeço, obrigado e otima tarde para todos.

    Marcelo Duarte
    Campo Grande-MS/Brasil
    Attached Files

    #2
    Imagem melhor a outra estava em baixa qualidade.
    Attached Files

    Comment


      #3
      Respondendo a minha propria duvida rs.
      Coloquei sudo antes de cada comando e dei permissão para que o usuario zabbix não peça a senha, mudei o template ficando assim:

      para o arquivo zabbix_agent.conf

      # total number of asterisk extensions
      UserParameter=asterisk.extensions_total,sudo -u zabbix sudo asterisk -rx "database show" | grep DEVICE | grep dial | wc -l

      # number of registered extensions
      UserParameter=asterisk.extensions_online,sudo -u zabbix sudo asterisk -rx "database show" | grep Registry | wc -l

      # number of offline extensions
      UserParameter=asterisk.extensions_offline,sudo -u zabbix sudo asterisk -rx "sip show peers" | grep -v trunk | grep -v --text -i "sip peers" | grep -v Forceport | grep UNKNOW | wc -l

      # total number of trunks
      UserParameter=asterisk.trunks_total,sudo -u zabbix sudo asterisk -rx "sip show registry" | grep -v "registrations" | grep -v "Reg.Time" | wc -l

      # number of registered trunks
      UserParameter=asterisk.trunks_online,sudo -u zabbix sudo asterisk -rx "sip show registry" | grep -v "registrations" | grep -v "Reg.Time" | grep Registered | wc -l

      # number of offline trunks
      UserParameter=asterisk.trunks_offline,sudo -u zabbix sudo asterisk -rx "sip show registry" | grep -v "registrations" | grep -v "Reg.Time" | grep -v Registered | wc -l

      # number of active calls
      UserParameter=asterisk.active_calls,sudo -u zabbix sudo asterisk -rvvvvvx 'core show channels'| grep --text -i 'active call'| cut -d ' ' -f1

      # number of seconds since last asterisk start
      UserParameter=asterisk.uptime,sudo -u zabbix sudo asterisk -rx "core show uptime seconds" | grep --text -i "System uptime:" | gawk '{print $3}'

      # number of asterisk processes
      UserParameter=asterisk.asterisk_running,sudo -u zabbix sudo ps cax | grep asterisk | wc -l

      # number of httpd processes
      UserParameter=asterisk.httpd_running,sudo -u zabbix sudo ps cax | grep httpd | wc -l

      # number of mysqld processes
      UserParameter=asterisk.mysqld_running,sudo -u zabbix sudo ps cax | grep mysqld | wc -l

      # number of fail2ban processes
      UserParameter=asterisk.fail2ban_running,sudo -u zabbix sudo ps cax | grep fail2ban | wc -l

      # number of fail2ban active chains
      UserParameter=asterisk.fail2ban_active,sudo -u zabbix sudo iptables -nL | grep Chain | grep -E 'f2b|fail2ban' | wc -l

      É necessário dar a permissão para o usuário zabbix executar alguns comandos sem pedir senha, então editei o arquivo sudoers ficando assim no final dele:

      Cmnd_Alias ZABBIX = /usr/sbin/service,/usr/bin/systemctl,/usr/bin/nmap,/usr/bin/mysqladmin,/usr/sbin/asterisk,/bin/ps,/sbin/iptables,/usr/sbin/firewalld,/usr/sbin/firewall-cmd
      Defaults:zabbix !requiretty
      zabbix ALL=(ALL) NOPASSWD:ZABBIX

      A primeira linha Cmnd_Alias ZABBIX é onde colocar o caminho completo de todo o executavel que não irá pedir senha

      A segunda linha é para não exigir um terminal, no arquivo /etc/passwd o usuáio zabbix esta assim:
      zabbix:x:995:993:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
      Desta forma ele não pedira um login e o usuario não pode executar nenhum terminal só estes comandos, sem senha.

      E a patir dai configurar o zabbix com o template do asterisk.

      Comment

      Announcement

      Collapse
      No announcement yet.
      Working...
      X