Buildroot: Ke hana ʻana i ka firmware cross-platform me ka zabbix-server

Buildroot: Ke hana ʻana i ka firmware cross-platform me ka zabbix-server

Moolelo pilikia

ʻO nā ʻoihana liʻiliʻi liʻiliʻi, ma ka ʻaoʻao hoʻokahi, pono ka nānā ʻana i ke kūlana kiʻekiʻe o kā lākou ʻoihana (ʻoi aku ka nui o ka virtualization ākea), ma ka ʻaoʻao ʻē aʻe, he paʻakikī kālā no lākou ke kūʻai aku i nā lako hou. He mea maʻamau nō hoʻi nā pilikia o ka server/hardware: he 1-3 mau kikowaena hale kiaʻi ma kahi o nā keʻena hana hoʻohana a i ʻole ma kahi niche liʻiliʻi.

ʻOi aku ka maʻalahi o ka hoʻohana ʻana i kahi hui i hoʻomākaukau ʻia (māhele), pono ʻoe e hoʻouka i kahi kāleka microSD a hoʻokomo i loko o kahi kamepiula papa hoʻokahi (beaglebone, raspberry pi a me nā ʻohana pi alani, asus tinker board). Eia kekahi, he mea maʻalahi ia mau mea hana a hiki ke hoʻokomo i nā wahi āpau.

Ka hoʻokumu ʻana i ka pilikia

Ma nā ʻano he nui, ua hoʻomohala ʻia ka papahana ma ke ʻano he ʻano hana ʻoihana me ka hiki ke hoʻohana i nā hopena.

Ua koho ʻia ʻo Zabbix e like me ka ʻōnaehana nānā no ka mea he ʻōnaehana ikaika, manuahi a paʻa pono.

ʻO ka hoʻopuka ʻana i kahi mīkini kaʻawale ma lalo o ka nānā ʻana, ʻaʻole ia he hopena maikaʻi loa - he kumukūʻai paha ke kūʻai ʻana i nā mea hana hou, a i ʻole ke ʻimi ʻana i nā mea kahiko + i nā ʻoihana liʻiliʻi he pilikia pinepine me ka server/ lako lako.

Ke hoʻohana nei i ka buildroot build system e hiki ai iā ʻoe ke hana i nā hoʻonā kūikawā hiki ke hana ʻia e nā limahana me ka ʻike liʻiliʻi o nā ʻōnaehana hana Linux. He mea aloha kēia ʻōnaehana i ka poʻe hoʻomaka, akā i ka manawa like e hāʻawi i nā manawa hana maʻamau i nā lima o kahi mea hoʻomohala ʻike. He kūpono ia no ka hoʻoponopono ʻana i ka pilikia o ka inexpensive, akā ke nānā pono nei i ka ʻōnaehana IT, me nā koi liʻiliʻi no ka hoʻomaʻamaʻa ʻana i nā limahana e hana ana.

Nā ʻanuʻu hoʻonā

Ua hoʻoholo ʻia e hana mua i ka firmware no x86_64 e holo i ka qemu, no ka mea he hopena kūpono a wikiwiki kēia no ka debugging. A laila e hoʻokomo i kahi kamepiula papa hoʻokahi lima (makemake wau i ka papa tinker asus).

Ua koho ʻia ʻo buildroot e like me ka ʻōnaehana kūkulu. I ka hoʻomaka ʻana, nele i ka pōʻai zabbix, no laila pono e lawe ʻia. Aia nā pilikia me ka wahi Lūkini, i hoʻoponopono ʻia ma ka hoʻohana ʻana i nā pākuʻi kūpono (nota: i nā mana hou o buildroot, ʻaʻole pono kēia mau pā).

ʻO ka lawe ʻana i ka pūʻolo zabbix ponoʻī e wehewehe ʻia ma kahi ʻatikala ʻokoʻa.

No ka mea e hana nā mea āpau ma ke ʻano firmware (kiʻi ʻōnaehana hiki ʻole ke hoʻololi ʻia + hoʻihoʻi hou i ka hoʻonohonoho / waihona waihona), pono e kākau i kāu mau pahuhopu systemd ponoʻī, nā lawelawe a me nā timers (target, service, timer).

Ua hoʻoholo ʻia e hoʻokaʻawale i ka media i 2 mau ʻāpana - kahi ʻāpana me nā faila ʻōnaehana a me kahi ʻāpana me nā configs loli a me nā faila waihona zabbix.

