Buildroot: A’ cruthachadh firmware tar-àrd-ùrlar le zabbix-server

Buildroot: A’ cruthachadh firmware tar-àrd-ùrlar le zabbix-server

Eachdraidh duilgheadas

Feumaidh companaidhean beaga, air an aon làimh, sgrùdadh àrd-inbhe air a ’bhun-structar aca (gu sònraichte mar thoradh air virtualization farsaing), air an làimh eile, tha e duilich a thaobh ionmhais dhaibh uidheamachd ùr a cheannach. Tha duilgheadasan frithealaiche/bathar-cruaidh cuideachd cumanta: gu tric tha 1-3 frithealaichean tùir ri taobh ionadan-obrach luchd-cleachdaidh no ann an àite beag/closet.

Tha e nas fhasa co-chruinneachadh deiseil (sgaoileadh) a chleachdadh, a dh’ fheumas tu a luchdachadh suas gu cairt microSD agus a chuir a-steach do choimpiutair aon-bhòrd cumanta (beaglebone, raspberry pi agus orains pi teaghlaichean, asus tinker board). A bharrachd air an sin, tha uidheamachd mar sin saor agus faodar a chuir a-steach an àite sam bith.

Aithris dhuilgheadas

Ann an iomadh dòigh, leasaich am pròiseact mar sheòrsa de obair-lann le comas air na toraidhean a chuir an sàs.

Chaidh Zabbix a thaghadh mar an siostam sgrùdaidh oir tha e na shiostam cumhachdach, an-asgaidh agus air a dheagh chlàradh.

Chan e fuasgladh fìor mhath a th’ ann a bhith a’ cur inneal air leth fo sgrùdadh cuideachd - an dàrna cuid tha e daor uidheamachd ùr a cheannach, no coimhead airson seann uidheamachd + ann an companaidhean beaga bidh duilgheadasan tric ann le frithealaiche / bathar-cruaidh.

Le bhith a’ cleachdadh an t-siostam togail buildroot leigidh sin leat fuasglaidhean sònraichte a chruthachadh a dh’ fhaodas luchd-obrach aig a bheil glè bheag de eòlas air siostaman-obrachaidh Linux obrachadh. Tha an siostam seo càirdeil do luchd-tòiseachaidh, ach aig an aon àm a ’toirt seachad cothroman gnàthachaidh gu leòr ann an làmhan leasaiche eòlach. Tha e foirfe airson fuasgladh fhaighinn air an duilgheadas a thaobh sgrùdadh saor, ach làn-ghnìomhach air bun-structar IT, le glè bheag de riatanasan airson trèanadh luchd-obrach a tha ga ruith.

Ceumannan fuasglaidh

Chaidh co-dhùnadh an toiseach firmware a chruthachadh airson x86_64 airson a ruith ann an qemu, leis gur e fuasgladh goireasach is luath a tha seo airson debugging. An uairsin port e gu coimpiutair aon-bhòrd gàirdean (bu toil leam am bòrd asus tinker).

chaidh buildroot a thaghadh mar an siostam togail. An toiseach, chan eil am pasgan zabbix ann, agus mar sin dh'fheumadh e a bhith air a ghiùlan Bha duilgheadasan ann le locale na Ruis, a chaidh fhuasgladh le bhith a 'cur a-steach na pìosan iomchaidh (nota: ann an dreachan nas ùire de buildroot, chan eil feum air na pìosan sin tuilleadh).

Thèid cunntas a thoirt air a bhith a’ giùlan a’ phacaid zabbix fhèin ann an artaigil air leth.

Leis gum bu chòir a h-uile càil obrachadh mar firmware (dealbh siostam neo-atharrachail + faidhlichean rèiteachaidh / stòr-dàta a ghabhas faighinn air ais), bha e riatanach na targaidean siostaim agad fhèin, seirbheisean agus timers a sgrìobhadh (targaid, seirbheis, timer).

Chaidh co-dhùnadh na meadhanan a roinn ann an 2 earrann - earrann le faidhlichean siostam agus earrann le configs caochlaideach agus faidhlichean stòr-dàta zabbix.

