Ad Widget

Collapse

Zabbix installation on single-board computer

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #1

    Zabbix installation on single-board computer

    Планирую ставить систему мониторинга SkyControl. В пару ей хочу приспособить что-то достаточно экономное по питанию (чтобы долго на бесперебойнике висеть могло в случае аварии) для расширенного анализа показаний SkyControl-a, хранения динамики изменений окружающей среды, рассылки заббикс-агентам разных команд и дерганиями через GPIO разными оповещателями. Айтемов, думаю, будет не более 100 шт.
    Рассматриваю вариант с Cubietruck + 2,5" HDD/SSD, так как Raspberry совсем медленный для такой задачи, как мне кажется.

    Собственно, связанный с этим вопрос: кто-то имеет опыт эксплуатации Zabbix на одноплатном компьютере? Какие подводные камни, что выбрать под хранилище - MySQL или SQLite?
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Сам спросил, сам отвечу.

    Cubietruck (Allwinner A20) + HDD под Debian SD image от Igor Pečovnik.

    Zabbix скомпилировался и встал прекрасно, гораздо проще самой OS (перенос на SATA из NAND с предварительной прошивкой последней lubuntu через EFL). В качестве БД пробовал использовать SQLite3, долго не выдержал - постоянные и раздражающие "lock database" и дуля вместо информация во фронтенде. Возможно, что SSD cможет дать ему шанс, но на стандартном HDD этот вариант ужасен. В итоге остановился на MySQL.

    Графики с системы (MySQL и Zabbix имеют дефолтные настройки), мониторится сам Zabbix Server и SkyControl SC8100, Required server performance = 2.

    Использование CPU


    Очередь CPU


    Потребление энергии


    Температура чипа


    Горбы на графиках - запуск стресс-теста (stress 1.0.1). Второй - с нагрузкой на HDD.
    Как видно из графика потребления электроэнергии - систему без GUI легко можно питать от USB 3, а на бесперебойнике в 1000VA он будет висеть, по грубой оценке, более 13 часов. А вот с охлаждением нужно что-то делать...

    Прикладываю часть конфига для Zabbix-агента и небольшой шаблон для Zabbix-сервера.

    Code:
    # Onboard temperature
    UserParameter=board.temp,cat /sys/devices/platform/sunxi-i2c.0/i2c-0/0-0034/temp1_input
    
    # AC input parameters
    UserParameter=ac.present,cat /sys/class/power_supply/ac/present
    UserParameter=ac.online,cat /sys/class/power_supply/ac/online
    UserParameter=ac.voltage, cat /sys/class/power_supply/ac/voltage_now
    UserParameter=ac.current, cat /sys/class/power_supply/ac/current_now
    UserParameter=ac.power, echo "`cat /sys/class/power_supply/ac/voltage_now` * `cat /sys/class/power_supply/ac/current_now` * 0.000000000001" | bc
    
    # Battery input parameters
    UserParameter=battery.present,cat /sys/class/power_supply/battery/present
    UserParameter=battery.online,cat /sys/class/power_supply/battery/online
    UserParameter=battery.status,cat /sys/class/power_supply/battery/status
    UserParameter=battery.capacity,cat /sys/class/power_supply/battery/capacity
    UserParameter=battery.voltage, cat /sys/class/power_supply/battery/voltage_now
    UserParameter=battery.current, cat /sys/class/power_supply/battery/current_now
    UserParameter=battery.power, echo "`cat /sys/class/power_supply/battery/voltage_now` * `cat /sys/class/power_supply/battery/current_now` * 0.000000000001" | bc
    Attached Files

    Comment

    • aib
      Senior Member
      • Jan 2014
      • 1615

      #3
      Мне понравилось имя вашего сервера - Little Bro.
      Почти "Братец Кролик"...
      Sincerely yours,
      Aleksey

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        Продолжаю издеваться над братом нашим меньшим.

        В качестве эксперимента наподключал к системе разнообразных узлов.

        Итак, в забеге участвовали:
        0) 1 Cubietruck (ARM, 2 ядра), 2.5 SATA HDD, Zabbix 2.4, MySQL 5.x, nginx, php5-fpm
        1) 13 коммутаторов с опросом по snmp (разных производителей), шаблоны Template SNMP Device (Template ICMP Ping, Template SNMP Generic, Template SNMP Interfaces);
        2) 16 Windows/linux серверов с опросом через агентов (виртуальные, физические), шаблоны Template OS Linux (Template App Zabbix Agent, Template ICMP Ping) и Template OS Windows (Template App Zabbix Agent, Template ICMP Ping);
        3) 2 NAS-а с опросом по snmp, свой шаблон + Template ICMP Ping;
        4) 1 Система мониторинга окружающей среды, свой шаблон + Template ICMP Ping.

        Шаблоны для использовались совершенно стандартные, идущие в поставке с Zabbix. Элементы данных - пассивные. Внешние скрипты проверок/lld присутствовали. Никакого специального тюнинга ПО не проводилось.

        Цель эксперимента: понять, насколько комфортно пользоваться Zabbix-ом на компьютере, размером с кусок мыла.
        Метрика: достижение CPU load ~= 1.5, т.е. использование 3/4 доступных процессорных мощностей.

        Status of Zabbix

        Number of hosts (enabled/disabled/templates) 32 / 0 / 44
        Number of items (enabled/disabled/not supported) 4491 / 2 / 171
        Number of triggers (enabled/disabled [problem/ok]) 870 / 25 [24 / 846]
        Required server performance, new values per second 60.81
        Ход эксперимента:
        - 16:05 система была приведена в исходное состояние: отключены все узлы, кроме самого Zabbix servera.
        - в 16:10 последовало включение одного узла, через пять минут второго, ещё через 5 мин. третьего
        - с 16:15 происходило включение остальных узлов в порядке сокращения интервала между включениями и увеличения кол-ва одновременно подключаемых узлов: через три минуты были включены два, ещё через три минуты - два, затем каждую минуту по три узла в хаотическом порядке - коммутаторы/сервера/...
        - в 16:43 все узлы кроме Zabbix servera были отключены
        - в 16:48 все узлы были включены одновременно.
        - в 16:53 в веб-интерфейсе был открыт комплексный экран с 10-ю графиками, отражающими состояние Zabbix servera и чуть спустя (минуту-две) началось отключение узлов для достижения приемлемой скорости работы веб-интерфейса (при наличии открытого комплексного экрана).
        - в ~17:13 был достигнут заданный предел CPU Load, комплексный экран закрыт.
        - в течении пары минут CPU Load упал до ~0.6 и эксперимент был завершен.

        На картинкам взят промежуток 2ч, потому что я не знаю, как на комплексном экране задать интервал с точностью до минуты. (upd: заморочился и картинки поправил - оказывается, что тыкал не так, как надо по графику)

        Итак, на графике CPU Load видим, что до 16:53 нагрузка не выходит за заданный предел (1.5) и только после открытия комплексного экрана сервер начинает чувствовать себя не очень хорошо. Субъективно - веб-интерфейс тормозит, но если никуда не спешить - то можно посмотреть какой-нибудь график и поотключать лишние узлы. При снижении нагрузки отключением узлов (т.е. снижением Zabbix server perfomance) веб-интерфейс начинает дергаться приемлемо быстро.


        Сопоставляя график Zabbix server perfomance и CPU Load видим, что включение узлов одновременно не оказывает драматического влияния на загрузку процессора - он не захлебывается даже при резком повышении количества обрабатываемых элементов данных.


        Из статистики по чтению/записи на HDD видно, что его хватает с запасом. Ранее запускаемый stress-тест добивал нагрузку до ~150 ops


        Интересен вопрос - какой же гад жрет CPU?
        Статистика по использованию CPU говорит нам, что он находится в области прикладных программ.


        ...мне тут намекают, что 5 изображений в одном сообщении - многовато. Продолжу в следуюшем.
        Last edited by sadman; 01-04-2015, 08:01.

        Comment

        • sadman
          Senior Member
          • Dec 2010
          • 1611

          #5
          А статистика по использованию CPU процессами уточняет - это php-fpm. Что и подтверждается вышеприведенными фактами - тормозить все начинает при открытом комплексном экране, вероятнее всего при отрисовке графиков.



          На закуску приведу график энергопотребления - оно стабильно маленькое.


          График системной температуры. Она - единственная неприятная вещь в Cubietruck.


          Занятость пулеров заббикса. Вдруг кому-то будет интересно увидеть, как взаимосвязаны открытие комплексного экрана (пожирание CPU load процессом отрисовки графиков) и уровень busy poller process.


          Конечно, для полноты эксперимента нужно запустить Housekeeper на базе гигабайт этак в 500, но я не думаю, что подобное устройство будет применяться для хранения столь больших объемов данных. А если и возникнет такая необходимость - есть же партицирование баз данных.

          Пока же можно констатировать, что результат, показанный Cubietruck неплохой и позволяет рекомендовать связку для сервера мониторинга небольшой организации. Или даже средней. Кто чем меряет, так сказать.
          Конечно, если у вас нет потребности рассматривать комплексные экраны или объемные карты. Но вы всегда можете попробовать вынести Zabbix frontend на более быстродействующее железо, оставив коробочке функции информирования через email/sms/jabber/пр. и активного взаимодействия с оборудованием - удаленного отключения серверов, включения вентиляторов и сигнализаций. Ведь Cubietruck - это не только микрокомпьютер, но ещё и десяток GPIO портов.

          Т.е. вполне реально с его помощью сделать светофор в админской комнате или поджигать лампочки на настенной карте, изготовленной из фанеры для большого начальника.

          А ещё вы можете сделать парсер личного кабинета онлайн-банка и, при падении баланса банковского счета до неприемлемой суммы, активировать в бухгалтерии пожарную сирену.
          Last edited by sadman; 01-04-2015, 07:59.

          Comment

          • NoOneIsPerfect
            Member
            • Feb 2015
            • 37

            #6
            Спасибо за интересную информацию. Наткнулся на ваш пост, после того как поставил Zabbix на мини ПК (Fit PC2i), и тоже встретил крайне высокую нагрузку на процессор от php-fpm во время просмотра графиков. Добавление php-apc не помогает. Думаю, как еще можно оптимизировать настройки.
            Может быть у кого-то есть идеи?

            Comment

            • sadman
              Senior Member
              • Dec 2010
              • 1611

              #7
              Вот, к примеру японцам предлагается такой продукт: http://www.zabbix.com/jp/zs5220.php (http://openblocks.plathome.co.jp/products/obs_a/ax3/) , мощи у него немного:
              Dual Core Marvell ARMADA XP 1.33GHz (ARM)
              GbE 4 port
              Power consumption 13.0W
              Main memory onboard 1GB
              SSD 256GB

              Накатывается туда Zabbix Appliance, как я понимаю. Нужно этому образу внутрь глянуть - что там предложено для ускорения (кроме хардварного SSD).

              Comment

              • NoOneIsPerfect
                Member
                • Feb 2015
                • 37

                #8
                А это идея. Сейчас скачаю appliance и посмотрю что там и как настроено. Вопрос только - не используется ли для этой минижелезки что-то специально допиленное.
                Мой домашний Zabbix вполне шустро работал на Intel Atom D525, а вот на Atom Z530 почти ложится при просмотре комплексного экрана из 8+ графиков. Хочу понять, можно ли с этим что-то сделать, или с таким слабым процессором пляски бесполезны.

                Comment

                • sadman
                  Senior Member
                  • Dec 2010
                  • 1611

                  #9
                  Сдается мне, что у одноядерного Z530 шансы на полноценную одновременную работу под Zabbix и PHP-сервером стремятся к нулю. Судя по спецификации - это процессор для мобильных устройств и в них слабость 530-го компенсированна видеочипом. В случае с Zabbix видео не помогает и CPU захлебывается от любой нагрузки. В качестве Proxy он, наверное, еще применим, но под полноценным Appliance он будет в безнадежных неудачниках, хоть какие пакеты ему прикладывай.

                  Comment

                  • NoOneIsPerfect
                    Member
                    • Feb 2015
                    • 37

                    #10
                    Я использую эту железку как домашний маршрутизатор и с этим у неё проблем нет. Zabbix поставил из спортивного интереса. И, в принципе, с мониторингом 4-5 устройств железо справляется без видимых затруднений (load average: 0.15). А вот php оказался не по зубам но еще почитаю интернет, что с этим можно сделать.
                    Образ appliance развернул. Попробую несколько опций из настройки php/mysql. Если будут еще идеи - было бы интересно обсудить.

                    Comment

                    • W0lff
                      Junior Member
                      • Sep 2015
                      • 4

                      #11
                      Серьёзный подход.
                      Можно ли пару комментариев как собрать агента под arm?
                      Как я понял, сервер и агент прекрасно уживаются на на подобной железке? Провал только в php?

                      Comment

                      • sadman
                        Senior Member
                        • Dec 2010
                        • 1611

                        #12
                        Originally posted by W0lff
                        Серьёзный подход.
                        Можно ли пару комментариев как собрать агента под arm?
                        ...да как и все остальное, вобщем-то - configure/make. Linux - обычный портированный Debian, архитектура armhf, никаких извращений с тулчейнами.

                        Originally posted by W0lff
                        Как я понял, сервер и агент прекрасно уживаются на на подобной железке? Провал только в php?
                        Вполне себе работают, да. Если комплексными экранами не увлекаться, то и с php работает нормально. Правда, у меня housekeeper отключен, но и Average Load небольшой, так что если включить, думаю, что не будет сильно хуже с моим небольшим кол-вом элементов данных.

                        Comment

                        • W0lff
                          Junior Member
                          • Sep 2015
                          • 4

                          #13
                          Originally posted by sadman
                          ...да как и все остальное, вобщем-то - configure/make. Linux - обычный портированный Debian, архитектура armhf, никаких извращений с тулчейнами.
                          Вы собирали прямо на одноплатном компьютере?
                          Мне необходимо собрать агента на обычном компе для arm архитектуры...

                          Comment

                          • sadman
                            Senior Member
                            • Dec 2010
                            • 1611

                            #14
                            Originally posted by W0lff
                            Вы собирали прямо на одноплатном компьютере?
                            Да, на кубитраке это недолго, так что настраивать окружение и собирать на x86 смысла не было.

                            Comment

                            • Guest

                              #15
                              Zabbix installation on single-board computer -
                              А это идея. Сейчас скачаю appliance и посмотрю что там и как настроено. Вопрос только - не используется ли для этой минижелезки что-то специально допиленное.
                              Мой домашний Zabbix вполне шустро работал на Intel Atom D525, а вот на Atom Z530 почти ложится при просмотре комплексного экрана из 8+ графиков. Хочу понять, можно ли с этим что-то сделать, или с таким слабым процессором пляски бесполезны.

                              Comment

                              Working...