Buildroot: Kupanga firmware yolumikizira nsanja ndi zabbix-server

Buildroot: Kupanga firmware yolumikizira nsanja ndi zabbix-server

Mbiri yavuto

Makampani ang'onoang'ono, kumbali imodzi, amafunikira kuyang'anitsitsa kwapamwamba kwa zomangamanga zawo (makamaka chifukwa cha kufalikira kwakukulu), kumbali ina, ndizovuta zachuma kuti agule zipangizo zatsopano. Mavuto a seva / zida ndizofalanso: nthawi zambiri pamakhala ma seva a 1-3 pafupi ndi malo ogwiritsira ntchito kapena mu kagawo kakang'ono / kanyumba.

Ndizosavuta kugwiritsa ntchito msonkhano wopangidwa kale (kugawa), womwe umangofunika kukweza ku microSD khadi ndikuyika mu kompyuta wamba imodzi (beaglebone, raspberry pi ndi mabanja a orange pi, asus tinker board). Kuonjezera apo, zipangizo zoterezi ndizotsika mtengo ndipo zimatha kuikidwa kulikonse.

Kupanga kwa vuto

Munjira zambiri, polojekitiyi idapangidwa ngati mtundu wantchito ya labotale yokhala ndi mwayi wogwiritsa ntchito zotsatira.

Zabbix idasankhidwa kukhala njira yowunikira chifukwa ndi yamphamvu, yaulere komanso yolembedwa bwino.

Nkhani ndi nsanja ya hardware yakhala yovuta.Kuyika makina osiyana pansi poyang'anitsitsa si njira yabwino kwambiri - mwina ndi yokwera mtengo kugula zipangizo zatsopano, kapena kuyang'ana zida zakale + m'makampani ang'onoang'ono pamakhala mavuto pafupipafupi ndi seva / hardware.

Kugwiritsa ntchito buildroot build system kumakupatsani mwayi wopanga mayankho apadera omwe angagwiritsidwe ntchito ndi ogwira ntchito omwe amadziwa pang'ono za machitidwe a Linux. Dongosololi ndi lochezeka kwa oyamba kumene, koma nthawi yomweyo limapereka mwayi wokwanira wosintha mwamakonda m'manja mwa wopanga odziwa zambiri. Ndiwoyenera kuthetsa vuto lotsika mtengo, koma kuyang'anira magwiridwe antchito a IT, ndi zofunikira zochepa pakuphunzitsa ogwira ntchitoyo.

Njira zothetsera

Anaganiza zoyamba kupanga fimuweya ya x86_64 kuti igwire qemu, popeza iyi ndi njira yabwino komanso yachangu yothetsera vuto. Kenako lowetsani ku kompyuta yokhala ndi mkono umodzi (ndinkakonda bolodi la asus tinker).

