I-Buildroot: Ukudala i-firmware ye-cross-platform kunye ne-zabbix-server

I-Buildroot: Ukudala i-firmware ye-cross-platform kunye ne-zabbix-server

Imbali yengxaki

Iinkampani ezincinci, kwelinye icala, zifuna ukubekwa esweni komgangatho ophezulu weziseko zazo (ingakumbi ngokubhekiselele kwi-virtualization ebanzi), kwelinye icala, kunzima ngokwemali kubo ukuthenga izixhobo ezitsha. Iingxaki zeseva/i-hardware nazo ziqhelekile: kaninzi kukho iiseva ezi-1-3 ezisecaleni kweendawo zokusebenzela zomsebenzisi okanye kwi-niche encinci/kwi-closet.

Kulula ukusebenzisa indibano esele yenziwe (ukuhanjiswa), okufuneka nje uyilayishe kwikhadi le-microSD kwaye uyifake kwikhompyuter yebhodi enye eqhelekileyo (i-beaglebone, i-raspberry pi kunye neentsapho ze-orange pi, ibhodi ye-asus tinker). Ukongeza, izixhobo ezinjalo azibizi kwaye zinokufakwa naphi na.

Џџ Ρ•Πƒ Β° Β°

Ngeendlela ezininzi, iprojekthi iphuhliswe njengoluhlobo lomsebenzi webhubhoratri kunye nokwenzeka kokusebenzisa iziphumo.

I-Zabbix ikhethwe njengenkqubo yokubeka iliso kuba yinkqubo enamandla, ekhululekile kwaye ebhalwe kakuhle.

Umba weqonga le-hardware uye waba nzima Ukubeka umatshini owahlukileyo phantsi kweliso ayisosisombululo esihle kakhulu - nokuba kuyabiza ukuthenga izixhobo ezitsha, okanye ukukhangela izixhobo ezindala + kwiinkampani ezincinci kukho iingxaki rhoqo ngeseva/ hardware.

Ukusebenzisa inkqubo yokwakha i-buildroot ikuvumela ukuba wenze izisombululo ezikhethekileyo ezinokuthi ziqhutywe ngabasebenzi abanolwazi oluncinci lweenkqubo zokusebenza ze-Linux. Le nkqubo inobungane kubaqalayo, kodwa kwangaxeshanye ibonelela ngamathuba amaninzi okwenza ngokwezifiso ezandleni zomphuhlisi onamava. Ikulungele ukusombulula ingxaki yeendleko ezingabizi, kodwa esweni ngokupheleleyo kwiziseko ezingundoqo ze-IT, kunye neemfuneko ezincinci zoqeqesho lwabasebenzi abasebenzayo.

Amanyathelo esisombululo

Kuye kwagqitywa ekubeni yenze i-firmware ye-x86_64 ukuba isebenze kwiqemu, kuba esi sisisombululo esiluncedo nesikhawulezayo sokulungisa ingxaki. Emva koko uyifake kwikhompyuter yebhodi enye (ndiyithandile ibhodi ye-asus tinker).

i-builroot yakhethwa njengenkqubo yokwakha. Ekuqaleni, ayinayo iphakheji ye-zabbix, ngoko ke kwafuneka ukuba ifakwe.Kwakukho iingxaki kunye neendawo zaseRashiya, eziye zasonjululwa ngokusebenzisa iipatches ezifanelekileyo (qaphela: kwiinguqulelo ezintsha ze-buildroot, ezi ziqwenga azisafuneki).

Ukuhambisa iphakheji ye-zabbix ngokwayo iya kuchazwa kwinqaku elahlukileyo.

Ekubeni yonke into kufuneka isebenze njenge-firmware (umfanekiso wenkqubo ongatshintshiyo + iifayile zoqwalaselo/idatabase efumanekayo), bekuyimfuneko ukuba ubhale iithagethi zakho zenkqubo, iinkonzo kunye nezibali-xesha (ekujoliswe kuko, inkonzo, ixesha).

Kwagqitywa ukwahlula imidiya ibe ngamacandelo ama-2 - icandelo elineefayile zenkqubo kunye necandelo elineenguqu eziguqukayo kunye neefayile zedatha ye-zabbix.

Ukusombulula iingxaki ezinxulumene nesiseko sedatha kuye kwaba nzima ngakumbi. Ndandingafuni ukuyibeka ngqo kumajelo eendaba. Kwangaxeshanye, ubungakanani bedatabase bunokufikelela kubungakanani obudlula ubungakanani beramdisk enokwenzeka. Ngoko ke, isisombululo sokulungelelanisa sikhethwe: i-database ibekwe kwisahlulo sesibini sekhadi le-SD (amakhadi e-SLC anamhlanje anemijikelezo yokubhala engama-30), kodwa kukho ukusetwa okuvumela ukusetyenziswa kwemidiya yangaphandle (umzekelo, i-usb- hdd).

Ukujongwa kobushushu kwaphunyezwa ngesixhobo se-RODOS-5. Ewe kunjalo, ungasebenzisa iDallas 1820 ngokuthe ngqo, kodwa yayikhawuleza kwaye kulula ukuplaga kwi-USB.

I-grub86 ikhethwe njenge-bootloader ye-x64_2. Bekuyimfuneko ukubhala ubumbeko obuncinci ukuyisungula.

Emva kokulungiswa kweempazamo kwiqemu, yafakwa kwibhodi yeasus tinker. Ubume bokwaleka kwam ekuqaleni kwakujongwe ukuba ibe yi-cross-platform - ukwaba i-configs ecacileyo kwibhodi nganye (ibhodi ye-defconfig, i-bootloader, ukuvelisa umfanekiso kunye nokwahlula kwenkqubo) kunye nobukhulu obufanayo ekwenzeni inkqubo yefayile / ukudala umfanekiso ngedatha. Ngenxa yolungiselelo olunjalo, ukuhanjiswa kwahamba ngokukhawuleza.

Kucetyiswa kakhulu ukuba ufunde amanqaku entshayelelo:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Ungadibana njani

Iprojekthi igcinwa kwi-github
Emva kokwenza uvimba wogcino, olu luhlu lulandelayo lwefayile lufunyenwe:

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

i-buildroot-2019.05.tar.gz - i-archive ye-buildroot ecocekileyo
Ukwaleka luluhlu lwam lwangaphandle nomthi. Apha kulapho yonke into oyifunayo ukwakha i-firmware usebenzisa i-builroot igcinwa kuyo.
README.md - inkcazo yeprojekthi kunye nencwadana ngesiNgesi.
run_me.sh siscript esilungiselela inkqubo yokwakha. Yandisa i-builroot esuka kwindawo yogcino, incamathele umaleko kuyo (ngendlela yangaphandle-yomthi) kwaye ikuvumela ukuba ukhethe ibhodi ekujoliswe kuyo yokudibanisa.

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

Emva koku, yiya nje kwi-buildroot-2019.05 directory kwaye usebenzise i-make command.
Nje ukuba ukwakhiwa kugqityiwe, zonke iziphumo zokwakha ziya kuba kwimveliso/yemifanekiso yolawulo:

[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

Iifayile ezifunekayo:

  • sdcard.img - umfanekiso wemidiya yokurekhoda kwikhadi le-SD (nge dd okanye rufus phantsi kwama-wibdows).
  • qemu.qcow2 - umfanekiso wemidiya oza kuqhutywa kwiqemu.
  • yangaphandle.qcow2 - umfanekiso wemidiya yangaphandle kwisiseko sedatha
  • monitor-0.9-beta.tar.gz - indawo yokugcina uhlaziyo ngokusebenzisa ujongano lwewebhu

Isizukulwana sabaKhokeli

Akufanelekile ukubhala imiyalelo efanayo ngamaxesha amaninzi. Kwaye eyona nto isengqiqweni kukuyibhala kube kanye kwi-markdown, kwaye emva koko uyiguqulele kwiPDF ukuze ikhutshelwe kunye ne-html yojongano lwewebhu. Oku kunokwenzeka ngenxa yephakheji ye-pandoc.

Kwangaxeshanye, zonke ezi fayile kufuneka ziveliswe phambi kokuba umfanekiso wenkqubo udityaniswe; ezo zikripthi zasemva kokwakhiwa sele zingenamsebenzi. Ngoko ke, isizukulwana senziwe ngendlela yephakheji yeencwadana. Ungajonga ngaphezulu / kwipakethe / iimanyuwali.

Ifayile ye manuals.mk (eyenza wonke umsebenzi)

################################################################################
#
# 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))

inkqubo

Umhlaba weLinux ushukuma ngenkuthalo kwi-systemd, kwaye kwafuneka ndiyenze nam.
Enye yezinto ezintsha ezimnandi kubukho bexesha. Ngokubanzi, inqaku elahlukileyo libhalwa ngabo (kwaye kungekhona nje ngabo), kodwa ndiya kukuxelela ngokufutshane.

Kukho izenzo ekufuneka zenziwe ngamaxesha athile. Ndidinga ukuqhuba i-logrotate ukucima i-lighttpd kunye ne-php-fpm logs. Into eqhelekileyo iya kuba kukubhala imiyalelo kwi-cron, kodwa ndigqibe kwelokuba ndisebenzise i-systemd monotonic timer. Ngoko i-logrotate iqhuba ngexesha elingqongqo lekhefu.

Ewe kunjalo, kunokwenzeka ukwenza izibali-xesha ezitshisa ngeentsuku ezithile, kodwa andizange ndiyifune le nto.
Umzekelo wexesha:

  • Ifayile yexesha
    
    [Unit]
    Description=RODOS temp daemon timer

[Timer] OnBootSec=1min
OnUnitActiveSec=1min

[Faka] WantedBy=timers.target

- Π€Π°ΠΉΠ» сСрвиса, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ:
```bash
[Unit]
Description=RODOS temp daemon

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

Iibhodi ezixhaswayo

Ibhodi ye-Asus tinker yibhodi ephambili apho yonke into kufuneka isebenze. Ikhethwe njengexabiso eliphantsi kwaye inamandla kakhulu.

I-Beaglebone emnyama yibhodi yokuqala apho umsebenzi wavavanywa khona (ngexesha lokukhethwa kwebhodi enamandla ngakumbi).

Qemu x86_64 - isetyenziselwa uphuhliso lolungiso lweempazamo.

I sebenza njani

Ekuqaliseni, ukubuyiswa kweeseto kumanqanaba amabini kwenzeka:

  • sebenzisa isethingi_yokubuyisela okushicilelweyo (ngenkonzo). Ibuyisela izicwangciso zenkqubo esisiseko-indawo yexesha, indawo, useto lwenethiwekhi, njl.
  • ukuqhuba isikripthi sokulungisa (ngenkonzo) - apha i-zabbix kunye ne-database ilungisiwe, i-IP iphuma kwi-console.

Xa uqala ukuyiqala, ubungakanani besahlulelo sesibini sekhadi le-SD lichongiwe. Ukuba kusekho indawo engabelwe, imidiya iphinda iphindwe, kwaye icandelo ledatha lithatha yonke indawo yamahhala. Oku kwenziwa ukwenzela ukunciphisa ubungakanani bomfanekiso wofakelo (sdcard.img). Ukongeza, ulawulo lwe-postgresql lwenziwa kule ndawo. Kungenxa yoko le nto ukuqaliswa kokuqala kunye nomthwali omtsha kuya kuba kude kunezinye ezilandelayo.

Xa udibanisa i-drive yangaphandle, ngexesha lokuqalisa ikhangela i-drive yasimahla kwaye iyifomethe kwi-ext4 kunye neleyibhile yangaphandle.

Ingqalelo! Xa udibanisa i-drive yangaphandle (kunye nokuqhawula okanye ukuyibuyisela endaweni), kufuneka wenze i-backup kwaye ubuyisele izicwangciso!

Isixhobo se-RODOS 5 sisetyenziselwa ukubeka iliso kwiqondo lokushisa.Umvelisi unikeza ikhowudi yomthombo wokusetyenziswa kwayo ekusebenzeni kunye nesixhobo. Xa inkqubo ivuliwe, i-timer ye-rodos iqala, eqhuba le nkonzo kanye ngomzuzu. Iqondo lokushisa langoku libhalwa kwifayile /tmp/rodos_current_temp, emva koko i-zabbix inokubeka iliso le fayile njengenzwa.

Imidiya yokugcina uqwalaselo ifakwe kwi/data directory.

Xa uqala inkqubo kwaye uyilungiselela ukuba isebenze, lo myalezo ulandelayo uvela kwi-console:

System starting, please wait

Emva kokugqiba umsebenzi wokulungiselela, iya kutshintsha ibonise idilesi ye-IP:

current ip 192.168.1.32
Ready to work

Ukumisela i-zabbix yokubeka iliso lobushushu

Ukujonga ubushushu, thatha nje amanyathelo ama-2:

  • qhagamshela isixhobo se-RODOS kwizibuko le-USB
  • yenza into yedatha kwi-zabbix

Vula ujongano lwewebhu lwe-zabbix:

  • Vula icandelo loLungiselelo β†’ Iinginginya
  • Cofa kwizinto ezikumgca womncedisi wethu we-zabbix
  • Cofa ku Yenza into

I-Buildroot: Ukudala i-firmware ye-cross-platform kunye ne-zabbix-server

Faka idatha elandelayo:

  • igama- ngokokubona kwakho (umzekelo, isevaRoomTemp )
  • Uhlobo - i-agent ye-zabbix
  • Isitshixo - Rodos
  • Uhlobo-amanani
  • Iiyunithi - C
  • Ixesha lokugcinwa kwembali - ixesha lokugcina imbali. ushiye 10 iintsuku
  • Ixesha lokugcinwa kwetrend-ixesha lokugcina kwi-dynamics yotshintsho. Ekhohlo iintsuku ezingama-30
  • Isicelo esitsha - umncedisi Room Temp

Kwaye cinezela i ADD iqhosha.
I-Buildroot: Ukudala i-firmware ye-cross-platform kunye ne-zabbix-server

Lawula useto usebenzisa ujongano lwewebhu

Ujongano lwewebhu lubhalwe kwi-PHP. Kukho imisebenzi ephambili:

  • Jonga imo yesixhobo
  • ukutshintsha useto lwenethiwekhi
    I-Buildroot: Ukudala i-firmware ye-cross-platform kunye ne-zabbix-server
  • ukutshintsha igama lokugqitha lomsebenzisi
  • ukhetho lwendawo yexesha
  • ugcino/ukubuyisela/ukusetha ngokutsha kwasefektri
  • ukukwazi ukudibanisa i-drive yangaphandle
  • Uhlaziyo lwenkqubo
    I-Buildroot: Ukudala i-firmware ye-cross-platform kunye ne-zabbix-server

Ukungena kujongano lwewebhu kukhuselwe igama lokugqitha. Iphepha lokuqala-incwadana.

Idilesi yojongano lweZabbix: ${ip/dns}/zabbix
Idilesi yojongano lolawulo: ${ip/dns}/manage
I-Buildroot: Ukudala i-firmware ye-cross-platform kunye ne-zabbix-server

Ukubaleka kwiqemu

qemu-system-x86_64 -smp 4 -m 4026M -vula-kvm -umatshini q35,accel=kvm -isixhobo se-intel-iommu -cpu host -net nic -net bridge,br=bridge0 -device virtio-scsi-pci,id= scsi0 -drive file=output/images/qemu.qcow2,format=qcow2,aio=threads -device virtio-scsi-pci,id=scsi0 -drive file=output/images/external.qcow2,format=qcow2,aio=threads

Lo myalelo uya kuqalisa inkqubo kunye ne-4 cores, i-2048 RAM, i-KVM inikwe amandla, ikhadi lenethiwekhi kwi-bridge0 kunye neediski ezimbini: enye yenkqubo kunye enye yangaphandle ye-postgresql.

Imifanekiso inokuguqulwa kwaye iqhutywe kwi-Virtualbox:

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

Emva koko zingenise kwi-virtualbox kwaye uqhagamshele nge-sata.

isiphelo

Kule nkqubo, ndaba nomdla wokwenza imveliso elungele ukusetyenziswa-engenawo ujongano oluhle kakhulu (andithandi ukuyibhala), kodwa enye esebenzayo kwaye kulula ukuyiqwalasela.

Umzamo wokugqibela wokufaka i-zabbix-appliance kwi-KVM ibonise ukuba eli nyathelo lichanekile (emva kokuba ukufakela kugqityiwe, inkqubo ayiqalisi). Inoba kukho into e wrong endiyenzayo πŸ˜‰

Izinto

https://buildroot.org/

umthombo: www.habr.com

Yongeza izimvo