Инструменты пользователя

Инструменты сайта


faq:zabbix

Настройка Zabbix агента v.5

Обратно к инструкциям Опишем ручной способ настройки и запуска Zabbix агента.

  1. Подключаемся к АТС по ssh см. инструкции
  2. Создадим рабочие каталоги:
    mkdir -p /storage/usbdisk1/mikopbx/custom_modules/zabbix/scripts
  3. Опишем файл настроек zabbix
    cat > /storage/usbdisk1/mikopbx/custom_modules/zabbix/zabbix_agentd.conf
  4. Вставляем содержимое файла
    Server=172.16.156.181
    ServerActive=172.16.156.181
    Hostname=mikopbx
    AllowRoot=1
    LogType=system
    UserParameter=asterisk[*],/storage/usbdisk1/mikopbx/custom_modules/zabbix/scripts/asterisk-stats.sh $1
  5. IP / Адрес сервера укажите свой.
  6. Hostname укажите тот же, что и в интерфейсе Zabbix сервера
  7. Нажмите комбинацию клавиш CTRL + D для заверения редактирования файла
  8. Создадим скрипт для получения информации о системе
    cat > /etc/zabbix/scripts/asterisk-stats.sh
  9. Вставьте содержимое :
    #!/bin/sh
    
    ASTERISK='/usr/sbin/asterisk';
    PHP_INFO="$(dirname "$0")/AsteriskInfo.php";
    
    status(){
      pidData=$(/bin/busybox ps | /bin/busybox grep '/usr/sbin/asterisk -f' | /bin/busybox grep -v grep);
      if [ "${pidData}x" = "x" ]; then
        echo 0
      else
        echo 1
      fi
    }
    
    statusReload(){
        reloadTime=$("$ASTERISK" -rx "core show uptime seconds" | awk -F": " '/Last reload/{print$2}');
        if [ -z "$reloadTime" ];then
            echo "Asterisk has not been reloaded yet"
        else
            printf '%dd:%dh:%dm:%ds\n' $((reloadTime/86400)) $((reloadTime%86400/3600)) $((reloadTime%3600/60)) $((reloadTime%60))
        fi
    }
    statusUptime(){
        upTime=$("$ASTERISK" -rx "core show uptime seconds" | awk -F ": " '/System uptime/{print$2}');
        if [ -z "$upTime" ];then
            echo "Asterisk is not up"
        else
            printf '%dd:%dh:%dm:%ds\n' $((upTime/86400)) $((upTime%86400/3600)) $((upTime%3600/60)) $((upTime%60))
        fi
    }
    
    callsActive(){
        CALL=$("$ASTERISK" -rx "core show channels" | grep "active call"| awk '{print$1}');
        echo "$CALL"
    }
    
    channelsActive(){
        CHANNEL=$("$ASTERISK" -rx "core show channels" | grep "active channels" | awk '{print $1}')
        echo "$CHANNEL"
    }
    
    callsProcessed(){
        CALL=$("$ASTERISK" -rx "core show channels" |grep "calls processed"|awk '{print$1}');
        echo "$CALL"
    }
    
    
    ### Execute the argument
    $1
  10. Нажмите комбинацию клавиш CTRL + D для заверения редактирования файла
  11. Опишем скрипт для запуска zabbix агента:
  12. Создадим скрипт для получения информации о системе
    cat > /etc/zabbix/scripts/starter.sh
  13. Вставьте содержимое :
    #!/bin/sh
    
    confFile="$(/bin/busybox dirname "$(/bin/busybox dirname "$0")")/zabbix_agentd.conf";
    pidData=$(/bin/busybox ps | /bin/busybox grep "$confFile" | /bin/busybox grep -v grep);
    if [ -z "$pidData" ];then
      /usr/sbin/zabbix_agentd -c "$confFile";
    fi
  14. Добавим права на исполнение скрипта
    chmod +x /storage/usbdisk1/mikopbx/custom_modules/zabbix/scripts/*
  15. Нажмите комбинацию клавиш CTRL + D для заверения редактирования файла
  16. Добавим задачу в cron на проверку и запуск zabbix
  17. Перейдите в раздел СистемаКастомизация системных файлов.
  18. Откройте для редактирования конфигурационный файл /var/spool/cron/crontabs/root. Установите режим «Добавлять в конец файла»
  19. Добавьте задачу
    */5 * * * *  /storage/usbdisk1/mikopbx/custom_modules/zabbix/scripts/starter.sh > /dev/null 2> /dev/null
  20. Теперь каждые 5 минут будет запускаться скрипт стартер, если Zabbix процесса нет, то скрипт его запустит

Описание доступных ключей

  • «asterisk[status]» - проверка запущен ли asterisk
  • «asterisk[statusReload]» - как давно был выполнен reload конфигурации
  • «asterisk[statusUptime]» - длительность работы текущего процесса asterisk
  • «asterisk[callsActive]» - количество текущих активных звонков
  • «asterisk[channelsActive]» - количество текущих активных каналов
  • «asterisk[callsProcessed]» - количество обработанных телефонных звонков текущим процессом Asterisk
  • Есть возможность расширить набор ключей, для этого необходимо доработать скрипт asterisk-stats.sh. В квадратных скобках описывается имя функции, ее необходимо описать в shell скрипте

Обратно к инструкциям

faq/zabbix.txt · Последние изменения: 2020/11/30 12:04 — apor