buildroot idasankhidwa ngati njira yomanga. Poyamba, ilibe phukusi la zabbix, kotero liyenera kunyamulidwa. Panali mavuto ndi malo a ku Russia, omwe anathetsedwa pogwiritsa ntchito zigamba zoyenera (zindikirani: m'matembenuzidwe atsopano a buildroot, mapepalawa sakufunikanso).

Kuyika phukusi la zabbix palokha kudzafotokozedwa m'nkhani ina.

Popeza zonse ziyenera kugwira ntchito ngati firmware (chithunzi chosasinthika chadongosolo + mafayilo osinthika / database), kunali kofunikira kuti mulembe zolinga zanu za systemd, mautumiki ndi nthawi (chandamale, ntchito, nthawi).

Zinaganiziridwa kuti zigawanitse zofalitsa m'magawo a 2 - gawo lokhala ndi mafayilo amtundu ndi gawo lomwe lili ndi ma configs osinthika ndi mafayilo a database a zabbix.

Kuthetsa mavuto okhudzana ndi database kudakhala kovuta kwambiri. Sindinafune kuziyika mwachindunji pazofalitsa. Nthawi yomweyo, kukula kwa database kumatha kufika kukula komwe kumapitilira kukula kwa ramdisk. Chifukwa chake, njira yolumikizirana idasankhidwa: nkhokweyo ili pagawo lachiwiri la SD khadi (makadi amakono a SLC amakhala mpaka 30 zolemba), koma pali makonda omwe amalola kugwiritsa ntchito media zakunja (mwachitsanzo, usb- HD).

Kuwunika kwa kutentha kunakhazikitsidwa kudzera pa chipangizo cha RODOS-5. Inde, mutha kugwiritsa ntchito Dallas 1820 mwachindunji, koma inali yachangu komanso yosavuta kulumikiza USB.

grub86 idasankhidwa ngati bootloader ya x64_2. Zinali zofunikira kulemba kasinthidwe kochepa kuti muyambitse.

Itatha kukonza pa qemu, idatumizidwa ku board ya asus tinker. Mapangidwe a chophimba changa poyambirira adapangidwa kuti akhale ophatikizika - kugawa ma configs enieni ku bolodi lililonse (board defconfig, bootloader, kupanga chithunzi ndi magawo a dongosolo) ndi kufanana kwakukulu pakukonza dongosolo la fayilo / kupanga chithunzi ndi deta. Chifukwa cha kukonzekera koteroko, kunyamula kunapita mofulumira.

Ndibwino kuti muwerenge zolemba zoyambira:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Momwe mungasonkhane

Ntchitoyi imasungidwa pa github
Pambuyo popanga chosungira, mawonekedwe otsatirawa amapezedwa:

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

buildroot-2019.05.tar.gz - zosungira zoyera za buildroot
Kuphimba ndi chikwatu changa chokhala ndi mtengo wakunja. Apa ndipamene zonse zomwe mungafune kuti mupange firmware pogwiritsa ntchito buildroot zimasungidwa.
README.md - kufotokoza kwa polojekiti ndi buku mu Chingerezi.
run_me.sh ndi script yomwe imakonzekera dongosolo lomanga. Imakulitsa buildroot kuchokera pankhokwe, imayika pamwamba pake (kudzera pamakina amtengo wakunja) ndikukulolani kuti musankhe bolodi lomwe mukufuna kusonkhana.

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

Pambuyo pake, ingopitani ku bukhu la buildroot-2019.05 ndikuyendetsa make command.
Kumangako kukamaliza, zotsatira zonse zomanga zidzakhala muzolemba zotulutsa / zithunzi:

[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

Mafayilo ofunikira:

  • sdcard.img - chithunzi cha media chojambulira pa SD khadi (kudzera dd kapena rufus pansi pa akazi amasiye).
  • qemu.qcow2 - media image to run in qemu.
  • external.qcow2 - chithunzi cha media chakunja cha database
  • monitor-0.9-beta.tar.gz - zosungidwa kuti zisinthidwe kudzera pa intaneti

M'badwo wa Atsogoleri

Sikoyenera kulemba malangizo omwewo kangapo. Ndipo chinthu chomveka kwambiri ndikuchilemba kamodzi ndikuchisintha kukhala PDF kuti mutsitse ndi html pa intaneti. Izi ndizotheka chifukwa cha phukusi la pandoc.

Nthawi yomweyo, mafayilo onsewa amayenera kupangidwa chithunzi chadongosolo chisanasonkhanitsidwe; zolembedwa zomangidwa pambuyo pake ndizopanda ntchito. Choncho, m'badwo wachitika mu mawonekedwe a phukusi lamanja. Mutha kuyang'ana pamwamba / phukusi / zolemba.

Fayilo ya manuals.mk (yomwe imagwira ntchito zonse)

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

Dziko la Linux likuyenda mwachangu ku systemd, ndipo inenso ndimayenera kutero.
Chimodzi mwazinthu zosangalatsa ndi kukhalapo kwa nthawi. Kawirikawiri, nkhani yosiyana ikulembedwa za iwo (osati za iwo okha), koma ndikukuuzani mwachidule.

Pali zochita zomwe ziyenera kuchitidwa nthawi ndi nthawi. Ndinkafunika kuyendetsa logrotate kuti ndichotse zipika za lighttpd ndi php-fpm. Zomwe zimachitika nthawi zonse zimakhala kulemba malamulo mu cron, koma ndinaganiza zogwiritsa ntchito systemd monotonic timer. Chifukwa chake logrotate imayenda panthawi yokhazikika.

Zachidziwikire, ndizotheka kupanga zowerengera zomwe zimayaka pamasiku ena, koma sindinafune izi.
Chitsanzo cha nthawi:

  • Fayilo ya Timer
    
    [Unit]
    Description=RODOS temp daemon timer

[Timer] OnBootSec=1min
OnUnitActiveSec=1min

[Ikani] WantedBy=timers.target

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

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

Ma board othandizidwa

Asus tinker board ndiye board yayikulu pomwe chilichonse chimayenera kugwira ntchito. Zosankhidwa ngati zotsika mtengo komanso zamphamvu kwambiri.

Beaglebone wakuda ndi bolodi yoyamba yomwe ntchito inayesedwa (pakusankhidwa kwa bolodi lamphamvu kwambiri).

Qemu x86_64 - yogwiritsidwa ntchito pakukonza zolakwika.

Momwe ikugwirira ntchito

Poyamba, kubwezeretsedwa kwa magawo awiri kumachitika:

  • ndikuyendetsa setting_restore script (kudzera mu utumiki). Imabwezeretsanso zoikamo zoyambira - nthawi, malo, zoikamo pamaneti, ndi zina.
  • kuyendetsa script yokonzekera (kudzera mu utumiki) - apa zabbix ndi database zakonzedwa, IP imachokera ku console.

Mukangoyambitsa, kukula kwa gawo lachiwiri la khadi la SD kumatsimikiziridwa. Ngati padakali malo osagawidwa, zofalitsa zimagawidwanso, ndipo gawo la deta limatenga malo onse aulere. Izi zimachitika kuti muchepetse kukula kwa chithunzi choyika (sdcard.img). Kuphatikiza apo, chikwatu chogwira ntchito cha postgresql chimapangidwa pakadali pano. Ichi ndichifukwa chake kuyambitsa koyamba ndi chonyamulira chatsopano kudzakhala kotalika kuposa kotsatira.

Mukalumikiza pagalimoto yakunja, panthawi yoyambira imasakasaka pagalimoto yaulere ndikuipanga kukhala ext4 yokhala ndi zilembo zakunja.

Chenjerani! Mukalumikiza drive yakunja (komanso kuyimitsa kapena kuyisintha), muyenera kupanga zosunga zobwezeretsera ndikubwezeretsa zosintha!

Chipangizo cha RODOS 5 chimagwiritsidwa ntchito poyang'anira kutentha. Wopanga amapereka code code ya momwe angagwiritsire ntchito ndi chipangizocho. Dongosolo likatsegulidwa, timer ya rodos imayamba, yomwe imagwiritsa ntchito izi kamodzi pamphindi. Kutentha kwamakono kumalembedwa ku fayilo /tmp/rodos_current_temp, pambuyo pake zabbix ikhoza kuyang'anira fayiloyi ngati sensa.

Zosungirako zosungirako zimayikidwa mu /data directory.

Mukayambitsa dongosolo ndikukonzekera kuti lizigwira ntchito, uthenga wotsatira umawonekera mu console:

System starting, please wait

Mukamaliza ntchito yokonzekera, isintha kuwonetsa adilesi ya IP:

current ip 192.168.1.32
Ready to work

Kukhazikitsa zabbix pakuwunika kutentha

Kuti muwone kutentha, ingotengani njira ziwiri:

  • polumikiza chipangizo cha RODOS ku doko la USB
  • pangani data mu zabbix

Tsegulani mawonekedwe a intaneti a zabbix:

  • Tsegulani gawo Kukonzekera β†’ Makamu
  • Dinani Zinthu zomwe zili pamzere wa seva yathu ya zabbix
  • Dinani pa Pangani chinthu

Buildroot: Kupanga firmware yolumikizira nsanja ndi zabbix-server

Lowetsani deta iyi:

  • dzina - mwakufuna kwanu (mwachitsanzo, serverRoomTemp )
  • Mtundu - wothandizira zabbix
  • Key - Rodos
  • Mtundu-nambala
  • Mayunitsi - C
  • Mbiri yosungirako nthawi β€” mbiri yosungirako nthawi. anatsala masiku 10
  • Nthawi yosungirako zamakono-nthawi yosungiramo kusintha kwa kusintha. Zatsala masiku 30
  • Ntchito yatsopano - Seva Room Temp

Ndipo dinani batani la ADD.
Buildroot: Kupanga firmware yolumikizira nsanja ndi zabbix-server

Konzani makonda kudzera pa intaneti

Mawonekedwe a intaneti amalembedwa mu PHP. Pali ntchito zazikulu:

  • onani mawonekedwe a chipangizo
  • kusintha makonda a netiweki
    Buildroot: Kupanga firmware yolumikizira nsanja ndi zabbix-server
  • kusintha mawu achinsinsi
  • kusankha zone nthawi
  • backup/restore/factory reset
  • kuthekera kolumikiza pagalimoto yakunja
  • Kusintha kwadongosolo
    Buildroot: Kupanga firmware yolumikizira nsanja ndi zabbix-server

Lowani pa intaneti ndi mawu achinsinsi otetezedwa. Tsamba loyamba - buku.

Adilesi ya mawonekedwe a Zabbix: ${ip/dns}/zabbix
Adilesi yoyang'anira: ${ip/dns}/manage
Buildroot: Kupanga firmware yolumikizira nsanja ndi zabbix-server

Kuthamanga mu qemu

qemu-system-x86_64 -smp 4 -m 4026M -thandizira-kvm -makina q35,accel=kvm -chipangizo cha 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

Lamuloli liyambitsa dongosolo lokhala ndi ma cores 4, 2048 RAM, KVM yothandizidwa, khadi la network pa bridge0 ndi ma disks awiri: imodzi yadongosolo ndi ina yakunja ya postgresql.

Zithunzi zitha kusinthidwa ndikuyendetsedwa mu Virtualbox:

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

Kenako lowetsani iwo mu virtualbox ndikulumikiza kudzera pa sata.

Pomaliza

Pochita izi, ndidakhala ndi chidwi chopanga chokonzekera kugwiritsa ntchito - chokhala ndi mawonekedwe osakongola kwambiri (sindimakonda kuwalemba), koma omwe amagwira ntchito komanso osavuta kukonza.

Kuyesera komaliza kukhazikitsa zabbix-appliance mu KVM kunasonyeza kuti sitepe iyi inali yolondola (kukhazikitsa kutatha, dongosolo silimayamba). Mwina ndikulakwitsa πŸ˜‰

Zida

https://buildroot.org/

Source: www.habr.com

Kuwonjezera ndemanga