Буилдроот: Направите више платформски фирмвер са заббик-сервером

Буилдроот: Направите више платформски фирмвер са заббик-сервером

Историја проблема

Малим предузећима је, с једне стране, потребан квалитетан надзор над својом инфраструктуром (посебно у светлу раширене виртуелизације), са друге стране, финансијски им је тешко да набаве нову опрему. Проблеми са сервером/хардвером су такође уобичајени: често постоје 1-3 товер сервера поред корисничких радних станица или у малој ниши/орману.

Лакше је користити готови склоп (дистрибуцију), који само треба да отпремите на мицроСД картицу и убаците у уобичајени рачунар са једном плочицом (фамилије Беаглебоне, Распберри Пи и Оранге Пи, асус тинкер боард). Поред тога, таква опрема је јефтина и може се инсталирати било где.

Проблем статемент

У многоме се пројекат развијао као нека врста лабораторијског рада са могућношћу примене резултата.

Заббик је изабран као систем за праћење јер је моћан, бесплатан и добро документован систем.

Проблем са хардверском платформом је постао акутан. Стављање посебне машине под надзор такође није добро решење - или је скупо купити нову опрему, или тражити стару опрему + у малим компанијама су чести проблеми са сервером/. хардвера.

Коришћење буилдроот буилд система омогућава вам да креирате специјализована решења којима може да управља особље са минималним знањем о Линук оперативним системима. Овај систем је пријатељски расположен за почетнике, али у исто време пружа обиље могућности прилагођавања у рукама искусног програмера. Савршен је за решавање проблема јефтиног, али потпуно функционалног праћења ИТ инфраструктуре, уз минималне захтеве за обуку особља које њоме управља.

Кораци решења

Одлучено је да се првобитно креира фирмвер за к86_64 који ће радити у кему-у, пошто је ово згодно и брзо решење за отклањање грешака. Затим га повежите на рачунар са једном плочом (свидео ми се асус тинкер боард).

буилдроот је изабран као систем изградње. У почетку му недостаје заббик пакет, тако да је било проблема са руским локалима, који су решени применом одговарајућих закрпа (напомена: у новијим верзијама буилдроот-а, ове закрпе више нису потребне).

Портирање самог заббик пакета биће описано у посебном чланку.

Пошто би све требало да ради као фирмвер (непроменљива слика система + фајлови конфигурације/базе података који се могу вратити), било је неопходно да напишете сопствене системске циљеве, сервисе и тајмере (циљ, сервис, тајмер).

Одлучено је да се медиј подели на 2 секције - одељак са системским датотекама и део са променљивим конфигурацијама и заббик датотекама базе података.

Испоставило се да је решавање проблема везаних за базу података мало теже. Нисам желео да то поставим директно у медије. Истовремено, величина базе података може достићи величину која премашује величину могућег рам диска. Стога је изабрано компромисно решење: база података се налази на другој партицији СД картице (савремене СЛЦ картице имају до 30 циклуса уписивања), али постоји подешавање које омогућава коришћење екстерних медија (на пример, усб- хдд).

Праћење температуре је реализовано преко уређаја РОДОС-5. Наравно, Даллас 1820 можете користити директно, али било је брже и лакше прикључити УСБ.

груб86 је изабран као покретач за к64_2. За покретање је било потребно написати минималну конфигурацију.

Након отклањања грешака на кему-у, портовано је на асус тинкер боард. Структура мог преклапања је првобитно била замишљена да буде вишеплатформска – додељивање конфигурација специфичних за сваку плочу (дефцонфиг плоче, покретач, генерисање слике са системском партицијом) и максимална униформност у прилагођавању система датотека/креирању слике са подацима. Због такве припреме, пренос је прошао брзо.

Веома се препоручује да прочитате уводне чланке:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Како саставити

Пројекат се чува на гитхуб-у
Након клонирања спремишта, добија се следећа структура датотеке:

[alexey@comp monitor]$ ls -1
buildroot-2019.05.tar.gz
overlay
README.md
run_me.sh

буилдроот-2019.05.тар.гз - чиста буилдроот архива
оверлаи је мој директоријум са екстерним стаблом. Овде се чува све што вам је потребно да направите фирмвер користећи буилдроот.
РЕАДМЕ.мд - опис пројекта и приручник на енглеском језику.
рун_ме.сх је скрипта која припрема систем изградње. Проширује буилдроот из архиве, причвршћује преклапање на њега (преко механизма спољашњег стабла) и омогућава вам да изаберете циљну плочу за склапање

