Buildroot: Firmware tras-ardán a chruthú le zabbix-server

Buildroot: Firmware tras-ardán a chruthú le zabbix-server

Stair fadhbanna

Ní mór do chuideachtaí beaga, ar thaobh amháin, monatóireacht ardcháilíochta ar a mbonneagar (go háirithe i bhfianaise fíorúlú forleathan), ar an láimh eile, tá sé deacair dóibh trealamh nua a cheannach ó thaobh airgeadais de. Bíonn fadhbanna freastalaí/crua-earraí coitianta freisin: is minic a bhíonn idir 1-3 fhreastalaí túir in aice le stáisiúin oibre úsáideoirí nó i nideoige/clóiséad beag.

Tá sé níos éasca tionól réamhdhéanta (dáileadh) a úsáid nach gá duit ach é a uaslódáil chuig cárta microSD agus é a chur isteach i ríomhaire aonchláir coitianta (beaglebone, sú craobh pi agus teaghlaigh pi oráiste, bord tinker asus). Ina theannta sin, tá trealamh den sórt sin saor agus is féidir a shuiteáil in áit ar bith.

An fhadhb a fhoirmiú

Ar go leor bealaí, d'fhorbair an tionscadal mar chineál oibre saotharlainne leis an bhféidearthacht na torthaí a chur i bhfeidhm.

Roghnaíodh Zabbix mar chóras monatóireachta toisc gur córas cumhachtach, saor in aisce agus dea-dhoiciméadaithe é.

Ní réiteach an-mhaith freisin é meaisín ar leith a chur faoi mhonatóireacht - tá sé costasach trealamh nua a cheannach, nó seantrealamh a chuardach + i gcomhlachtaí beaga bíonn fadhbanna go minic le freastalaí/ crua-earraí.

Trí úsáid a bhaint as an gcóras tógála fréimhe is féidir leat réitigh speisialaithe a chruthú ar féidir le pearsanra a bhfuil eolas íosta acu ar chórais oibriúcháin Linux a oibriú. Tá an córas seo cairdiúil do thosaitheoirí, ach ag an am céanna cuireann sé go leor deiseanna saincheaptha ar fáil i lámha forbróir a bhfuil taithí acu. Tá sé foirfe chun an fhadhb a bhaineann le monatóireacht neamhchostasach, ach lánfheidhmiúil ar bhonneagar TF a réiteach, le riachtanais íosta maidir le hoiliúint an phearsanra a oibríonn é.

Céimeanna réitigh

Socraíodh ar dtús firmware a chruthú le haghaidh x86_64 le rith i qemu, toisc gur réiteach áisiúil agus tapa é seo le haghaidh dífhabhtaithe. Ansin port é chuig ríomhaire aonchláir láimhe (thaitin an bord tinker liom).

Roghnaíodh buildroot mar chóras tógála. Ar dtús, níl an pacáiste zabbix ann, agus mar sin b'éigean é a aistriú.Bhí fadhbanna ann le locale na Rúise, a réitíodh trí na paistí cuí a chur i bhfeidhm (nóta: i leaganacha níos nuaí de buildroot, níl gá leis na paistí seo a thuilleadh).

Déanfar cur síos ar an bpacáiste zabbix féin a iompar in alt ar leith.

Ós rud é gur chóir go n-oibreodh gach rud mar fhirmware (íomhá chórais do-athraithe + cumraíocht in-aisghabhála / comhaid bunachar sonraí), b'éigean do chuid spriocanna córasacha, seirbhísí agus amadóirí féin a scríobh (sprioc, seirbhís, lasc ama).

Socraíodh na meáin a roinnt ina 2 chuid - rannóg le comhaid chórais agus rannóg le comhaid inathraithe configs agus bunachar sonraí zabbix.

