Buildroot: Mepụta firmware cross-platform na zabbix-server

Buildroot: Mepụta firmware cross-platform na zabbix-server

Akụkọ nsogbu

Ụlọ ọrụ ndị dị nta, n'otu aka ahụ, chọrọ nleba anya dị elu nke akụrụngwa ha (karịsịa n'ihi mgbasa ozi zuru oke), n'aka nke ọzọ, ọ na-esiri ha ike ịzụrụ ngwá ọrụ ọhụrụ. Nsogbu sava / ngwaike na-ahụkarị: ọtụtụ mgbe enwere sava ụlọ elu 1-3 n'akụkụ ebe ọrụ onye ọrụ ma ọ bụ na obere niche / kaboodu.

Ọ dị mfe iji mgbakọ dị njikere (nkesa), nke ị ga-ebugo na kaadị microSD wee tinye n'ime kọmputa otu bọọdụ nkịtị (beaglebone, raspberry pi na orange pi ezinụlọ, asus tinker board). Tụkwasị na nke ahụ, ngwá ọrụ dị otú ahụ adịghị ọnụ ma nwee ike itinye ya n'ebe ọ bụla.

Ulationkpụzi nsogbu a

N'ọtụtụ ụzọ, ọrụ ahụ mepụtara dị ka ụdị ọrụ ụlọ nyocha nwere ike itinye nsonaazụ ya.

A họọrọ Zabbix dị ka usoro nlekota oru n'ihi na ọ bụ usoro dị ike, n'efu na nke ọma.

Okwu gbasara ikpo okwu ngwaike abawanyela, itinye igwe dị iche iche n'okpuru nlekota abụghịkwa ezigbo ngwọta - ma ọ dị oke ọnụ ịzụta akụrụngwa ọhụrụ, ma ọ bụ ịchọ ngwa ochie + na obere ụlọ ọrụ enwere nsogbu na sava / sava. ngwaike.

Iji sistemụ wuo ụlọ na-enye gị ohere ịmepụta ngwọta pụrụ iche nke ndị ọrụ nwere ike ịrụ ọrụ nke nwere ntakịrị ihe ọmụma nke sistemụ arụmọrụ Linux. Usoro a bụ enyi na enyi na ndị mbido, ma n'otu oge ahụ na-enye ohere nhazi zuru oke n'aka onye mmepụta ahụmahụ. O zuru oke maka idozi nsogbu nke adịghị ọnụ, mana nleba anya na-arụ ọrụ nke ọma nke akụrụngwa IT, yana obere ihe achọrọ maka ọzụzụ nke ndị ọrụ na-arụ ọrụ ya.

Usoro ngwọta

E kpebiri ibido mepụta firmware maka x86_64 ka ọ na-agba ọsọ na qemu, ebe ọ bụ na nke a bụ ngwọta dị mma na ngwa ngwa maka nbipu. Wee bubata ya na kọmpụta nwere otu bọọdụ ogwe aka (asus tinker board masịrị m).

ahọpụtara buildroot dị ka usoro ihe nrụpụta. Na mbụ, ọ na-enweghị ngwugwu zabbix, n'ihi ya, a ghaghị ibufe ya. E nwere nsogbu na mpaghara Russia, bụ nke a na-edozi site na itinye patches kwesịrị ekwesị (dee: na nsụgharị ọhụrụ nke buildroot, a dịghịzi mkpa patches ndị a).

A ga-akọwapụta mbufe ngwugwu zabbix n'onwe ya n'isiokwu dị iche.

Ebe ọ bụ na ihe niile kwesịrị ịrụ ọrụ dị ka ngwa ngwa (onyinyo sistemụ enweghị ike ịgbanwe + nhazi faịlụ / faịlụ nchekwa data), ọ dị mkpa ka ị dee ebumnuche nke gị, ọrụ na ngụ oge (lekwasịrị, ọrụ, ngụ oge).

Ekpebiri kewaa mgbasa ozi na ngalaba 2 - ngalaba nwere faịlụ sistemụ yana ngalaba nwere nhazi mgbanwe na faịlụ nchekwa data zabbix.

