Buildroot: Ho theha firmware ea cross-platform ka zabbix-server

Buildroot: Ho theha firmware ea cross-platform ka zabbix-server

Histori ea bothata

Likhamphani tse nyane, ka lehlakoreng le leng, li hloka tlhahlobo ea boleng bo holimo ba lits'ebetso tsa bona (haholo-holo ka lebaka la ho ata ha virtualization), ka lehlakoreng le leng, ho thata ho lichelete ho bona ho reka lisebelisoa tse ncha. Mathata a li-server / hardware a boetse a tloaelehile: hangata ho na le li-server tsa 1-3 tse haufi le li-workstations tsa basebelisi kapa sebakeng se senyenyane sa niche / closet.

Ho bonolo ho sebelisa kopano e lokiselitsoeng (kabo), eo u hlokang feela ho e kenya kareteng ea microSD ebe u e kenya ka har'a komporo e tloaelehileng ea boto e le 'ngoe (beaglebone, raspberry pi le malapa a orange pi, asus tinker board). Ho phaella moo, thepa e joalo ha e theko e tlaase 'me e ka kenngoa kae kapa kae.

Mokhoa oa bothata

Ka litsela tse ngata, morero o ile oa ntlafatsoa e le mofuta oa mosebetsi oa laboratori o nang le monyetla oa ho sebelisa liphetho.

Zabbix e khethiloe e le mokhoa oa ho beha leihlo hobane ke tsamaiso e matla, e sa lefelloeng le e ngotsoeng hantle.

Ho beha mochine o arohaneng tlas'a tlhokomelo le hona ha se tharollo e ntle haholo - ebang ke theko e boima ho reka lisebelisoa tse ncha, kapa ho batla lisebelisoa tsa khale + lik'hamphaning tse nyenyane ho na le mathata a mangata ka seva / hardware.

Ho sebelisa sistimi ea kaho ea li-buildroot ho u fa monyetla oa ho etsa litharollo tse ikhethileng tse ka sebetsoang ke basebetsi ba nang le tsebo e fokolang ea lits'ebetso tsa Linux. Sistimi ena e na le botsoalle ho ba qalang, empa ka nako e ts'oanang e fana ka menyetla e mengata ea ho itlhophisa matsohong a moqapi ea nang le boiphihlelo. E nepahetse bakeng sa ho rarolla bothata ba ho beha leihlo ts'ebetso e theko e tlaase, empa e sebetsa ka botlalo ea lisebelisoa tsa IT, e nang le litlhoko tse fokolang bakeng sa koetliso ea basebetsi ba e sebetsang.

Mehato ea tharollo

Ho ile ha etsoa qeto ea hore qalong ho thehoe firmware bakeng sa x86_64 ho sebetsa qemu, kaha ena ke tharollo e bonolo le e potlakileng ea ho lokisa liphoso. Ebe o e fetisetsa khomphuteng e nang le letsoho le le leng (ke ratile boto ea asus tinker).

buildroot e khethiloe e le sistimi ea kaho. Qalong, ha e na sephutheloana sa zabbix, kahoo e ne e tlameha ho kenngoa.

Ho tsamaisa sephutheloana sa zabbix ka boeona ho tla hlalosoa sehloohong se arohaneng.

Kaha ntho e 'ngoe le e' ngoe e lokela ho sebetsa e le firmware (setšoantšo se sa fetoheng sa tsamaiso + lifaele tsa tlhophiso / database), ho ne ho hlokahala hore u ngole lipakane tsa hau tsa tsamaiso, lits'ebeletso le nako (sepheo, tšebeletso, nako).

Ho ile ha etsoa qeto ea ho arola mecha ea litaba ka likarolo tse 2 - karolo e nang le lifaele tsa sistimi le karolo e nang le li-configs tse fetohang le lifaele tsa database tsa zabbix.

Ho rarolla mathata a amanang le database ho ile ha ba thata haholoanyane. Ke ne ke sa batle ho e beha ka ho toba mecheng ea litaba. Ka nako e ts'oanang, boholo ba database bo ka fihla boholo bo fetang boholo ba ramdisk e ka khonehang. Ka hona, ho ile ha khethoa tharollo ea ho sekisetsa: database e teng karolong ea bobeli ea karete ea SD (likarete tsa morao-rao tsa SLC li na le li-cycle tsa ho ngola tse ka bang 30), empa ho na le sebaka se lumellang tšebeliso ea mecha ea litaba ea ka ntle (mohlala, usb- hdd).

Tlhokomelo ea mocheso e ile ea sebelisoa ka sesebelisoa sa RODOS-5. Ehlile, o ka sebelisa Dallas 1820 ka kotloloho, empa ho ne ho potlakile ebile ho le bonolo ho hokela USB.

grub86 e khethiloe e le bootloader ea x64_2. Ho ne ho hlokahala ho ngola config e fokolang ho e qala.

Kamora ho lokisa qemu, e ile ea fetisetsoa ho boto ea asus tinker. Sebopeho sa sekoahelo sa ka se ne se reretsoe ho ba sethaleng sa sefapano - ho fana ka li-configs tse khethehileng ho boto e 'ngoe le e' ngoe (board defconfig, bootloader, ho hlahisa setšoantšo se nang le karohano ea tsamaiso) le ho lumellana ho hoholo ha ho etsoa tsamaiso ea faele / ho theha setšoantšo ka data. Ka lebaka la tokisetso e joalo, ho tsamaisa thepa ho ile ha tsamaea kapele.

Ho khothaletsoa haholo ho bala lingoliloeng tsa selelekela:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Mokhoa oa ho bokana

Morero o bolokiloe ho github
Kamora ho kopanya polokelo, sebopeho se latelang sa faele se fumanoa:

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

buildroot-2019.05.tar.gz - polokelo ea li-buildroot e hloekileng
overlay ke directory ea ka e nang le sefate sa kantle. Mona ke moo ntho e 'ngoe le e' ngoe eo ue hlokang ho haha ​​​​firmware e sebelisang buildroot e bolokiloeng ho eona.
README.md - tlhaloso ea morero le buka ea tataiso ka Senyesemane.
run_me.sh ke sengoloa se lokisang sistimi ea kaho. E holisa li-buildroot ho tsoa polokelong, e hokela sekoaelo ho eona (ka mochini oa sefate sa kantle) mme e o lumella ho khetha boto eo u batlang ho e kopanya.

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

Ka mor'a sena, e-ea feela bukeng ea buildroot-2019.05 'me u tsamaise make command.
Hang ha moaho o phethiloe, liphetho tsohle tsa moaho li tla ba bukeng ea tlhahiso / litšoantšo:

[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

Lifaele tse hlokahalang:

  • sdcard.img - setšoantšo sa mecha ea phatlalatso bakeng sa ho rekota kareteng ea SD (ka dd kapa rufus tlas'a li-wibdows).
  • qemu.qcow2 - media image to run in qemu.
  • external.qcow2 - setšoantšo sa mecha ea phatlalatso ea kantle bakeng sa database
  • monitor-0.9-beta.tar.gz - polokelo bakeng sa ntlafatso ka sehokelo sa webo

Moloko oa Batataisi

Ha hoa lokela ho ngola litaelo tse tšoanang ka makhetlo a 'maloa. 'Me ntho e utloahalang ka ho fetesisa ke ho e ngola hang ka har'a markdown, ebe u e fetolela ho PDF bakeng sa ho e jarolla le html bakeng sa sebopeho sa webo. Sena se ka khoneha ka lebaka la sephutheloana sa pandoc.

Ka nako e ts'oanang, lifaele tsena kaofela li hloka ho hlahisoa pele setšoantšo sa sistimi se bokelloa; lingoloa tseo tsa post-build li se li se na thuso. Ka hona, moloko o etsoa ka mokhoa oa sephutheloana sa libuka. U ka sheba holim'a likoahelo / sephutheloana / libuka.

The manuals.mk file (e etsang mosebetsi oohle)

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

Lefatše la Linux le ntse le tsoela pele ho ea ho systemd, 'me le 'na ke ile ka tlameha ho e etsa.
E 'ngoe ea lintlafatso tse monate ke ho ba teng ha li-timers. Ka kakaretso, sehlooho se arohaneng se ngotsoe ka bona (mme eseng feela ka bona), empa ke tla u bolella ka bokhutšoanyane.

Ho na le lits'ebetso tse lokelang ho etsoa nako le nako. Ke ne ke hloka ho matha logrotate ho hlakola li-logs tsa lighttpd le php-fpm. Ntho e tloaelehileng e ka ba ho ngola litaelo ka cron, empa ke nkile qeto ea ho sebelisa systemd monotonic timer. Kahoo logrotate e matha ka nako e thata.

Ehlile, hoa khoneha ho theha li-timers tse tukang ka matsatsi a itseng, empa ke ne ke sa hloke sena.
Mohlala oa nako:

  • Faele ea nako
    
    [Unit]
    Description=RODOS temp daemon timer

[Timer] OnBootSec=1min
OnUnitActiveSec=1min

[Kenya] WantedBy=timer.target

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

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

Liboto tse tšehelitsoeng

Asus tinker board ke boto e kholo eo ntho e 'ngoe le e' ngoe e lokelang ho sebetsa ho eona. E khethiloe e le e theko e tlaase le e matla haholo.

Beaglebone black ke boto ea pele eo ts'ebetso e ileng ea lekoa ho eona (nakong ea khetho ea boto e matla haholoanyane).

Qemu x86_64 - e sebelisoa bakeng sa nts'etsopele ea debugging.

E sebetsa joang

Ha ho qala, ho tsosolosoa ha mekhahlelo e 'meli ho etsahala:

  • ho tsamaisa "setting_restore script" (ka ts'ebeletso). E khutlisetsa litlhophiso tsa mantlha tsa sistimi - sebaka sa nako, sebaka, litlhophiso tsa marang-rang, jj.
  • ho tsamaisa script (ka tšebeletso) - mona zabbix le database li lokiselitsoe, IP e hlahisoa ho console.

Ha u qala ho e qala, boholo ba karolo ea bobeli ea karete ea SD bo khethoa. Haeba ho ntse ho e-na le sebaka se sa abeloang, mecha ea litaba e aroloa hape, 'me karolo ea data e nka sebaka sohle sa mahala. Sena se etsoa e le ho fokotsa boholo ba setšoantšo sa ho kenya (sdcard.img). Ho feta moo, bukana ea ho sebetsa ea postgresql e thehiloe ntlheng ena. Ke ka lebaka leo tlhahiso ea pele e nang le mochine o mocha e tla ba nako e telele ho feta e latelang.

Ha o hokela drive ea kantle, motsotsong oa ho qala e batla drive ea mahala ebe e e etsa ext4 ka label ea kantle.

Ela hloko! Ha o hokela koloi e kantle (hammoho le ho e khaola kapa ho e nkela sebaka), o hloka ho etsa bekapo le ho khutlisetsa litlhophiso!

Sesebelisoa sa RODOS 5 se sebelisetsoa ho hlahloba mocheso. Moetsi o fana ka khoutu ea mohloli oa tšebeliso ea eona bakeng sa ho sebetsa le sesebelisoa. Ha sistimi e buloa, nako ea rodos e qala, e tsamaisang ts'ebeliso ena hang ka motsotso. Mocheso oa hona joale o ngotsoe ho file /tmp/rodos_current_temp, ka mor'a moo zabbix e ka shebella faele ena e le sensor.

Mecha ea litaba ea polokelo ea tlhophiso e kentsoe bukeng ea / data.

Ha o qala sistimi le ho e lokisa bakeng sa ts'ebetso, molaetsa o latelang o hlaha ho console:

System starting, please wait

Kamora ho qeta mosebetsi oa boitokiso, e tla fetohela ho bonts'a aterese ea IP:

current ip 192.168.1.32
Ready to work

Ho theha zabbix bakeng sa ho hlahloba mocheso

Ho shebella mocheso, nka mehato e 2 feela:

  • hokela sesebelisoa sa RODOS koung ea USB
  • theha lintlha tsa data ho zabbix

Bula sebopeho sa webo sa zabbix:

  • Bula karolo ea Configuration → Baamoheli
  • Tobetsa ho Lintho tse moleng oa seva sa rona sa zabbix
  • Tobetsa ho Create ntho

Buildroot: Ho theha firmware ea cross-platform ka zabbix-server

Kenya lintlha tse latelang:

  • lebitso - ka boikhethelo ba hau (mohlala, serverRoomTemp )
  • Mofuta - moemeli oa zabbix
  • Senotlolo - Rodos
  • Mofuta oa linomoro
  • Lihlopha - C
  • Nako ea polokelo ea nalane - nako ea polokelo ea nalane. e setseng matsatsi a 10
  • Nako ea ho boloka mokhoa oa ho boloka - nako ea polokelo bakeng sa matla a liphetoho. Ho tloha matsatsi a 30
  • Sesebelisoa se secha - Seva ea Room Temp

Ebe o tobetsa konopo ea ADD.
Buildroot: Ho theha firmware ea cross-platform ka zabbix-server

Laola litlhophiso ka sebopeho sa tepo

Sehokelo sa marang-rang se ngotsoe ka PHP. Ho na le mesebetsi e ka sehloohong:

  • sheba boemo ba sesebelisoa
  • ho fetola li-setting tsa marang-rang
    Buildroot: Ho theha firmware ea cross-platform ka zabbix-server
  • ho fetola password ea mosebelisi
  • khetho ea sebaka sa nako
  • backup/restore/factory reset
  • bokhoni ba ho hokela koloi e kantle
  • Ntjhafatso ea Sisteme
    Buildroot: Ho theha firmware ea cross-platform ka zabbix-server

Ho kena ho web interface ho sirelelitsoe ka password. Leqephe la ho qala - bukana ea tataiso.

Aterese ea sebopeho sa Zabbix: ${ip/dns}/zabbix
Aterese ea tsamaiso: ${ip/dns}/manage
Buildroot: Ho theha firmware ea cross-platform ka zabbix-server

Ho matha ka qemu

qemu-system-x86_64 -smp 4 -m 4026M - nolofalletsa-kvm -mochine q35,accel=kvm -device 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

Taelo ena e tla qala tsamaiso e nang le li-cores tse 4, 2048 RAM, KVM e nolofalitsoeng, karete ea marang-rang ho bridge0 le li-disk tse peli: e 'ngoe bakeng sa tsamaiso le e' ngoe ea ka ntle bakeng sa postgresql.

Litšoantšo li ka fetoloa 'me tsa tsamaisoa ho Virtualbox:

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

Ebe u li kenya ka har'a li-virtualbox ebe u li hokela ka sata.

fihlela qeto e

Ts'ebetsong, ke ile ka thahasella ho etsa sehlahisoa se loketseng ho sebelisoa - se nang le sebopeho se seng se setle haholo (ha ke rate ho se ngola), empa se sebetsang le se bonolo ho se hlophisa.

Boiteko ba ho qetela ba ho kenya zabbix-appliance ho KVM bo bontšitse hore mohato ona o ne o nepahetse (ka mor'a hore ho kenngoe ho phethoe, tsamaiso ha e qale). Mohlomong ke etsa phoso 😉

Lisebelisoa

https://buildroot.org/

Source: www.habr.com

Eketsa ka tlhaloso