Bhí sé beagán níos deacra fadhbanna a bhaineann leis an mbunachar sonraí a réiteach. Ní raibh mé ag iarraidh é a chur go díreach ar na meáin. Ag an am céanna, is féidir le méid an bhunachair sonraí méid a sháraíonn méid diosca ram féideartha a bhaint amach. Dá bhrí sin, roghnaíodh réiteach comhréitigh: tá an bunachar sonraí suite ar an dara deighilt den chárta SD (tá suas le 30 timthriall scríobh ag cártaí SLC nua-aimseartha), ach tá socrú ann a ligeann do na meáin sheachtracha a úsáid (mar shampla, usb- hdd).

Cuireadh monatóireacht teochta i bhfeidhm tríd an bhfeiste RODOS-5. Ar ndóigh, is féidir leat an Dallas 1820 a úsáid go díreach, ach bhí sé níos tapúla agus níos éasca USB a phlugáil isteach.

Roghnaíodh grub86 mar an tosaitheoir do x64_2. Bhí sé riachtanach cumraíocht íosta a scríobh chun é a sheoladh.

Tar éis dífhabhtaithe a dhéanamh ar qemu, aistríodh é chuig an mbord tinker asus. Bhí sé i gceist ar dtús go mbeadh struchtúr mo fhorleagain tras-ardán - ag leithdháileadh cumraíochtaí a bhaineann go sonrach le gach bord (defconfig boird, lódóir tosaithe, ag giniúint íomhá le críochdheighilt córais) agus aonfhoirmeacht uasta maidir leis an gcóras comhad a shaincheapadh / íomhá a chruthú le sonraí. Mar gheall ar ullmhú den sórt sin, chuaigh an t-aistriú go tapa.

Moltar go mór na hailt tosaigh a léamh:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Conas teacht le chéile

Stóráiltear an tionscadal ar github
Tar éis an stór a chlónáil, faightear an struchtúr comhaid seo a leanas:

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

buildroot-2019.05.tar.gz - cartlann glan buildroot
forleagan is ea mo chomhadlann le crann seachtrach. Seo é an áit a stóráiltear gach rud atá uait chun an firmware a thógáil ag baint úsáide as buildroot.
README.md - cur síos ar an tionscadal agus lámhleabhar i mBéarla.
Is script é run_me.sh a ullmhaíonn an córas tógála. Leathnaíonn sé an fhréamh-thógáil ón gcartlann, ceangail forleagan di (trí mheicníocht an chrainn sheachtraigh) agus ligeann duit an spriocchlár a roghnú le haghaidh cóimeála

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

Tar éis seo, téigh go dtí an eolaire buildroot-2019.05 agus rith an t-ordú déan.
Nuair a bheidh an tógáil críochnaithe, beidh na torthaí tógála ar fad san eolaire aschuir/íomhánna:

