Buildroot: Kugadzira cross-platform firmware ine zabbix-server

Buildroot: Kugadzira cross-platform firmware ine zabbix-server

Dambudziko nhoroondo

Makambani madiki-diki, kune rumwe rutivi, anoda kutariswa kwemhando yepamusoro yezvivakwa zvavo (kunyanya tichitarisa kupararira kwakawanda), kune rumwe rutivi, zvakaoma mune zvemari kuti vatenge michina mitsva. Matambudziko eSevha/hardware anowanikwawo: kazhinji pane 1-3 shongwe maseva padyo nenzvimbo yevashandisi kana mune diki niche/wadhiropu.

Zviri nyore kushandisa yakagadzirira-yakagadzirwa gungano (kugovera), iyo yaunongoda kurodha kune microSD kadhi uye kuisa mune yakajairika-bhodhi komputa (beaglebone, raspberry pi uye orange pi mhuri, asus tinker board). Mukuwedzera, michina yakadaro haina mari uye inogona kuiswa chero kupi zvako.

Kugadzirwa kwedambudziko

Nenzira dzakawanda, chirongwa chakagadziridzwa semhando yebasa rerabhoritari ine mukana wekushandisa zvabuda.

Zabbix yakasarudzwa senzira yekutarisa nekuti ine simba, yemahara uye yakanyatso nyorwa system.

Kuisa muchina wakasiyana pasi pekutariswa haisiwo mhinduro yakanaka - ingave inodhura kutenga michina mitsva, kana kutsvaga michina yechinyakare + mumakambani madiki pane anowanzo kunetsa ne server/ hardware.

Kushandisa iyo buildroot kuvaka sisitimu inobvumidza iwe kugadzira yakasarudzika mhinduro dzinogona kushandiswa nevashandi vane ruzivo rushoma rweLinux masisitimu anoshanda. Iyi sisitimu ine hushamwari kune vanotanga, asi panguva imwe chete inopa yakakwana mikana yekugadzirisa mumaoko emugadziri ane ruzivo. Yakakwana pakugadzirisa dambudziko rekusingadhure, asi rinoshanda rakazara rekutarisa IT zvivakwa, ine zvidiki zvinodiwa pakudzidziswa kwevashandi vanoishandisa.

Solution matanho

Zvakasarudzwa kutanga kugadzira firmware ye x86_64 kuti iite muqemu, sezvo iyi iri nyore uye nekukurumidza mhinduro yekugadzirisa. Wobva waitakura kune ruoko single-board komputa (ndaifarira iyo asus tinker board).

buildroot yakasarudzwa seyekuvaka system. Pakutanga, inoshaya zabbix package, saka yaifanira kutakurwa.Paiva nezvinetso neRussian locale, iyo yakagadziriswa nekushandisa zvigamba zvakakodzera (chinyorwa: muzvinyorwa zvitsva zvebuildroot, zvigamba izvi hazvichadiwi).

Kutakura iyo zabbix package pachayo inotsanangurwa mune yakaparadzana chinyorwa.

Sezvo zvese zvichifanira kushanda se firmware (isina kuchinjika system mufananidzo + inodzoreredzwa gadziriso / dhatabhesi mafaera), zvaive zvakakodzera kunyora yako systemd zvinangwa, masevhisi uye nguva (chinangwa, sevhisi, timer).

Zvakasarudzwa kupatsanura midhiya kuita zvikamu zviviri - chikamu chine mafaera ehurongwa uye chikamu chine chinochinjika configs uye zabbix dhatabhesi mafaera.

Kugadzirisa matambudziko ane chekuita nedhatabhesi kwakave kwakaoma zvishoma. Ndaisada kuzviisa pamedia. Panguva imwecheteyo, saizi yedhatabhesi inogona kusvika saizi inodarika saizi yeanogona ramdisk. Naizvozvo, mhinduro yekukanganisa yakasarudzwa: dhatabhesi iri pachikamu chechipiri cheSD kadhi (azvino SLC makadhi ane anosvika makumi matatu ezviuru ekunyora mitsara), asi pane marongero anobvumira kushandiswa kwekunze midhiya (semuenzaniso, usb- hdd).

Kuongorora kwekushisa kwakaitwa kuburikidza neRODOS-5 mudziyo. Ehe, unogona kushandisa iyo Dallas 1820 zvakananga, asi yaive nekukurumidza uye nyore kubaya mu USB.

grub86 yakasarudzwa seyo bootloader ye x64_2. Zvaive zvakakodzera kunyora zvishoma config kuti utange.

Mushure mekugadzirisa qemu, yakaendeswa kune asus tinker board. Chimiro chekufukidzira kwangu chakatanga kuitirwa kuve muchinjiko-chikuva - kugovera configs yakananga kune yega bhodhi (bhodhi defconfig, bootloader, kugadzira chifananidzo chine system partition) uye yakanyanya kufanana mukugadzirisa iyo faira system / kugadzira chifananidzo chine data. Nekuda kwekugadzirira kwakadaro, kutakurwa kwakakurumidza.