Bha e beagan na bu duilghe fuasgladh cheistean co-cheangailte ris an stòr-dàta. Cha robh mi airson a chuir gu dìreach air na meadhanan. Aig an aon àm, faodaidh meud an stòr-dàta meud a ruighinn a tha nas àirde na meud ramdisk a dh’ fhaodadh a bhith ann. Mar sin, chaidh fuasgladh co-rèiteachaidh a thaghadh: tha an stòr-dàta suidhichte air an dàrna pàirt den chairt SD (tha suas ri 30 cearcall sgrìobhaidh aig cairtean SLC an latha an-diugh), ach tha suidheachadh ann a leigeas le cleachdadh meadhanan taobh a-muigh (mar eisimpleir, usb- hdd).

Chaidh sgrùdadh teòthachd a chuir an gnìomh tron ​​​​inneal RODOS-5. Gu dearbh, faodaidh tu an Dallas 1820 a chleachdadh gu dìreach, ach bha e nas luaithe agus nas fhasa USB a chuir a-steach.

chaidh grub86 a thaghadh mar an bootloader airson x64_2. Bha feum air glè bheag de config a sgrìobhadh airson a chuir air bhog.

Às deidh dì-bhugachadh air qemu, chaidh a ghiùlan chun bhòrd tinker asus. Bha structar an ath-chòmhdach agam an dùil an toiseach a bhith tar-àrd-ùrlar - a’ riarachadh configs sònraichte do gach bòrd (defconfig bùird, bootloader, a’ gineadh ìomhaigh le sgaradh siostam) agus an aonachd as motha ann a bhith a’ gnàthachadh an t-siostam faidhle / a’ cruthachadh ìomhaigh le dàta. Air sgàth an leithid de dh'ullachadh, chaidh an giùlan gu luath.

Thathas a’ moladh gu mòr na h-artaigilean tòiseachaidh a leughadh:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Mar a chruinnicheas tu

Tha am pròiseact air a stòradh air github
Às deidh clonadh an stòr, gheibhear an structar faidhle a leanas:

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

buildroot-2019.05.tar.gz - tasglann buildroot glan
is e ath-chòmhdach an eòlaire agam le craobh a-muigh. Seo far a bheil a h-uile dad a dh ’fheumas tu gus am firmware a thogail a’ cleachdadh buildroot air a stòradh.
README.md - tuairisgeul air a’ phròiseact agus leabhar-làimhe sa Bheurla.
'S e sgriobt a tha ann an run_me.sh a dh'ullaicheas an siostam togail. A’ leudachadh root root bhon tasglann, a’ ceangal ath-chòmhdach ris (tro uidheamachd craoibhe a-muigh) agus a’ leigeil leat am bòrd targaid a thaghadh airson a cho-chruinneachaidh

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

Às deidh seo, dìreach rachaibh chun eòlaire buildroot-2019.05 agus ruith an àithne dèanamh.
Aon uair ‘s gu bheil an togail deiseil, bidh na toraidhean togail gu lèir anns an eòlaire toraidh / ìomhaighean:

[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

Faidhlichean a tha a dhìth:

  • sdcard.img - ìomhaigh mheadhanan airson a chlàradh air cairt SD (tro dd no rufus fo wibdows).
  • qemu.qcow2 - ìomhaigh mheadhanan ri ruith ann an qemu.
  • external.qcow2 - ìomhaigh meadhanan taobh a-muigh airson an stòr-dàta
  • monitor-0.9-beta.tar.gz - tasglann airson ùrachadh tron ​​​​eadar-aghaidh lìn

Ginealach de Stiùiridhean

Chan fhiach an aon stiùireadh a sgrìobhadh grunn thursan. Agus is e an rud as loidsigeach a sgrìobhadh aon uair ann an markdown, agus an uairsin a thionndadh gu PDF airson a luchdachadh sìos agus html airson an eadar-aghaidh lìn. Tha seo comasach le taing don phasgan pandoc.

Aig an aon àm, feumar na faidhlichean sin uile a chruthachadh mus tèid ìomhaigh an t-siostaim a chruinneachadh; tha na sgriobtaichean post-togail sin gun fheum mu thràth. Mar sin, tha an ginealach air a dhèanamh ann an cruth pasgan làimhe. Faodaidh tu coimhead air ath-chòmhdach / pasgan / leabhar-làimhe.

Am faidhle manuals.mk (a nì an obair gu lèir)

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

siostam

Tha saoghal Linux gu gnìomhach a’ gluasad gu systemd, agus bha agam ri dhèanamh cuideachd.
Is e aon de na h-innleachdan tlachdmhor làthaireachd timers. San fharsaingeachd, tha artaigil air leth ga sgrìobhadh mun deidhinn (agus chan ann a-mhàin mun deidhinn), ach innsidh mi dhut gu h-aithghearr.

Tha gnìomhan ann a dh'fheumar a dhèanamh bho àm gu àm. Dh'fheumadh mi logrotate a ruith gus na logaichean lighttpd agus php-fpm a ghlanadh. Is e an rud àbhaisteach na h-òrdughan a sgrìobhadh ann an cron, ach chuir mi romham an timer monotonic systemd a chleachdadh. Mar sin bidh logrotate a’ ruith aig àm teann.

Gu dearbh, tha e comasach timers a chruthachadh a loisgeas air cinn-latha sònraichte, ach cha robh feum agam air seo.
Eisimpleir timer:

  • Faidhle timer
    
    [Unit]
    Description=RODOS temp daemon timer

[Timer] OnBootSec=1min
OnUnitActiveSec=1 mhionaid

[Stàlaich] WantedBy=timers.target

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

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

Bùird le taic

Is e bòrd tinker Asus am prìomh bhòrd air am bu chòir a h-uile càil obrachadh. Air a thaghadh mar saor agus glè chumhachdach.

Is e Beaglebone dubh a 'chiad bhòrd air an deach deuchainn a dhèanamh (nuair a chaidh bòrd nas cumhachdaiche a thaghadh).

Qemu x86_64 - air a chleachdadh airson leasachadh debugging.

Mar a tha e ag obair

Aig toiseach tòiseachaidh, bidh ath-nuadhachadh dà ìre de shuidheachaidhean a 'tachairt:

  • ruith an sgriobt settings_restore (tron t-seirbheis). Bidh e ag ath-nuadhachadh roghainnean siostam bunaiteach - sòn ùine, locale, roghainnean lìonra, msaa.
  • ruith an sgriobt ullachaidh (tron t-seirbheis) - an seo tha zabbix agus an stòr-dàta air an ullachadh, tha an IP air a chuir a-mach chun chonsail.

Nuair a thòisicheas tu air an toiseach, tha meud an dàrna pàirt den chairt SD air a dhearbhadh. Ma tha àite neo-riaraichte ann fhathast, tha na meadhanan air an toirt air ais, agus bidh an roinn dàta a’ gabhail a-steach a h-uile àite an-asgaidh. Tha seo air a dhèanamh gus meud an ìomhaigh stàlaidh a lughdachadh (sdcard.img). A bharrachd air an sin, tha an eòlaire obrach postgresql air a chruthachadh aig an ìre seo. Is e sin as coireach gum bi a’ chiad fhoillseachadh le neach-giùlan ùr nas fhaide na an fheadhainn às deidh sin.

Nuair a cheanglas tu draibhear taobh a-muigh, aig an àm tòiseachaidh bidh e a’ lorg draibhear an-asgaidh agus ga chruth ann an ext4 leis an leubail a-muigh.

Thoir an aire! Nuair a cheanglas tu draibhear taobh a-muigh (a bharrachd air a bhith ga dhì-cheangal no ga chuir na àite), feumaidh tu cùl-taic a dhèanamh agus na roghainnean a thoirt air ais!

Tha an inneal RODOS 5 air a chleachdadh airson sgrùdadh teothachd. Bidh an neach-dèanamh a’ toirt seachad còd stòr a ghoireas airson a bhith ag obair leis an inneal. Nuair a thèid an siostam a thionndadh air, tòisichidh an timer rodos, a bhios a 'ruith a' ghoireas seo uair sa mhionaid. Tha an teòthachd làithreach air a sgrìobhadh chun fhaidhle /tmp/rodos_current_temp, agus às deidh sin faodaidh zabbix sùil a chumail air an fhaidhle seo mar sensor.

Tha na meadhanan stòraidh rèiteachaidh air an cur suas anns an eòlaire / dàta.

Nuair a thòisicheas tu air an t-siostam agus ga ullachadh airson obrachadh, nochdaidh an teachdaireachd a leanas anns a’ chonsail:

System starting, please wait

Às deidh an obair ullachaidh a chrìochnachadh, atharraichidh e gu bhith a’ taisbeanadh an seòladh IP:

current ip 192.168.1.32
Ready to work

A 'stèidheachadh zabbix airson sgrùdadh teòthachd

Gus sùil a chumail air an teòthachd, dìreach gabh 2 cheum:

  • ceangail an inneal RODOS ris a 'phort USB
  • cruthaich nì dàta ann an zabbix

Fosgail an eadar-aghaidh lìn zabbix:

  • Fosgail an roinn Configuration → Hosts
  • Cliog air Rudan ann an loidhne ar frithealaiche zabbix
  • Cliog air Cruthaich nì

Buildroot: A’ cruthachadh firmware tar-àrd-ùrlar le zabbix-server

Cuir a-steach an dàta a leanas:

  • ainm - a rèir do thoil fhèin (mar eisimpleir, serverRoomTemp )
  • Seòrsa - àidseant zabbix
  • Prìomh - Rodos
  • Seòrsa-àireamhach
  • Aonadan - C
  • Ùine stòraidh eachdraidh - ùine stòraidh eachdraidh. air fhàgail 10 latha
  • Ùine stòraidh treand - ùine stòraidh airson daineamaigs atharrachaidhean. Air fhàgail 30 latha
  • Iarrtas ùr - Temp Seòmar frithealaiche

Agus brùth air a’ phutan ADD.
Buildroot: A’ cruthachadh firmware tar-àrd-ùrlar le zabbix-server

Stiùirich roghainnean tro eadar-aghaidh lìn

Tha an eadar-aghaidh lìn sgrìobhte ann am PHP. Tha prìomh dhleastanasan ann:

  • faic staid an uidheim
  • ag atharrachadh roghainnean lìonra
    Buildroot: A’ cruthachadh firmware tar-àrd-ùrlar le zabbix-server
  • ag atharrachadh facal-faire neach-cleachdaidh
  • taghadh sòn ùine
  • cùl-taic / ath-nuadhachadh / ath-shuidheachadh factaraidh
  • comas air draibhear taobh a-muigh a cheangal
  • Ùrachadh siostaim
    Buildroot: A’ cruthachadh firmware tar-àrd-ùrlar le zabbix-server

Tha logadh a-steach don eadar-aghaidh lìn air a dhìon le facal-faire. Duilleag tòiseachaidh - leabhar-làimhe.

Seòladh eadar-aghaidh Zabbix: ${ip/dns}/zabbix
Seòladh eadar-aghaidh stiùiridh: ${ip/dns}/manage
Buildroot: A’ cruthachadh firmware tar-àrd-ùrlar le zabbix-server

A ' ruith ann an qemu

qemu-system-x86_64 -smp 4 -m 4026M -enable-kvm -machine q35, accel = kvm -device intel-iommu -cpu host -net nic -net drochaid, br = drochaid0 -device virtio-scsi-pci,id = scsi0 -drive file=toradh/images/qemu.qcow2,format=qcow2,aio=snàthainn -device virtio-scsi-pci,id=scsi0 -drive file=toradh/images/external.qcow2,format=qcow2,aio=snàthainn

Tòisichidh an àithne seo siostam le 4 cores, 2048 RAM, KVM air a chomasachadh, cairt lìonra air bridge0 agus dà dhiosca: aon airson an t-siostam agus aon taobh a-muigh airson postgresql.

Faodar dealbhan a thionndadh agus a ruith ann am Virtualbox:

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

An uairsin cuir a-steach iad gu virtualbox agus ceangail tro sata.

co-dhùnadh

Anns a ’phròiseas, ghabh mi ùidh ann a bhith a’ dèanamh toradh deiseil airson a chleachdadh - le eadar-aghaidh nach eil gu math brèagha (cha toil leam an sgrìobhadh), ach fear a tha ag obair agus a tha furasta a rèiteachadh.

Sheall an oidhirp mu dheireadh air zabbix-appliance a chuir a-steach ann an KVM gu robh an ceum seo ceart (às deidh an stàladh a chrìochnachadh, chan eil an siostam a’ tòiseachadh). Is dòcha gu bheil mi a’ dèanamh rudeigin ceàrr 😉

Материалы

https://buildroot.org/

Source: www.habr.com

Cuir beachd ann