[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

Comhaid riachtanacha:

  • sdcard.img - íomhá meáin le taifeadadh ar chárta SD (trí dd nó rufus faoi baintreacha).
  • qemu.qcow2 - íomhá meán le rith i qemu.
  • external.qcow2 - íomhá meán seachtrach don bhunachar sonraí
  • monitor-0.9-beta.tar.gz - cartlann le nuashonrú tríd an gcomhéadan gréasáin

Giniúint Treoraithe

Ní fiú na treoracha céanna a scríobh arís agus arís eile. Agus is é an rud is loighciúil ná é a scríobh uair amháin i marcdown, agus ansin é a thiontú go PDF le híoslódáil agus html don chomhéadan gréasáin. Is féidir é seo a bhuíochas leis an bpacáiste pandoc.

Ag an am céanna, ní mór na comhaid seo go léir a ghiniúint sula gcuirtear íomhá an chórais le chéile; tá na scripteanna iar-thógála sin gan úsáid cheana féin. Dá bhrí sin, déantar an ghiniúint i bhfoirm pacáiste lámhleabhair. Is féidir leat breathnú ar fhorleagan/pacáiste/lámhleabhair.

An comhad manuals.mk (a dhéanann an obair ar fad)

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

córas

Tá an domhan Linux ag bogadh go gníomhach go systemd, agus bhí orm é a dhéanamh freisin.
Ceann de na nuálaíochtaí taitneamhacha is ea láithreacht na n-amadóirí. Go ginearálta, tá alt ar leith á scríobh fúthu (agus ní hamháin fúthu), ach inseoidh mé duit go hachomair.

Tá gníomhartha ann a chaithfear a dhéanamh go tréimhsiúil. Bhí orm logrotate a rith chun na logaí lighttpd agus php-fpm a ghlanadh. Is é an rud is gnách ná na horduithe a scríobh i cron, ach chinn mé an t-amadóir monotonach sistéamach a úsáid. Mar sin ritheann logrotate ag eatramh ama dian.

Ar ndóigh, is féidir timers a chruthú a chuireann tine ar dhátaí áirithe, ach ní raibh sé seo ag teastáil uaim.
Sampla lasc ama:

  • Comhad Amadóir
    
    [Unit]
    Description=RODOS temp daemon timer

[Uamadóir] OnBootSec=1 nóiméad
OnUnitActiveSec=1 nóiméad

[Suiteáil] WantedBy=timers.target

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

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

Boird tacaithe

Is é bord tinker Asus an príomh-bhord ar ar cheart do gach rud a bheith ag obair. Roghnaithe mar neamhchostasach agus an-chumhachtach.

Is é Beaglebone dubh an chéad bhord ar a ndearnadh tástáil ar oibríocht (le linn bord níos cumhachtaí a roghnú).

Qemu x86_64 - a úsáidtear le haghaidh forbairt dífhabhtaithe.

Conas a oibríonn sé

Ag am tosaithe, tarlaíonn athchóiriú dhá chéim ar shocruithe:

  • ag rith an script settings_restore (tríd an tseirbhís). Athchóiríonn sé socruithe an chórais bhunúsach - crios ama, locale, socruithe líonra, etc.
  • ag rith an script ullmhú (tríd an tseirbhís) - anseo zabbix agus an bunachar sonraí a ullmhú, tá an IP aschur chuig an consól.

Nuair a thosaíonn tú ar dtús é, déantar méid an dara deighilt den chárta SD a chinneadh. Má tá spás neamh-leithdháilte fós ann, déantar na meáin a ath-roinnt, agus tógann an rannóg sonraí suas an spás saor in aisce ar fad. Déantar é seo chun méid an íomhá suiteála a laghdú (sdcard.img). Ina theannta sin, cruthaítear eolaire oibre postgresql ag an bpointe seo. Sin é an fáth go mbeidh an chéad seoladh le hiompróir nua níos faide ná na cinn ina dhiaidh sin.

Nuair a bhíonn tiomántán seachtrach á nascadh, déanann sé cuardach ar thiomántán saor in aisce agus é ag formáidiú ext4 leis an lipéad seachtrach.

Aird! Agus tiomáint seachtrach á nascadh (chomh maith le dínascadh nó athsholáthar), ní mór duit cúltaca a dhéanamh agus na socruithe a athchóiriú!

Úsáidtear gléas RODOS 5 le haghaidh monatóireachta teochta. Soláthraíonn an monaróir cód foinse a fóntais chun oibriú leis an bhfeiste. Nuair a bhíonn an córas casta air, tosaíonn an t-amadóir rodos, a ritheann an fóntais seo uair sa nóiméad. Scríobhtar an teocht reatha chuig an gcomhad /tmp/rodos_current_temp, agus ina dhiaidh sin is féidir le zabbix monatóireacht a dhéanamh ar an gcomhad seo mar braiteoir.

Tá na meáin stórála cumraíochta suite san eolaire /sonraí.

Agus an córas á thosú agus á ullmhú le haghaidh oibriú, tá an teachtaireacht seo a leanas le feiceáil sa chonsól:

System starting, please wait

Tar éis an obair ullmhúcháin a chríochnú, athrófar é go dtí an seoladh IP a thaispeáint:

current ip 192.168.1.32
Ready to work

Socrú zabbix le haghaidh monatóireachta teochta

Chun monatóireacht a dhéanamh ar an teocht, ní gá ach 2 chéim a ghlacadh:

  • ceangail an gléas RODOS leis an gcalafort USB
  • cruthaigh mír sonraí i zabbix

Oscail an comhéadan gréasáin zabbix:

  • Oscail an chuid Cumraíocht → Óstáin
  • Cliceáil ar Míreanna i líne ár bhfreastalaí zabbix
  • Cliceáil ar Cruthaigh mír

Buildroot: Firmware tras-ardán a chruthú le zabbix-server

Cuir isteach na sonraí seo a leanas:

  • ainm - de do rogha féin (mar shampla, serverRoomTemp )
  • Cineál - gníomhaire zabbix
  • Eochair - Rodos
  • Cineál-uimhriúil
  • Aonaid - C
  • Tréimhse stórála staire — tréimhse stórála staire. fhág 10 lá
  • Tréimhse stórála treochta - tréimhse stórála do dhinimic na n-athruithe. 30 lá fágtha
  • Feidhmchlár nua - Teocht Seomra an fhreastalaí

Agus brúigh an cnaipe ADD.
Buildroot: Firmware tras-ardán a chruthú le zabbix-server

Bainistigh socruithe trí chomhéadan gréasáin

Tá an comhéadan gréasáin scríofa i PHP. Tá príomhfheidhmeanna:

  • féach ar stádas an ghléis
  • socruithe líonra a athrú
    Buildroot: Firmware tras-ardán a chruthú le zabbix-server
  • pasfhocal úsáideora a athrú
  • roghnú crios ama
  • cúltaca / athchóiriú / athshocrú mhonarcha
  • cumas tiomáint seachtrach a nascadh
  • Nuashonrú an chórais
    Buildroot: Firmware tras-ardán a chruthú le zabbix-server

Tá logáil isteach ar an gcomhéadan gréasáin cosanta ag pasfhocal. Leathanach tosaigh - lámhleabhar.

Seoladh comhéadan Zabbix: ${ip/dns}/zabbix
Seoladh an chomhéadain bhainistíochta: ${ip/dns}/manage
Buildroot: Firmware tras-ardán a chruthú le zabbix-server

Ag rith i qemu

qemu-system-x86_64 -smp 4 -m 4026M -enable-kvm -machine q35,accel=kvm -device intel-iommu -cpu óstach -net nic -net droichead,br = droichead0 -device virtio-scsi-pci,id= scsi0 -drive file=aschur/images/qemu.qcow2,format=qcow2,aio=snáitheanna -device virtio-scsi-pci,id=scsi0 -drive file=aschur/images/external.qcow2,format=qcow2,aio=snáitheanna

Tosóidh an t-ordú seo córas le 4 cores, 2048 RAM, cumasaithe KVM, cárta líonra ar bridge0 agus dhá dhiosca: ceann amháin don chóras agus ceann seachtrach le haghaidh postgresql.

Is féidir íomhánna a thiontú agus a rith i Virtualbox:

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

Ansin iad a allmhairiú isteach sa bhosca fíorúil agus ceangal trí sata.

Conclúid

Sa phróiseas, chuir mé spéis i dtáirge réidh le húsáid a dhéanamh - le comhéadan nach bhfuil an-álainn (ní maith liom iad a scríobh), ach ceann a oibríonn agus atá éasca a chumrú.

Léirigh an iarracht dheireanach chun zabbix-appliance a shuiteáil i KVM go raibh an chéim seo ceart (tar éis an tsuiteáil a chríochnú, ní thosaíonn an córas). B'fhéidir go bhfuil mé ag déanamh rud éigin mícheart 😉

Ábhair

https://buildroot.org/

Foinse: will.com

Add a comment