I-Buildroot: Idala i-firmware ye-cross-platform nge-zabbix-server

I-Buildroot: Idala i-firmware ye-cross-platform nge-zabbix-server

Umlando wenkinga

Izinkampani ezincane, ngakolunye uhlangothi, zidinga ukuqapha izinga eliphezulu lengqalasizinda yazo (ikakhulukazi uma kubhekwa i-virtualization esabalele), ngakolunye uhlangothi, kunzima ngokwezimali ukuthi bathenge imishini emisha. Izinkinga zeseva/zezingxenyekazi zekhompuyutha nazo zivamile: ngokuvamile kukhona amaseva ombhoshongo angu-1-3 eduze kwezindawo zokusebenza zabasebenzisi noma ku-niche/closet encane.

Kulula ukusebenzisa umhlangano osewenziwe ngomumo (ukusabalalisa), odinga nje ukuwulayisha ekhadini le-microSD bese uwufaka kukhompuyutha evamile yebhodi elilodwa (imindeni ye-beaglebone, i-raspberry pi kanye ne-orange pi, i-asus tinker board). Ngaphezu kwalokho, imishini enjalo ayibizi futhi ingafakwa noma kuphi.

Ukwakheka kwenkinga

Ngezindlela eziningi, iphrojekthi ithuthukiswe njengohlobo lomsebenzi waselabhorethri okungenzeka ukuthi kusetshenziswe imiphumela.

I-Zabbix ikhethwe njengohlelo lokuqapha ngoba iwuhlelo olunamandla, olukhululekile futhi olubhalwe kahle.

Udaba ngeplathifomu yehadiwe selubucayi.Ukubeka umshini ohlukile ngaphansi kokuqashwa nakho akusona isixazululo esihle kakhulu - kungaba kuyabiza ukuthenga imishini emisha, noma ukubheka imishini emidala + ezinkampanini ezincane kuba nezinkinga ezijwayelekile ngeseva/ hardware.

Ukusebenzisa i-buildroot build system ikuvumela ukuthi udale izixazululo ezikhethekile ezingase zisetshenziswe abasebenzi abanolwazi oluncane lwezinhlelo zokusebenza ze-Linux. Lolu hlelo lunobungane kwabaqalayo, kodwa ngesikhathi esifanayo lunikeza amathuba amaningi okwenza ngokwezifiso ezandleni zonjiniyela onolwazi. Ilungele ukuxazulula inkinga yokuqapha okungabizi, kodwa okusebenzayo ngokugcwele kwengqalasizinda ye-IT, enezidingo ezincane zokuqeqeshwa kwabasebenzi abayisebenzisayo.

Izinyathelo zesixazululo

Kunqunywe ukuthi kwakhiwe i-firmware ekuqaleni ukuze i-x86_64 isebenze ku-qemu, njengoba lesi kuyisixazululo esilula nesisheshayo sokususa iphutha. Bese uyithumela kukhompyutha yebhodi elilodwa lengalo (ngithande ibhodi le-asus tinker).

I-buildroot ikhethwe njengohlelo lokwakha. Ekuqaleni, ayinayo iphakheji ye-zabbix, ngakho-ke kwakudingeka ifakwe.Kube nezinkinga zendawo yaseRussia, ezaxazululwa ngokusebenzisa ama-patches afanelekile (qaphela: ezinguqulweni ezintsha ze-buildroot, lawa ma-patches awasadingeki).

Ukuthwala iphakheji ye-zabbix ngokwayo kuzochazwa esihlokweni esihlukile.

Njengoba yonke into kufanele isebenze njenge-firmware (isithombe sohlelo esingaguquki + amafayela wokucushwa abuyiselekayo/isizindalwazi), bekudingeka ukuthi ubhale izinhloso zakho ze-systemd, izinsizakalo nezibali-sikhathi (okuhlosiwe, isevisi, isibali sikhathi).

Kwanqunywa ukuhlukanisa imidiya ibe izigaba ezi-2 - isigaba esinamafayela ohlelo kanye nesigaba esinezilungiselelo ezishintshayo kanye namafayela esizindalwazi se-zabbix.

Ukuxazulula izinkinga ezihlobene nesizindalwazi kuvele kwaba nzima kakhulu. Bengingafuni ukuyibeka ngqo kwabezindaba. Ngesikhathi esifanayo, usayizi wesizindalwazi ungafinyelela usayizi oweqa usayizi we-ramdisk engenzeka. Ngakho-ke, kwakhethwa isisombululo sokuyekethisa: i-database itholakala esigabeni sesibili sekhadi le-SD (amakhadi e-SLC yanamuhla anemijikelezo yokubhala efika ku-30), kodwa kunesilungiselelo esivumela ukusetshenziswa kwemidiya yangaphandle (isibonelo, i-usb- hdd).

Ukuqapha izinga lokushisa kwasetshenziswa ngedivayisi ye-RODOS-5. Yebo, ungasebenzisa i-Dallas 1820 ngokuqondile, kodwa ibishesha futhi kulula ukuxhuma i-USB.

I-grub86 ikhethwe njenge-bootloader ye-x64_2. Bekudingeka ukuthi kubhalwe ukulungiselelwa okuncane ukuze kuqalwe.

Ngemva kokulungisa iphutha ku-qemu, yathuthelwa ebhodini le-asus tinker. Isakhiwo sembondela yami ekuqaleni sasihloselwe ukuba sibe inkundla ephambene - ukwaba izilungiselelo eziqondile ebhodini ngalinye (ibhodi le-defconfig, i-bootloader, ekhiqiza isithombe nge-partition yesistimu) kanye nokufana okuphezulu ekwenzeni uhlelo lwefayela ngokwezifiso/ukudala isithombe ngedatha. Ngenxa yokulungiselela okunjalo, ukuthuthwa kwahamba ngokushesha.

Kunconywa kakhulu ukufunda izindatshana eziyisingeniso:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Uhlangana kanjani

Iphrojekthi igcinwa ku-github
Ngemuva kokuhlanganisa indawo yokugcina, kutholwa ukwakheka kwefayela okulandelayo:

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

buildroot-2019.05.tar.gz - ingobo yomlando ehlanzekile ye-buildroot
imbondela uhla lwemibhalo lwami nge lwangaphandle-sihlahla. Kulapho konke okudingayo ukwakha i-firmware usebenzisa i-buildroot kugcinwa khona.
README.md - incazelo yephrojekthi kanye nemanuwali ngesiNgisi.
run_me.sh iskripthi esilungiselela uhlelo lokwakha. Inweba i-builroot kusuka kungobo yomlando, inamathisele imbondela kuyo (ngendlela yesihlahla sangaphandle) futhi ikuvumela ukuthi ukhethe ibhodi eliqondiwe lokwakha.

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

Ngemuva kwalokhu, vele uye kumkhombandlela we-buildroot-2019.05 bese usebenzisa umyalo wokwenza.
Uma ukwakhiwa sekuqediwe, yonke imiphumela yokwakha izoba kuhla lwemibhalo lokuphumayo/lezithombe:

[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

Amafayela adingekayo:

  • sdcard.img - isithombe semidiya sokuqoshwa ekhadini le-SD (nge-dd noma irufus ngaphansi kwama-wibdows).
  • qemu.qcow2 - isithombe semidiya esizosebenza ku-qemu.
  • external.qcow2 - isithombe semidiya yangaphandle sesizindalwazi
  • monitor-0.9-beta.tar.gz - ingobo yomlando ukuze ibuyekezwe ngesixhumi esibonakalayo sewebhu

Isizukulwane sabaqondisi

Akufanelekile ukubhala imiyalelo efanayo izikhathi eziningana. Futhi into enengqondo kakhulu ukuyibhala kanye ku-markdown, bese uyiguqulela ku-PDF ukuze uyilande kanye ne-html yesixhumi esibonakalayo sewebhu. Lokhu kungenzeka ngenxa yephakheji ye-pandoc.

Ngesikhathi esifanayo, wonke lawa mafayela adinga ukukhiqizwa ngaphambi kokuba isithombe sohlelo sihlanganiswe; leyo mibhalo yangemuva kokwakhiwa ayisasebenzi. Ngakho-ke, isizukulwane senziwa ngendlela yephakheji yezincwadi. Ungabheka imbondela/iphakheji/amanuwali.

Ifayela le-manuals.mk ( elenza 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))