[0] my_asus_tinker_defconfig
[1] my_beaglebone_defconfig
[2] x86_64_defconfig
Select defconfig, press A for abort. Default [0]

Након овога, само идите у директоријум буилдроот-2019.05 и покрените команду маке.
Када се изградња заврши, сви резултати израде биће у директоријуму излаз/слике:

[alexey@comp buildroot-2019.05]$ ls -1 output/images/
boot.img
boot.vfat
bzImage
data
data.img
external.img
external.qcow2
grub-eltorito.img
grub.img
intel-ucode
monitor-0.9-beta.tar.gz
qemu.qcow2
rootfs.cpio
sdcard.img
sys
update

Потребне датотеке:

  • сдцард.имг - медијска слика за снимање на СД картицу (преко дд или руфуса под вибдовс).
  • кему.кцов2 - медијска слика за покретање у кему.
  • ектернал.кцов2 - слика екстерног медија за базу података
  • монитор-0.9-бета.тар.гз - архива за ажурирање преко веб интерфејса

Генерација водича

Не вреди више пута писати иста упутства. И најлогичније је да га једном напишете у маркдовну, а затим га конвертујете у ПДФ за преузимање и хтмл за веб интерфејс. Ово је могуће захваљујући пандоц пакету.

У исто време, све ове датотеке треба да буду генерисане пре него што се састави имиџ система те скрипте након изградње су већ бескорисне. Дакле, генерисање се врши у облику пакета приручника. Можете погледати преклапање/пакет/приручнике.

Датотека мануалс.мк (која ради сав посао)

################################################################################
#
# manuals
#
################################################################################

MANUALS_VERSION:= 1.0.0
MANUALS_SITE:= ${BR2_EXTERNAL_monitorOverlay_PATH}/package/manuals
MANUALS_SITE_METHOD:=local

define MANUALS_BUILD_CMDS
    pandoc -s -o ${TARGET_DIR}/var/www/manual_en.pdf ${BR2_EXTERNAL_monitorOverlay_PATH}/../README.md
    pandoc -f markdown -t html -o ${TARGET_DIR}/var/www/manual_en.html ${BR2_EXTERNAL_monitorOverlay_PATH}/../README.md
endef

$(eval $(generic-package))

системд

Свет Линука се активно сели на системд, а и ја сам то морао да урадим.
Једна од пријатних иновација је присуство тајмера. Генерално, о њима (и не само о њима) пише се посебан чланак, али ћу вам укратко рећи.

Постоје радње које се морају периодично обављати. Морао сам да покренем логротате да обришем дневнике лигхттпд и пхп-фпм. Уобичајена ствар би била писати команде у црон, али сам одлучио да користим системски монотони тајмер. Дакле, логротација ради у строгом временском интервалу.

Наравно, могуће је креирати тајмере који се активирају на одређене датуме, али ово ми није требало.
Пример тајмера:

  • Тајмер Филе
    
    [Unit]
    Description=RODOS temp daemon timer

[Тајмер] ОнБоотСец=1мин
ОнУнитАцтивеСец=1мин

[Инсталирај] ВантедБи=тимерс.таргет

