Buildroot: Ƙirƙirar firmware na dandamali tare da zabbix-uwar garken

Buildroot: Ƙirƙirar firmware na dandamali tare da zabbix-uwar garken

Tarihin matsala

Kananan kamfanoni, a gefe guda, suna buƙatar sa ido mai kyau game da ababen more rayuwa (musamman dangane da yanayin da ake yaɗawa), a gefe guda, yana da wuyar kuɗi don siyan sabbin kayan aiki. Matsalolin uwar garken/hardware suma na kowa: sau da yawa akwai sabar hasumiya 1-3 kusa da wuraren aikin mai amfani ko a cikin ƙaramin alkuki/kabad.

Yana da sauƙi don amfani da taron da aka shirya (rarrabuwa), wanda kawai kuna buƙatar loda zuwa katin microSD kuma saka a cikin kwamfutar allo guda ɗaya (beaglebone, rasberi pi da dangin pi orange, asus tinker board). Bugu da ƙari, irin waɗannan kayan aiki ba su da tsada kuma ana iya shigar da su a ko'ina.

Tsara matsalar

A hanyoyi da yawa, aikin ya haɓaka a matsayin nau'in aikin dakin gwaje-gwaje tare da yiwuwar yin amfani da sakamakon.

An zaɓi Zabbix a matsayin tsarin sa ido saboda tsari ne mai ƙarfi, kyauta kuma ingantaccen tsari.

Batun da ke tattare da dandamalin kayan masarufi ya zama mai tsauri, sanya na'ura daban a ƙarƙashin kulawa kuma ba shine mafita mai kyau ba - ko dai yana da tsada don siyan sabbin kayan aiki, ko neman tsoffin kayan aiki + a cikin ƙananan kamfanoni ana samun matsaloli akai-akai tare da uwar garken / hardware.

Yin amfani da tsarin ginin ginin yana ba ku damar ƙirƙirar mafita na musamman waɗanda ma'aikata za su iya sarrafa su tare da ƙarancin ilimin tsarin aiki na Linux. Wannan tsarin yana da abokantaka ga masu farawa, amma a lokaci guda yana ba da damammakin gyare-gyare a hannun ƙwararren mai haɓakawa. Ya dace don magance matsalar mara tsada, amma cikakkiyar kulawar kayan aikin IT, tare da ƙarancin buƙatu don horar da ma'aikatan da ke aiki da shi.

Matakan Magani

An yanke shawarar farko don ƙirƙirar firmware don x86_64 don aiki a cikin qemu, tunda wannan shine mafita mai dacewa da sauri don gyara kuskure. Sa'an nan kuma aika shi zuwa kwamfutar hannu guda ɗaya (Ina son allon tinker asus).

An zaɓi ginin tushen azaman tsarin ginin. Da farko, ba shi da kunshin zabbix, don haka dole ne a kai shi.An sami matsaloli tare da yankin Rasha, waɗanda aka warware ta hanyar amfani da facin da suka dace (bayanin kula: a cikin sabbin sigogin ginin tushen, ba a buƙatar waɗannan facin).

Za a bayyana jigilar fakitin zabbix kanta a cikin wani labarin dabam.

Tunda duk abin da yakamata yayi aiki azaman firmware (hoton tsarin da ba zai iya canzawa + daidaitawa / fayilolin bayanan bayanai), ya zama dole a rubuta abubuwan da aka tsara naku, ayyuka da masu ƙidayar lokaci (manufa, sabis, mai ƙidayar lokaci).

An yanke shawarar raba kafofin watsa labarai zuwa sassa 2 - wani sashe tare da fayilolin tsarin da sashe tare da saitunan daidaitawa da fayilolin zabbix.

Magance matsalolin da ke da alaƙa da ma'ajin bayanai ya juya ya zama ɗan wahala. Ba na son sanya shi kai tsaye a kan kafofin watsa labarai. A lokaci guda, girman rumbun adana bayanai zai iya kai girman da ya zarce girman ramdisk mai yuwuwa. Don haka, an zaɓi hanyar sasantawa: bayanan yana kan bangare na biyu na katin SD (katin SLC na zamani suna da zagayowar zagayowar 30), amma akwai saiti wanda ke ba da damar amfani da kafofin watsa labarai na waje (misali, usb- hdd).

An aiwatar da kula da yanayin zafi ta na'urar RODOS-5. Tabbas, zaku iya amfani da Dallas 1820 kai tsaye, amma ya kasance cikin sauri da sauƙi don toshe cikin USB.

an zaɓi grub86 a matsayin bootloader don x64_2. Ya zama dole a rubuta ƙaramin tsari don ƙaddamar da shi.

Bayan yin gyara akan qemu, an tura shi zuwa allon tinker asus. Tsarin rufi na da farko an yi niyya ya zama giciye-dandamali - rarraba ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun bayanai ga kowane allo (board defconfig, bootloader, samar da hoto tare da ɓangaren tsarin) da matsakaicin daidaituwa a cikin keɓance tsarin fayil / ƙirƙirar hoto tare da bayanai. Saboda irin wannan shiri, porting ya yi sauri.