Zvinokurudzirwa kuverenga zvinyorwa zvekutanga:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Ungana sei

Iyo purojekiti inochengetwa pagithub
Mushure mekuvhara repository, iyo inotevera faira chimiro inowanikwa:

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

buildroot-2019.05.tar.gz - yakachena buildroot archive
overlay ndiro dhairekitori rangu nekunze-muti. Apa ndipo panochengeterwa zvese zvaunoda kuvaka iyo firmware uchishandisa buildroot.
README.md - tsananguro yeprojekiti uye bhuku reChirungu.
run_me.sh chinyorwa chinogadzirira kuvaka system. Inowedzera buildroot kubva mudura, inosungirira pamusoro payo (kuburikidza neyekunze-muti wemuti) uye inobvumidza iwe kusarudza bhodhi rinonangwa rekuvaka.

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

Mushure meizvi, ingoenda kune iyo buildroot-2019.05 dhairekitori uye mhanya iyo make command.
Kana iyo kuvaka kwapera, zvese zviwanikwa zvekuvaka zvichange zviri mune inobuda / mifananidzo dhairekitori:

[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

Mafaira anodiwa:

  • sdcard.img - midhiya mufananidzo wekurekodha pane SD kadhi (kuburikidza ne dd kana rufus pasi pe wibdows).
  • qemu.qcow2 - media image to run in qemu.
  • external.qcow2 - ekunze midhiya mufananidzo wedatabase
  • monitor-0.9-beta.tar.gz - chengetedzo yekuvandudza kuburikidza newebhu interface

Chizvarwa cheVatungamiri

Hazvina kukodzera kunyora mirairo yakafanana kakawanda. Uye chinhu chine musoro ndechekunyora kamwe mumarkdown, wozoishandura kuita PDF yekurodha uye html yewebhu interface. Izvi zvinogoneka nekuda kwepandoc package.

Panguva imwecheteyo, mafaera ese aya anofanirwa kugadzirwa mufananidzo usati waunganidzwa; iwo e-post-build script atove asina basa. Naizvozvo, chizvarwa chinoitwa nenzira yemanyorero package. Iwe unogona kutarisa pamusoro pepamusoro / pakeji / manyoro.

Iyo manuals.mk faira (iyo inoita basa rese)

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

systemd

Iyo Linux nyika iri kushingaira kuenda kune systemd, uye ini ndaifanira kuzviitawo.
Chimwe chezvinofadza zvitsva kuvapo kwezviyereso zvenguva. Kazhinji, chinyorwa chakasiyana chiri kunyorwa pamusoro pavo (uye kwete chete pamusoro pavo), asi ini ndichakuudza muchidimbu.

Pane zviito zvinofanira kuitwa nguva nenguva. Ini ndaida kumhanya logrotate kuti ndibvise lighttpd uye php-fpm matanda. Chinhu chenguva dzose chaizova kunyora mirairo mu cron, asi ndakafunga kushandisa systemd monotonic timer. Saka logrotate inomhanya panguva yakaoma nguva.

Ehe, zvinokwanisika kugadzira nguva dzinopisa pane mamwe mazuva, asi ini ndaisada izvi.
Muenzaniso wenguva:

  • Timer File
    
    [Unit]
    Description=RODOS temp daemon timer

[Timer] OnBootSec=1min
OnUnitActiveSec=1min

[Isa] WantedBy=timers.target

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

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

Mabhodhi anotsigirwa

Asus tinker board ndiyo bhodhi huru iyo zvese zvinofanirwa kushanda. Yakasarudzwa seisingadhuri uye ine simba kwazvo.

Beaglebone dema ndiro bhodhi rekutanga iro rakaedzwa kushanda (panguva yekusarudzwa kwebhodhi rine simba).

Qemu x86_64 - inoshandiswa kugadzirisa kugadzirisa.

Iyo inoshanda sei

Pakutanga, kudzoreredzwa kwematanho maviri ezvirongwa kunoitika:

  • uchimhanyisa iyo settings_restore script (kuburikidza nebasa). Inodzoreredza masisitimu ekutanga - nguva zone, nzvimbo, network zvigadziriso, nezvimwe.
  • uchimhanyisa gadzirira script (kuburikidza nesevhisi) - pano zabbix uye dhatabhesi zvakagadzirirwa, iyo IP inobuda kune iyo console.

Paunotanga kuitanga, saizi yechikamu chechipiri cheSD kadhi inotarwa. Kana pachine nzvimbo isina kugoverwa, midhiya inodzokororwa, uye chikamu chedata chinotora nzvimbo yese yemahara. Izvi zvinoitwa kuitira kuderedza saizi yekuisa mufananidzo (sdcard.img). Pamusoro pezvo, iyo postgresql inoshanda dhairekitori inogadzirwa panguva ino. Ndokusaka kutanga kwekutanga nemutakuri mutsva kuchave kwakareba kupfuura kunotevera.

Kana uchibatanidza dhiraivha yekunze, panguva yekutanga inotsvaga dhiraivha yemahara uye inoigadzira mu ext4 ine yekunze label.

Attention! Kana uchibatanidza dhiraivha yekunze (pamwe nekuibvisa kana kuitsiva), unofanirwa kuita backup uye kudzoreredza zvigadziriso!

Iyo RODOS 5 mudziyo unoshandiswa pakutarisisa tembiricha.Mugadziri anopa iyo kodhi kodhi yekushandisa kwayo pakushanda nemudziyo. Kana iyo system ikavhurwa, iyo rodos timer inotanga, iyo inoshandisa iyi yekushandisa kamwe paminiti. Ikozvino tembiricha yakanyorerwa faira /tmp/rodos_current_temp, mushure mezvo zabbix inogona kutarisa iyi faira se sensor.

Iyo dhizaini yekuchengetedza midhiya yakaiswa mu / data dhairekitori.

Paunenge uchitanga iyo system uye uchiigadzirira kuti ishande, iyo inotevera meseji inoonekwa mune iyo console:

System starting, please wait

Mushure mekupedza basa rekugadzirira, rinochinja kuratidza IP kero:

current ip 192.168.1.32
Ready to work

Kugadzika zabbix yekutarisa tembiricha

Kuti utarise tembiricha, ingotora 2 nhanho:

  • batanidza iyo RODOS mudziyo kune USB port
  • gadzira data chinhu mu zabbix

Vhura iyo zabbix yewebhu interface:

  • Vhura chikamu cheKugadziridza β†’ Vabati
  • Dzvanya paZvinhu mumutsara wezabbix server yedu
  • Dzvanya paGadzira chinhu

Buildroot: Kugadzira cross-platform firmware ine zabbix-server

Isa data rinotevera:

  • zita - pakufunga kwako (semuenzaniso, serverRoomTemp)
  • Type - zabbix mumiririri
  • Kiyi - Rodos
  • Type-numeric
  • Zvikwata - C
  • Nguva yekuchengetedza nhoroondo - nguva yekuchengetedza nhoroondo. asara mazuva gumi
  • Trend kuchengetedza nguva-nguva yekuchengetedza yekuchinja kwekuchinja. Kwasara mazuva makumi matatu
  • Chishandiso chitsva - server Kamuri Temp

Uye tinya bhatani reADD.
Buildroot: Kugadzira cross-platform firmware ine zabbix-server

Tonga zvigadziriso kuburikidza newebhu interface

Iyo webhu interface yakanyorwa muPHP. Pane mabasa makuru:

  • ona chimiro chemudziyo
  • kuchinja masethingi etiweki
    Buildroot: Kugadzira cross-platform firmware ine zabbix-server
  • kuchinja mushandisi password
  • kusarudzwa kwenzvimbo yenguva
  • backup/restore/factory reset
  • kukwanisa kubatanidza motokari yekunze
  • Sisitimu yekuvandudza
    Buildroot: Kugadzira cross-platform firmware ine zabbix-server

Kupinda pawebhu interface kune password yakachengetedzwa. Peji yekutanga - bhuku rekushandisa.

Zabbix interface address: ${ip/dns}/zabbix
Kero yekutarisira: ${ip/dns}/manage
Buildroot: Kugadzira cross-platform firmware ine zabbix-server

Kumhanya muqemu

qemu-system-x86_64 -smp 4 -m 4026M -gonesa-kvm -muchina q35,accel=kvm -device intel-iommu -cpu host -net nic -net bhiriji,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

Uyu murairo uchatanga sisitimu ine 4 cores, 2048 RAM, KVM yakagoneswa, network kadhi pabhiriji0 uye maviri disks: imwe yehurongwa uye imwe yekunze yepostgresql.

Mifananidzo inogona kushandurwa uye kumhanya muVirtualbox:

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

Wobva waapinza mu virtualbox uye batanidza kuburikidza ne sata.

mhedziso

Mukuita izvi, ndakafarira kugadzira chigadzirwa chakagadzirira-kushandisa - chine chimiro chisina kunaka (ini handifarire kunyora), asi chinoshanda uye chiri nyore kugadzirisa.

Kuedza kwekupedzisira kuisa zabbix-appliance muKVM kwakaratidza kuti danho iri rakanga rakarurama (mushure mekunge kuiswa kwapera, sisitimu haitangi). Pamwe ndiri kuita zvisizvo πŸ˜‰

Zvinhu

https://buildroot.org/

Source: www.habr.com

Voeg