i-systemd

Umhlaba weLinux uhamba ngenkuthalo ku-systemd, futhi bekufanele ngikwenze futhi.
Enye yezinto ezintsha ezijabulisayo ubukhona bezibali sikhathi. Ngokuvamile, isihloko esihlukile sibhalwa ngabo (futhi hhayi ngabo kuphela), kodwa ngizokutshela kafushane.

Kunezenzo okufanele zenziwe ngezikhathi ezithile. Bengidinga ukusebenzisa i-logrotate ukusula izingodo ze-lighttpd ne-php-fpm. Into evamile kungaba ukubhala imiyalo ku-cron, kodwa nginqume ukusebenzisa i-systemd monotonic timer. Ngakho-ke i-logrotate isebenza ngesikhathi esiqinile.

Yiqiniso, kungenzeka ukudala izikhathi ezivutha ngezinsuku ezithile, kodwa angizange ngikudingile lokhu.
Isibonelo sesikhathi:

  • Ifayela lesibali sikhathi
    
    [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

Amabhodi asekelwe

Ibhodi le-Asus tinker ibhodi eliyinhloko lapho konke kufanele kusebenze khona. Kukhethwe njengokungabizi futhi kunamandla kakhulu.

I-Beaglebone emnyama ibhodi lokuqala lapho ukusebenza kwahlolwa khona (ngesikhathi kukhethwa ibhodi elinamandla).

I-Qemu x86_64 - isetshenziselwa ukuthuthukiswa kokulungisa iphutha.

Isebenza kanjani

Ekuqaleni, ukubuyiselwa kwezinyathelo ezimbili kwenzeka:

  • usebenzisa i-setting_restore script (ngesevisi). Ibuyisela izilungiselelo zesistimu eziyisisekelo - indawo yesikhathi, indawo, izilungiselelo zenethiwekhi, njll.
  • ukusebenzisa iskripthi sokulungisa (ngesevisi) - lapha i-zabbix kanye ne-database ilungiswa, i-IP iphuma kukhonsoli.

Uma uqala ukuyiqala, usayizi wengxenye yesibili yekhadi le-SD uyanqunywa. Uma kusekhona indawo engabelwe, imidiya ihlukaniswa kabusha, futhi isigaba sedatha sithatha yonke indawo yamahhala. Lokhu kwenziwa ukuze kwehliswe usayizi wesithombe sokufaka (sdcard.img). Ukwengeza, inkomba yokusebenza ye-postgresql yenziwa kuleli phuzu. Kungakho ukwethulwa kokuqala ngenkampani yenethiwekhi entsha kuzoba isikhathi eside kunalandelayo.

Lapho ixhuma idrayivu yangaphandle, ngesikhathi iqalisa icinga idrayivu yamahhala bese iyifometha ibe yi-ext4 ngelebula yangaphandle.

Qaphela! Lapho uxhuma idrayivu yangaphandle (kanye nokunqamula noma ukuyishintsha), udinga ukwenza isipele futhi ubuyisele izilungiselelo!

Idivayisi ye-RODOS 5 isetshenziselwa ukuqapha izinga lokushisa. Umkhiqizi uhlinzeka ngekhodi yomthombo yokusetshenziswa kwayo ekusebenzeni nedivayisi. Uma isistimu ivuliwe, isibali sikhathi se-rodos siyaqala, esisebenzisa lesi sisetshenziswa kanye ngomzuzu. Izinga lokushisa lamanje libhalwe kufayela /tmp/rodos_current_temp, ngemva kwalokho i-zabbix ingakwazi ukuqapha leli fayela njengenzwa.

Imidiya yokumisa yokumisa ifakwe kuhla lwemibhalo/yedatha.

Lapho uqala uhlelo futhi ululungiselela ukusebenza, umyalezo olandelayo uvela kukhonsoli:

System starting, please wait

Ngemva kokuqeda umsebenzi wokulungiselela, izoshintshela ekuboniseni ikheli le-IP:

current ip 192.168.1.32
Ready to work

Isetha i-zabbix yokuqapha izinga lokushisa

Ukuqapha izinga lokushisa, vele uthathe izinyathelo ezi-2:

  • xhuma idivayisi ye-RODOS embobeni ye-USB
  • dala into yedatha ku-zabbix

Vula i-zabbix web interface:

  • Vula ingxenye ethi Ukucushwa → Abasingathi
  • Chofoza Izinto ezikulayini wethu we-zabbix server
  • Chofoza okuthi Dala into

I-Buildroot: Idala i-firmware ye-cross-platform nge-zabbix-server

Faka idatha elandelayo:

  • igama - ngokubona kwakho (ngokwesibonelo, i-serverRoomTemp )
  • Uhlobo - i-ejenti ye-zabbix
  • Ukhiye - Rodos
  • Uhlobo-inombolo
  • Amayunithi - C
  • Isikhathi sokugcina umlando — isikhathi sokugcina umlando. ushiye izinsuku ezingu-10
  • Isikhathi sokulondoloza esithrendayo—isikhathi sokugcina sokuguquguquka kwezinguquko. Kusele izinsuku ezingama-30
  • Uhlelo olusha - iseva Room Temp

Bese ucindezela inkinobho ethi ADD.
I-Buildroot: Idala i-firmware ye-cross-platform nge-zabbix-server

Phatha izilungiselelo usebenzisa isixhumi esibonakalayo sewebhu

Isixhumi esibonakalayo sewebhu sibhalwe nge-PHP. Kukhona imisebenzi esemqoka:

  • buka isimo sedivayisi
  • ukushintsha izilungiselelo zenethiwekhi
    I-Buildroot: Idala i-firmware ye-cross-platform nge-zabbix-server
  • ukushintsha iphasiwedi yomsebenzisi
  • ukukhetha indawo yesikhathi
  • isipele/buyisela/ukusetha kabusha kwasefekthri
  • ikhono lokuxhuma idrayivu yangaphandle
  • Ukuvuselelwa kwesistimu
    I-Buildroot: Idala i-firmware ye-cross-platform nge-zabbix-server

Ukungena ngemvume kusixhumi esibonakalayo sewebhu kuvikelwe ngephasiwedi. Ikhasi lokuqala - imanuwali.

Ikheli le-interface ye-Zabbix: ${ip/dns}/zabbix
Ikheli lokusebenzelana kokuphatha: ${ip/dns}/manage
I-Buildroot: Idala i-firmware ye-cross-platform nge-zabbix-server

Ukugijima kuqemu

qemu-system-x86_64 -smp 4 -m 4026M -vumela-kvm -umshini q35,accel=kvm -device 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 myalo uzoqala uhlelo olunama-cores angu-4, i-RAM engu-2048, i-KVM inikwe amandla, ikhadi lenethiwekhi ku-bridge0 namadiski amabili: eyodwa yesistimu neyodwa yangaphandle ye-postgresql.

Izithombe zingaguqulwa futhi zisebenze ku-Virtualbox:

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

Bese uzingenise ku-virtualbox bese uxhuma nge-sata.

isiphetho

Kulolu hlelo, ngaba nentshisekelo yokwenza umkhiqizo olungele ukusetshenziswa - onesixhumi esibonakalayo esingesihle kakhulu (angithandi ukuwabhala), kodwa osebenzayo futhi okulula ukuwulungisa.

Umzamo wokugcina wokufaka i-zabbix-appliance ku-KVM ubonise ukuthi lesi sinyathelo sasilungile (ngemuva kokuqedwa kokufakwa, isistimu ayiqali). Mhlawumbe kukhona engikwenzayo okungalungile 😉

Izinto zokwakha

https://buildroot.org/

Source: www.habr.com

Engeza amazwana