Ana ba da shawarar sosai don karanta labaran gabatarwa:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Yadda ake hadawa

Ana adana aikin akan github
Bayan cloning wurin ajiya, ana samun tsarin fayil mai zuwa:

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

buildroot-2019.05.tar.gz - tsaftataccen ginin ginin tushe
overlay shine kundin adireshi na tare da itacen waje. Anan ana adana duk abin da kuke buƙatar gina firmware ta amfani da buildroot a ciki.
README.md - bayanin aikin da littafin jagora cikin Ingilishi.
run_me.sh shine rubutun da ke shirya tsarin ginin. Yana faɗaɗa tushen ginin daga ma'ajiyar, yana haɗa abin rufewa da shi (ta hanyar injin bishiyar waje) kuma yana ba ku damar zaɓar allon manufa don taro.

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

Bayan wannan, kawai je zuwa ga buildroot-2019.05 directory kuma gudanar da yin umurnin.
Da zarar ginin ya kammala, duk sakamakon ginin zai kasance a cikin kundin fitarwa/Hotuna:

[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

Fayilolin da ake buƙata:

  • sdcard.img - Hoton kafofin watsa labarai don yin rikodi akan katin SD (ta dd ko rufus a ƙarƙashin wibdows).
  • qemu.qcow2 - Hoton mai jarida don gudana a cikin qemu.
  • external.qcow2 - hoton kafofin watsa labarai na waje don bayanan
  • Monitor-0.9-beta.tar.gz - rumbun adana bayanai don sabuntawa ta hanyar haɗin yanar gizo

Ƙarni na Jagora

Ba shi da daraja rubuta umarni iri ɗaya sau da yawa. Kuma mafi ma'ana shine rubuta shi sau ɗaya a cikin markdown, sannan a canza shi zuwa PDF don saukewa da html don haɗin yanar gizon. Wannan yana yiwuwa godiya ga kunshin pandoc.

A lokaci guda, duk waɗannan fayilolin suna buƙatar ƙirƙirar kafin a haɗa hoton tsarin; waɗancan rubutun bayan gini sun riga sun zama marasa amfani. Saboda haka, ana yin tsararraki a cikin nau'i na kunshin littattafai. Kuna iya duba abin rufewa/kunshi/manuals.

Fayil ɗin manuals.mk (wanda ke yin duk aikin)

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

tsarin tsarin

Duniyar Linux tana motsawa sosai zuwa systemd, kuma dole ne in yi shi ma.
Ɗaya daga cikin sababbin sababbin abubuwa shine kasancewar masu ƙidayar lokaci. Gabaɗaya, ana rubuta wani labarin dabam game da su (kuma ba game da su kaɗai ba), amma zan gaya muku a taƙaice.

Akwai ayyuka da dole ne a yi lokaci-lokaci. Ina buƙatar gudu logrotate don share logtpd da php-fpm. Abin da aka saba zai zama rubuta umarni a cikin cron, amma na yanke shawarar amfani da tsarin lokaci monotonic. Don haka logrotate yana gudana a cikin tazara mai tsauri.

Tabbas, yana yiwuwa a ƙirƙiri masu ƙidayar lokaci waɗanda ke ƙone wasu ranaku, amma ban buƙaci wannan ba.
Misalin lokaci:

  • Fayil mai ƙidayar lokaci
    
    [Unit]
    Description=RODOS temp daemon timer

[Lokaci] OnBootSec=1min
OnUnitActiveSec=1min

[Shigar] WantedBy = masu lokaci.target

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

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

Allolin tallafi

Asus tinker Board shine babban allon wanda komai yakamata yayi aiki. An zaɓa a matsayin mai tsada kuma mai ƙarfi sosai.

Baƙar fata Beaglebone shine allo na farko wanda aka gwada aiki akansa (a lokacin zaɓin allo mai ƙarfi).

Qemu x86_64 - ana amfani dashi don haɓaka haɓakawa.

Yadda yake aiki

A lokacin farawa, maido da saitunan matakai biyu yana faruwa:

  • gudanar da rubutun settings_restore (ta hanyar sabis). Yana dawo da saitunan tsarin asali - yankin lokaci, yanki, saitunan cibiyar sadarwa, da sauransu.
  • gudanar da rubutun shirya (ta hanyar sabis) - a nan zabbix kuma an shirya bayanan bayanai, an fitar da IP zuwa na'ura mai kwakwalwa.

Lokacin da kuka fara farawa, ana ƙididdige girman sashi na biyu na katin SD. Idan har yanzu akwai sararin da ba a keɓe ba, ana raba kafofin watsa labarai, kuma sashin bayanan yana ɗaukar duk sarari kyauta. Anyi wannan don rage girman hoton shigarwa (sdcard.img). Bugu da ƙari, an ƙirƙiri littafin aiki na postgresql a wannan lokacin. Abin da ya sa ƙaddamar da farko tare da sabon mai ɗaukar kaya zai fi tsayi fiye da na gaba.

Lokacin haɗa na'urar waje, a lokacin farawa yana neman faifan kyauta kuma ya tsara shi zuwa ext4 tare da alamar waje.

Hankali! Lokacin haɗa na'urar waje (kamar cire haɗin ko maye gurbinsa), kuna buƙatar yin wariyar ajiya kuma dawo da saitunan!

Ana amfani da na'urar RODOS 5 don lura da yanayin zafi.Maƙerin yana ba da lambar tushe na amfanin sa don aiki tare da na'urar. Lokacin da aka kunna tsarin, lokacin rodos yana farawa, wanda ke gudanar da wannan kayan aiki sau ɗaya a minti daya. Ana rubuta zafin jiki na yanzu zuwa fayil /tmp/rodos_current_temp, bayan haka zabbix zai iya saka idanu akan wannan fayil ɗin azaman firikwensin.

Ana ɗora kafofin watsa labaru na daidaitawa a cikin kundin bayanai.

Lokacin fara tsarin da shirya shi don aiki, saƙo mai zuwa yana bayyana a cikin na'ura wasan bidiyo:

System starting, please wait

Bayan kammala aikin shiri, zai canza zuwa nuna adireshin IP:

current ip 192.168.1.32
Ready to work

Saita zabbix don kula da yanayin zafi

Don saka idanu zafin jiki, kawai ɗauki matakai 2:

  • haɗa na'urar RODOS zuwa tashar USB
  • ƙirƙira kayan bayanai a cikin zabbix

Bude mahaɗin yanar gizo na zabbix:

  • Bude sashin Kanfigareshan → Runduna
  • Danna Abubuwan da ke cikin layin uwar garken zabbix ɗin mu
  • Danna kan Ƙirƙiri abu

Buildroot: Ƙirƙirar firmware na dandamali tare da zabbix-uwar garken

Shigar da bayanan masu zuwa:

  • suna - bisa ga ra'ayin ku (misali, serverRoomTemp)
  • Nau'in - zabbix wakili
  • Maɓalli - Rodos
  • Nau'in-lambobi
  • Raka'a - C
  • Lokacin ajiyar tarihi - lokacin ajiyar tarihi. saura kwanaki 10
  • Lokacin ajiya na Trend-lokacin ajiya don sauye-sauye na canje-canje. Hagu kwanaki 30
  • Sabuwar aikace-aikace - uwar garken Room Temp

Kuma danna maɓallin ADD.
Buildroot: Ƙirƙirar firmware na dandamali tare da zabbix-uwar garken

Sarrafa saituna ta hanyar haɗin yanar gizo

An rubuta haɗin yanar gizon a cikin PHP. Akwai manyan ayyuka:

  • duba halin na'urar
  • canza saitunan cibiyar sadarwa
    Buildroot: Ƙirƙirar firmware na dandamali tare da zabbix-uwar garken
  • canza kalmar sirrin mai amfani
  • zaɓi yankin lokaci
  • madadin/mayarwa/sake saitin masana'anta
  • iya haɗa abin tuƙi na waje
  • Sabunta tsarin
    Buildroot: Ƙirƙirar firmware na dandamali tare da zabbix-uwar garken

Shiga cikin mahallin yanar gizon yana da kariya ta kalmar sirri. Shafin farawa - manual.

Zabbix interface address: ${ip/dns}/zabbix
Adireshin dubawar gudanarwa: ${ip/dns}/manage
Buildroot: Ƙirƙirar firmware na dandamali tare da zabbix-uwar garken

Gudu a cikin 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 -na'urar virtio-scsi-pci,id= scsi0 -drive fayil = fitarwa / hotuna / qemu.qcow2, tsari = qcow2, aio = zaren -device virtio-scsi-pci, id = scsi0 -drive fayil = fitarwa / hotuna / waje.qcow2, tsari = qcow2, aio = zaren

Wannan umarni zai fara tsarin tare da 4 cores, 2048 RAM, KVM kunna, katin cibiyar sadarwa a kan bridge0 da diski guda biyu: ɗaya don tsarin kuma ɗaya na waje don postgresql.

Ana iya canza hotuna da aiki a cikin Akwatin Virtual:

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

Sannan shigo da su cikin akwatin kama-da-wane kuma ku haɗa ta hanyar sata.

ƙarshe

A cikin tsari, na zama mai sha'awar yin samfurin da aka shirya don amfani - tare da ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙaya (ba na son rubuta su), amma wanda ke aiki kuma yana da sauƙin daidaitawa.

Ƙoƙarin ƙarshe na shigar zabbix-appliance a cikin KVM ya nuna cewa wannan matakin daidai ne (bayan an gama shigarwa, tsarin baya farawa). Watakila ina yin wani abu ba daidai ba 😉

Abubuwa

https://buildroot.org/

source: www.habr.com

Add a comment