Ịdozi nsogbu ndị metụtara nchekwa data tụgharịrị bụrụ nke siri ike karị. Achọghị m itinye ya ozugbo na mgbasa ozi. N'otu oge ahụ, nha nke nchekwa data nwere ike iru nha nke karịrị nha nke ramdisk ga-ekwe omume. Ya mere, a họọrọ ngwọta nkwekọrịta: nchekwa data dị na akụkụ nke abụọ nke kaadị SD (kaadị SLC nke oge a nwere ihe dị ka 30 na-ede cycles), ma e nwere ntọala nke na-enye ohere iji mgbasa ozi mpụga (dịka ọmụmaatụ, usb- hdd).

Ejiri ngwaọrụ RODOS-5 rụọ ọrụ nlekota okpomọkụ. N'ezie, ị nwere ike iji Dallas 1820 ozugbo, mana ọ dị ngwa ngwa ma dị mfe itinye na USB.

grub86 ka ahọpụtara dị ka bootloader maka x64_2. Ọ dị mkpa ka ị dee nhazi dị ntakịrị iji malite ya.

Mgbe emechara ya na qemu, ebugara ya na bọọdụ tinker asus. E bu n’obi kee ihe owuwu nke ihe mkpuchi m ka ọ bụrụ ikpo okwu - ịkenye nhazi kpọmkwem na bọọdụ ọ bụla (board defconfig, bootloader, na-ewepụta onyonyo nwere akụkụ sistemụ) yana otu kachasị na ịhazi sistemụ faịlụ / imepụta onyonyo nwere data. N'ihi nkwadebe dị otú ahụ, ụgbọ mmiri na-aga ngwa ngwa.

A na-atụ aro ka ị gụọ akụkọ mmalite:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Etu esi achikota

A na-echekwa ọrụ a na github
Mgbe emechara ebe nchekwa ahụ, a na-enweta usoro faịlụ ndị a:

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

buildroot-2019.05.tar.gz - ụlọ nchekwa ihe nrụpụta dị ọcha
overlay bụ akwụkwọ ndekọ aha m nwere mpụta-osisi. Nke a bụ ebe echekwara ihe niile ịchọrọ iji wuo firmware site na iji buildroot.
README.md - nkọwa nke oru ngo na akwụkwọ ntuziaka na bekee.
run_me.sh bụ script na-akwado usoro iwu. Na-agbasapụ mgbọrọgwụ site na ebe a na-edebe ihe ochie, na-etinye ihe mkpuchi na ya (site na usoro osisi mpụga) ma na-enye gị ohere ịhọrọ bọọdụ ebumnuche maka mgbakọ.

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

Mgbe nke a gasịrị, dị nnọọ gaa na buildroot-2019.05 ndekọ ma mee iwu iwu.
Ozugbo arụchara ụlọ ahụ, nsonaazụ ụlọ niile ga-adị na ndekọ mmepụta/ihe onyonyo:

[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

Faịlụ achọrọ:

  • sdcard.img - onyonyo mgbasa ozi maka ịdekọ na kaadị SD (site na dd ma ọ bụ rufus n'okpuru wibdows).
  • qemu.qcow2 - onyonyo mgbasa ozi ga-agba ọsọ na qemu.
  • external.qcow2 - onyonyo mgbasa ozi mpụga maka nchekwa data
  • Monitor-0.9-beta.tar.gz - ebe nchekwa maka imelite site na interface weebụ

Ọgbọ nke Nduzi

Ọ baghị uru ịde otu ntuziaka ọtụtụ oge. Na ihe ezi uche dị na ya bụ ide ya otu ugboro na markdown, wee gbanwee ya na PDF maka nbudata na html maka interface weebụ. Nke a ga-ekwe omume ekele maka ngwugwu pandoc.

N'otu oge ahụ, ọ dị mkpa ka ịmepụta faịlụ ndị a niile tupu ekpokọta ihe oyiyi sistemu; ihe odide ndị a na-ewu ụlọ abaghị uru. Ya mere, a na-eme ọgbọ ahụ n'ụdị ngwugwu akwụkwọ ntuziaka. Ị nwere ike lelee ihe mkpuchi / ngwugwu / akwụkwọ ntuziaka.

Faịlụ manuals.mk (nke na-arụ ọrụ niile)

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

Ụwa Linux na-arụsi ọrụ ike na systemd, na m ga-emekwa ya.
Otu n'ime ihe ọhụrụ dị ụtọ bụ ọnụnọ nke oge. N'ozuzu, a na-ede akụkọ dị iche iche banyere ha (ọ bụghị naanị banyere ha), ma m ga-agwa gị nkenke.

Enwere omume ndị a ga-emerịrị kwa oge. Achọrọ m ịgba ọsọ logrotate iji kpochapụ logtpd na php-fpm. Ihe a na-emebu bụ ide iwu na cron, mana ekpebiri m iji usoro ngụ oge monotonic. Ya mere, logrotate na-agba ọsọ na ogologo oge siri ike.

N'ezie, ọ ga-ekwe omume ịmepụta oge na-agba ọkụ na ụfọdụ ụbọchị, ma achọghị m nke a.
Ọmụmaatụ ngụ oge:

  • Ngụ oge faịlụ
    
    [Unit]
    Description=RODOS temp daemon timer

[Ngụ oge] OnBootSec=1 nkeji
OnUnitActiveSec=1 nkeji

[Wụnye] WantedBy=timers.target

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

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

bọọdụ akwadoro

Asus tinker bọọdụ bụ isi osisi nke ihe niile kwesịrị ịrụ ọrụ na ya. Ahọpụtara dị ka ọnụ ala ma dị ike nke ukwuu.

Black Beaglebone bụ bọọdụ mbụ a nwalere ọrụ ya (n'oge nhọrọ nke bọọdụ dị ike karị).

Qemu x86_64 - ejiri maka nrụpụta nbipu.

Otú o si arụ ọrụ

Na mbido, mweghachi nke ntọala abụọ na-eme:

  • na-agba ọsọ ntọala_restore script (site na ọrụ). Ọ na-eweghachi ntọala ntọala ntọala - mpaghara oge, mpaghara, ntọala netwọkụ, wdg.
  • na-agba ọsọ edemede nkwadebe (site na ọrụ) - ebe a zabbix na nchekwa data dị njikere, IP na-emepụta na njikwa.

Mgbe ịmalitere ya, a na-ekpebi nha nkebi nke abụọ nke kaadị SD. Ọ bụrụ na a ka nwere ohere a na-ekenyeghị, a na-ekewa mgbasa ozi, na ngalaba data na-eweghara ohere niile n'efu. Emere nke a iji wedata nha onyonyo nwụnye (sdcard.img). Na mgbakwunye, a na-emepụta akwụkwọ ndekọ aha postgresql n'oge a. Ọ bụ ya mere mmalite mbụ ya na ụgbọelu ọhụrụ ga-adị ogologo karịa ndị na-esote.

Mgbe ị na-ejikọ draịva mpụga, n'oge mmalite ọ na-achọ draịva n'efu wee jiri akara mpụta mee ya ka ọ bụrụ ext4.

Ntị! Mgbe ị na-ejikọta mbanye mpụga (yana ịkwụsị ma ọ bụ dochie ya), ịkwesịrị ịme nkwado ndabere na mpaghara weghachi ntọala ahụ!

A na-eji ngwaọrụ RODOS 5 maka nlekota okpomọkụ. Onye nrụpụta na-enye koodu isi iyi nke uru ya maka ịrụ ọrụ na ngwaọrụ ahụ. Mgbe ịgbanyere sistemụ ahụ, ngụ oge rodos ga-amalite, nke na-arụ ọrụ a otu ugboro n'otu nkeji. Edere ọnọdụ okpomọkụ dị ugbu a na faịlụ /tmp/rodos_current_temp, emesịa zabbix nwere ike nyochaa faịlụ a dị ka ihe mmetụta.

A na-agbanye usoro nchekwa nchekwa nhazi na ndekọ ndekọ / data.

Mgbe ị na-amalite sistemụ ma na-akwado ya maka ịrụ ọrụ, ozi na-apụta na njikwa:

System starting, please wait

Mgbe arụchara ọrụ nkwadebe ahụ, ọ ga-agbanwe na igosipụta adreesị IP:

current ip 192.168.1.32
Ready to work

Ịtọlite ​​​​zabbix maka nlekota okpomọkụ

Iji nyochaa okpomọkụ, naanị mee usoro abụọ:

  • jikọọ ngwaọrụ RODOS na ọdụ ụgbọ USB
  • mepụta ihe data na zabbix

Mepee interface webụ zabbix:

  • Mepee ngalaba Nhazi → Ndị ọbịa
  • Pịa ihe dị n'ahịrị nke sava zabbix anyị
  • Pịa Mepụta ihe

Buildroot: Mepụta firmware cross-platform na zabbix-server

Tinye data ndị a:

  • aha - n'echiche gị (dịka ọmụmaatụ, serverRoomTemp)
  • Ụdị - onye ọrụ zabbix
  • Igodo - Rodos
  • Ụdị-ọnụọgụ
  • Ngalaba - C
  • Oge nchekwa akụkọ ihe mere eme - oge nchekwa akụkọ ihe mere eme. hapụrụ 10 ụbọchị
  • Oge nchekwa oge-oge nchekwa maka mgbanwe mgbanwe. Ha hapụrụ ụbọchị iri atọ
  • Ngwa ọhụrụ - ihe nkesa Room Temp

Ma pịa bọtịnụ ADD.
Buildroot: Mepụta firmware cross-platform na zabbix-server

Jikwaa ntọala site na ntanetị weebụ

Edere interface weebụ na PHP. Enwere isi ọrụ:

  • lelee ọkwa ngwaọrụ
  • na-agbanwe ntọala netwọk
    Buildroot: Mepụta firmware cross-platform na zabbix-server
  • na-agbanwe paswọọdụ onye ọrụ
  • nhọrọ mpaghara oge
  • ndabere / weghachi / nrụpụta nrụpụta
  • ike jikọọ mbanye mpụga
  • Mmelite sistemụ
    Buildroot: Mepụta firmware cross-platform na zabbix-server

A na-echekwa paswọọdụ nbanye na ntanetị weebụ. Ibe mmalite - akwụkwọ ntuziaka.

Adreesị interface Zabbix: ${ip/dns}/zabbix
Adreesị interface njikwa: ${ip/dns}/jikwaa
Buildroot: Mepụta firmware cross-platform na zabbix-server

Na-agba ọsọ na qemu

qemu-system-x86_64 -smp 4 -m 4026M -enable-kvm -machine q35,accel=kvm -device intel-iommu -cpu host -net nic -net bridge,br=bridge0 -device virtio-scsi-pci,id= scsi0 -drive faịlụ = mmepụta / oyiyi / qemu.qcow2, usoro = qcow2, aio = threads -device virtio-scsi-pci, id = scsi0 -drive faịlụ = mmepụta / oyiyi / external.qcow2, usoro = qcow2, aio = eri.

Iwu a ga-amalite usoro na 4 cores, 2048 RAM, KVM nyeere, kaadị netwọk na bridge0 na diski abụọ: otu maka usoro na otu mpụga maka postgresql.

Enwere ike gbanwee onyonyo wee mee na Virtualbox:

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

Wee bubata ha na virtualbox wee jikọọ site na sata.

nkwubi

N'ime usoro ahụ, enwere m mmasị ịme ngwaahịa dị njikere iji - nke nwere interface mara mma nke ukwuu (Achọghị m ide ha), mana nke na-arụ ọrụ ma dị mfe ịhazi.

Mgbalị ikpeazụ iji wụnye zabbix-appliance na KVM gosipụtara na nzọụkwụ a ziri ezi (mgbe echichi mechara, usoro ahụ anaghị amalite). Ikekwe m na-eme ihe adịghị mma 😉

Ihe onwunwe

https://buildroot.org/

isi: www.habr.com

Tinye a comment