- Файл сервиса, вызываемого таймером:
```bash
[Unit]
Description=RODOS temp daemon

[Service]
ExecStart=/usr/bin/rodos.sh

Подржане плоче

Асус тинкер боард је главна плоча на којој би све требало да ради. Изабран као јефтин и веома моћан.

Беаглебоне блацк је прва плоча на којој је тестиран рад (приликом избора снажније плоче).

Кему к86_64 - користи се за развој отклањања грешака.

Како то ради

Приликом покретања, долази до двостепеног враћања подешавања:

  • покретање скрипте сеттингс_ресторе (преко услуге). Враћа основне системске поставке - временску зону, локал, мрежна подешавања итд.
  • покретање скрипте припреме (преко сервиса) - овде су заббик и база података припремљени, ИП се излази на конзолу.

Када га први пут покренете, одређује се величина друге партиције СД картице. Ако још увек постоји недодељен простор, медиј се поново дели, а одељак са подацима заузима сав слободан простор. Ово се ради како би се смањила величина инсталационе слике (сдцард.имг). Поред тога, у овом тренутку се креира постгрескл радни директоријум. Зато ће прво лансирање са новим носачем трајати дуже од наредних.

Приликом повезивања екстерног диска, у тренутку покретања тражи слободан диск и форматира га у ект4 са екстерном ознаком.

Пажња! Приликом повезивања екстерног диска (као и искључивања или замене), потребно је да направите резервну копију и вратите подешавања!

Уређај РОДОС 5 се користи за праћење температуре. Произвођач обезбеђује изворни код свог услужног програма за рад са уређајем. Када је систем укључен, покреће се родос тајмер, који покреће овај услужни програм једном у минуту. Тренутна температура се уписује у датотеку /тмп/родос_цуррент_темп, након чега заббик може пратити ову датотеку као сензор.

Медијум за складиштење конфигурације је монтиран у директоријум /дата.

Приликом покретања система и припреме за рад, на конзоли се појављује следећа порука:

System starting, please wait

Након завршетка припремних радова, промениће се у приказ ИП адресе:

current ip 192.168.1.32
Ready to work

Подешавање заббик-а за праћење температуре

Да бисте пратили температуру, само предузмите 2 корака:

  • повежите РОДОС уређај на УСБ порт
  • креирајте ставку података у заббик-у

Отворите заббик веб интерфејс:

  • Отворите одељак Конфигурација → Хостови
  • Кликните на ставке у линији нашег заббик сервера
  • Кликните на Креирај ставку

Буилдроот: Направите више платформски фирмвер са заббик-сервером

Унесите следеће податке:

  • име - по вашем нахођењу (на пример, серверРоомТемп )
  • Тип - заббик агент
  • Кључ - Родос
  • Тип-нумерички
  • Јединице - Ц
  • Период складиштења историје — период складиштења историје. остало 10 дана
  • Период складиштења тренда—период складиштења за динамику промена. Остало 30 дана
  • Нова апликација - сервер Роом Темп

И притисните дугме ДОДАЈ.
Буилдроот: Направите више платформски фирмвер са заббик-сервером

Управљајте подешавањима преко веб интерфејса

Веб интерфејс је написан у ПХП-у. Постоје главне функције:

  • погледајте статус уређаја
  • мењање мрежних подешавања
    Буилдроот: Направите више платформски фирмвер са заббик-сервером
  • промена корисничке лозинке
  • избор временске зоне
  • бацкуп/ресторе/фацтори ресет
  • могућност повезивања екстерног диска
  • Ажурирање система
    Буилдроот: Направите више платформски фирмвер са заббик-сервером

Пријава на веб интерфејс је заштићена лозинком. Почетна страна - приручник.

Адреса Заббик интерфејса: ${ип/днс}/заббик
Адреса интерфејса за управљање: ${ип/днс}/манаге
Буилдроот: Направите више платформски фирмвер са заббик-сервером

Трчање у кему

кему-систем-к86_64 -смп 4 -м 4026М -енабле-квм -мацхине к35,аццел=квм -девице интел-иомму -цпу хост -нет ниц -нет бридге,бр=бридге0 -девице виртио-сцси-пци,ид= сцси0 -дриве филе=оутпут/имагес/кему.кцов2,формат=кцов2,аио=тхреадс -девице виртио-сцси-пци,ид=сцси0 -дриве филе=оутпут/имагес/ектернал.кцов2,формат=кцов2,аио=тхреадс

Ова команда ће покренути систем са 4 језгра, 2048 РАМ-а, омогућен КВМ, мрежну картицу на бридге0 и два диска: један за систем и један екстерни за постгрескл.

Слике се могу конвертовати и покренути у Виртуалбок-у:

qemu-img convert -f qcow2  qemu.qcow2 -O vdi qcow2.vdi
qemu-img convert -f qcow2  external.qcow2 -O vdi external.vdi

Затим их увезите у виртуалбок и повежите се преко сата.

Закључак

У том процесу, заинтересовао сам се да направим производ спреман за употребу - са не баш лепим интерфејсом (не волим да их пишем), али оним који ради и који се лако конфигурише.

Последњи покушај инсталирања заббик-уређаја у КВМ показао је да је овај корак исправан (након што се инсталација заврши, систем се не покреће). Можда радим нешто погрешно 😉

Материјали

https://buildroot.org/

Извор: ввв.хабр.цом

Додај коментар