ʻO ka hoʻoponopono ʻana i nā pilikia e pili ana i ka waihona i lilo i mea paʻakikī iki. ʻAʻole au i makemake e kau pololei ia ma ka pāpaho. I ka manawa like, hiki i ka nui o ka waihona ke hiki i kahi nui ma mua o ka nui o kahi ramdisk hiki. No laila, ua koho ʻia kahi hopena kuʻikahi: aia ka waihona ma ka ʻāpana ʻelua o ka kāleka SD (ʻo nā kāleka SLC o kēia manawa a hiki i 30 mau pōʻai kākau), akā aia kahi hoʻonohonoho e hiki ai i ka hoʻohana ʻana i nā media waho (no ka laʻana, usb- hdd).

Ua hoʻokō ʻia ka nānā ʻana i ka wela ma o ka hāmeʻa RODOS-5. ʻOiaʻiʻo, hiki iā ʻoe ke hoʻohana pololei i ka Dallas 1820, akā ʻoi aku ka wikiwiki a me ka maʻalahi o ka hoʻopili ʻana i kahi USB.

Ua koho ʻia ʻo grub86 ma ke ʻano he bootloader no x64_2. Pono e kākau i kahi hoʻonohonoho liʻiliʻi e hoʻomaka ai.

Ma hope o ka debugging ma qemu, ua lawe ʻia i ka papa tinker asus. ʻO ke ʻano o kaʻu overlay i manaʻo mua ʻia e cross-platform - ka hoʻokaʻawale ʻana i nā configs kikoʻī i kēlā me kēia papa (papa defconfig, bootloader, hana i kahi kiʻi me kahi ʻōnaehana ʻōnaehana) a me ka hoʻohālikelike kiʻekiʻe i ka hoʻonohonoho ʻana i ka ʻōnaehana faila / hana i kahi kiʻi me ka ʻikepili. Ma muli o ia hoʻomākaukau ʻana, ua holo wikiwiki ka lawe ʻana.

Manaʻo nui ʻia e heluhelu i nā ʻatikala hoʻomaka:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Pehea e hōʻuluʻulu ai

Mālama ʻia ka papahana ma github
Ma hope o ka hoʻopili ʻana i ka waihona, loaʻa kēia ʻano faila:

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

buildroot-2019.05.tar.gz - maʻemaʻe buildroot waihona
ʻO overlay kaʻu papa kuhikuhi me waho-lāʻau. ʻO kēia kahi e mālama ʻia ai nā mea a pau āu e pono ai e kūkulu i ka firmware me ka hoʻohana ʻana i buildroot.
README.md - ka wehewehe ʻana o ka papahana a me ka manual ma ka ʻōlelo Pelekania.
ʻO run_me.sh kahi palapala e hoʻomākaukau ai i ka ʻōnaehana kūkulu. Hoʻonui i ka buildroot mai ka waihona, hoʻopili i kahi overlay iā ia (ma o ke ʻano lāʻau waho) a hiki iā ʻoe ke koho i ka papa kuhikuhi no ka hui.

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

Ma hope o kēia, e hele wale i ka papa kuhikuhi buildroot-2019.05 a holo i ke kauoha make.
Ke hoʻopau ʻia ke kūkulu ʻana, aia nā hopena kūkulu āpau i ka papa kuhikuhi puka / kiʻi:

[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

Pono nā faila:

  • sdcard.img - kiʻi media no ka hoʻopaʻa ʻana ma ke kāleka SD (ma o dd a i ʻole rufus ma lalo o nā wibdows).
  • qemu.qcow2 - kiʻi media e holo ma qemu.
  • external.qcow2 - kiʻi media waho no ka waihona
  • monitor-0.9-beta.tar.gz - waihona no ka hoʻonui ʻana ma o ka pūnaewele pūnaewele

Hanau alakai

ʻAʻole pono ke kākau ʻana i nā ʻōlelo kuhikuhi i nā manawa he nui. A ʻo ka mea kūpono loa, ʻo ke kākau ʻana iā ia i hoʻokahi manawa i ka markdown, a laila hoʻololi iā ia i PDF no ka hoʻoiho ʻana a me ka html no ke kikowaena pūnaewele. Hiki i kēia ke mahalo i ka pūʻolo pandoc.

I ka manawa like, pono e hana ʻia kēia mau faila ma mua o ka ʻākoakoa ʻana o ke kiʻi ʻōnaehana; ʻaʻole pono kēlā mau palapala post-build. No laila, hana ʻia ka hanauna ma ke ʻano o kahi pūʻulu manuals. Hiki iā ʻoe ke nānā i ka overlay/package/manuals.

ʻO ka faila manuals.mk (nāna nā hana a pau)

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

'ōnaehana

Ke neʻe ikaika nei ka honua Linux i systemd, a pono wau e hana pū.
ʻO kekahi o nā mea hou ʻoluʻolu ʻo ka hele ʻana o nā timers. Ma keʻano laulā, ua kākauʻia kahiʻatikala kaʻawale e pili ana iā lākou (aʻaʻole wale no lākou), akā e haʻi pōkole wau iāʻoe.

Aia nā hana e pono e hana i kēlā me kēia manawa. Pono wau e holo i ka logrotate e hoʻomaʻemaʻe i nā lāʻau lighttpd a me php-fpm. ʻO ka mea maʻamau e kākau i nā kauoha i ka cron, akā ua hoʻoholo wau e hoʻohana i ka systemd monotonic timer. No laila, holo ka logrotate i kahi manawa koʻikoʻi.

ʻOiaʻiʻo, hiki ke hana i nā manawa e ahi i kekahi mau lā, akā ʻaʻole pono wau i kēia.
Laʻana manawa:

  • Waihona manawa
    
    [Unit]
    Description=RODOS temp daemon timer

[Ka hola manawa] OnBootSec=1min
OnUnitActiveSec=1min

[Hoʻouka] WantedBy=timers.target

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

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

Nā papa i kākoʻo ʻia

ʻO Asus tinker board ka papa nui e hana ai nā mea a pau. Koho ʻia ma ke ʻano he maʻalahi a ikaika loa.

ʻO Beaglebone ʻeleʻele ka papa mua i hoʻāʻo ʻia ai ka hana (i ke koho ʻana i kahi papa ikaika loa).

Qemu x86_64 - hoʻohana ʻia no ka hoʻomohala hoʻomohala ʻana.

Pehea e hana ai

I ka hoʻomaka ʻana, hoʻihoʻi hou ʻia nā ʻāpana ʻelua:

  • e holo ana i ka palapala settings_restore (ma o ka lawelawe). Hoʻihoʻi ia i nā hoʻonohonoho ʻōnaehana kumu - ka manawa manawa, ka wahi, nā hoʻonohonoho pūnaewele, etc.
  • e holo ana i ka palapala hoʻomākaukau (ma o ka lawelawe) - ma aneʻi zabbix a ua hoʻomākaukau ʻia ka waihona, hoʻopuka ka IP i ka console.

Ke hoʻomaka mua ʻoe, ua hoʻoholo ʻia ka nui o ka lua o ka ʻāpana o ke kāleka SD. Inā ʻaʻohe wahi i hoʻokaʻawale ʻia, hoʻokaʻawale ʻia ka media, a lawe ka ʻāpana ʻikepili i nā wahi āpau āpau. Hana ʻia kēia i mea e hōʻemi ai i ka nui o ke kiʻi hoʻonohonoho (sdcard.img). Hoʻohui ʻia, hana ʻia ka papa kuhikuhi hana postgresql i kēia manawa. ʻO ia ke kumu e ʻoi aku ka lōʻihi o ka hoʻokuʻu mua ʻana me kahi mea lawe hou ma mua o nā mea ma hope.

I ka hoʻohui ʻana i kahi kaʻa waho, i ka manawa o ka hoʻomaka ʻana e ʻimi ʻo ia i kahi kaʻa manuahi a hoʻopili iā ia i ext4 me ka lepili waho.

Nānā! I ka hoʻohui ʻana i kahi kaʻa waho (e like me ka wehe ʻana a i ʻole ke pani ʻana iā ia), pono ʻoe e hana i kahi hoʻihoʻi a hoʻihoʻi i nā hoʻonohonoho!

Hoʻohana ʻia ka hāmeʻa RODOS 5 no ka nānā ʻana i ka wela. Hāʻawi ka mea hana i ke kumu kumu o kāna pono no ka hana ʻana me ka hāmeʻa. Ke hoʻā ʻia ka ʻōnaehana, hoʻomaka ka rodos timer, e holo ana i kēia pono hoʻokahi i ka minuke. Ua kākau ʻia ka mahana o kēia manawa i ka faila /tmp/rodos_current_temp, a laila hiki iā zabbix ke nānā i kēia faila ma ke ʻano he sensor.

Hoʻokomo ʻia ka media waihona hoʻonohonoho i ka papa kuhikuhi / data.

I ka hoʻomaka ʻana i ka ʻōnaehana a hoʻomākaukau iā ia no ka hana, ʻike ʻia kēia memo ma ka console:

System starting, please wait

Ma hope o ka pau ʻana o ka hana hoʻomākaukau, e hoʻololi ia i ka hōʻike ʻana i ka helu IP:

current ip 192.168.1.32
Ready to work

Hoʻonohonoho i ka zabbix no ka nānā ʻana i ka wela

No ka nānā ʻana i ka mahana, e hana wale i 2 mau ʻanuʻu:

  • hoʻohui i ka mea RODOS i ke awa USB
  • hana i ka ʻikepili ma zabbix

E wehe i ke kikowaena pūnaewele zabbix:

  • E wehe i ka ʻāpana Configuration → Hosts
  • Kaomi ma nā mea ma ka laina o kā mākou kikowaena zabbix
  • Kaomi ma luna o Create item

Buildroot: Ke hana ʻana i ka firmware cross-platform me ka zabbix-server

E hoʻokomo i kēia ʻikepili:

  • inoa - ma kou manaʻo (no ka laʻana, serverRoomTemp )
  • ʻAno - zabbix agent
  • Ki - Rodos
  • ʻAno-helu
  • Nā ʻāpana - C
  • Ka wā mālama moʻolelo — mōʻaukala mālama wā. waiho 10 lā
  • Ka wā mālama ʻana—manawa hoʻopaʻa no ka dynamics o nā loli. Haʻalele 30 lā
  • Noi hou - server Room Temp

A kaomi i ke pihi ADD.
Buildroot: Ke hana ʻana i ka firmware cross-platform me ka zabbix-server

Hoʻoponopono i nā hoʻonohonoho ma o ka pūnaewele pūnaewele

Ua kākau ʻia ke kikowaena pūnaewele ma PHP. Aia nā hana nui:

  • nānā i ke kūlana o ka mea hana
  • hoʻololi i nā hoʻonohonoho pūnaewele
    Buildroot: Ke hana ʻana i ka firmware cross-platform me ka zabbix-server
  • hoʻololi i ka ʻōlelo huna mea hoʻohana
  • koho wahi manawa
  • hoʻihoʻi / hoʻihoʻi / hale hana
  • hiki ke hoʻohui i kahi kaʻa waho
  • Hoʻohou pūnaewele
    Buildroot: Ke hana ʻana i ka firmware cross-platform me ka zabbix-server

Hoʻopaʻa ʻia ka ʻōlelo huna ma ka ʻaoʻao pūnaewele. ʻaoʻao hoʻomaka - manual.

ʻO ka helu kuhi henua Zabbix: ${ip/dns}/zabbix
Helu helu hoʻokele hoʻokele: ${ip/dns}/manage
Buildroot: Ke hana ʻana i ka firmware cross-platform me ka zabbix-server

Holo i ka 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 -faila hoʻokele = puka / kiʻi / qemu.qcow2, format = qcow2, aio = nā milo -device virtio-scsi-pci,id=scsi0 -drive file=output/images/external.qcow2, format=qcow2, aio=threads

E hoʻomaka ana kēia kauoha i kahi ʻōnaehana me nā cores 4, 2048 RAM, hiki iā KVM, kahi kāleka pūnaewele ma bridge0 a me ʻelua disks: hoʻokahi no ka ʻōnaehana a hoʻokahi waho no postgresql.

Hiki ke hoʻololi a holo i nā kiʻi ma Virtualbox:

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

A laila e hoʻokomo iā lākou i loko o ka pahu virtual a hoʻopili ma o sata.

hopena

Ma ke kaʻina hana, ua lilo wau i hoihoi i ka hana ʻana i kahi huahana mākaukau e hoʻohana - me kahi interface ʻaʻole nani loa (ʻaʻole wau makemake i ke kākau ʻana iā lākou), akā kahi hana a maʻalahi ke hoʻonohonoho.

ʻO ka hoʻāʻo hope loa e hoʻokomo i ka zabbix-appliance ma KVM i hōʻike ʻia ua pololei kēia ʻanuʻu (ma hope o ka hoʻopau ʻana, ʻaʻole hoʻomaka ka ʻōnaehana). He hewa paha kaʻu e hana nei 😉

Nā Pono

https://buildroot.org/

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka