Buildroot: Ṣiṣẹda famuwia-Syeed agbelebu pẹlu olupin zabbix

Buildroot: Ṣiṣẹda famuwia-Syeed agbelebu pẹlu olupin zabbix

Itan iṣoro

Awọn ile-iṣẹ kekere, ni apa kan, nilo ibojuwo didara giga ti awọn amayederun wọn (paapaa ni ina ti agbara ibigbogbo), ni apa keji, o nira fun wọn ni inawo lati ra awọn ohun elo tuntun. Awọn iṣoro olupin / hardware tun wọpọ: nigbagbogbo awọn olupin ile-iṣọ 1-3 wa lẹgbẹẹ awọn iṣẹ-ṣiṣe olumulo tabi ni aaye kekere / kọlọfin kan.

O rọrun lati lo apejọ ti a ti ṣetan (pinpin), eyiti o kan nilo lati gbe si kaadi microSD kan ki o fi sii sinu kọnputa igbimọ kan ti o wọpọ (beaglebone, rasipibẹri pi ati awọn idile pi osan, asus tinker board). Ni afikun, iru ẹrọ jẹ ilamẹjọ ati pe o le fi sii nibikibi.

Igbekalẹ iṣoro naa

Ni ọpọlọpọ awọn ọna, ise agbese ni idagbasoke bi a irú ti yàrá iṣẹ pẹlu awọn seese ti a to awọn esi.

A yan Zabbix bi eto ibojuwo nitori pe o jẹ eto ti o lagbara, ọfẹ ati iwe-ipamọ daradara.

Ọrọ pẹlu iru ẹrọ ohun elo ti di nla, fifi ẹrọ lọtọ labẹ abojuto kii ṣe ojutu ti o dara pupọ - boya o jẹ gbowolori lati ra ohun elo tuntun, tabi lati wa ohun elo atijọ + ni awọn ile-iṣẹ kekere awọn iṣoro loorekoore pẹlu olupin / hardware.

Lilo awọn buildroot eto faye gba o lati ṣẹda amọja solusan ti o le wa ni ṣiṣẹ nipa eniyan pẹlu iwonba imo ti Linux awọn ọna šiše. Eto yii jẹ ọrẹ si awọn olubere, ṣugbọn ni akoko kanna pese awọn anfani isọdi pupọ ni ọwọ ti olupilẹṣẹ ti o ni iriri. O jẹ pipe fun ipinnu iṣoro ti ilamẹjọ, ṣugbọn ibojuwo iṣẹ ni kikun ti awọn amayederun IT, pẹlu awọn ibeere kekere fun ikẹkọ ti oṣiṣẹ ti n ṣiṣẹ.

Awọn igbesẹ ojutu

O ti pinnu lati ṣẹda famuwia lakoko fun x86_64 lati ṣiṣẹ ni qemu, nitori eyi jẹ irọrun ati ojutu iyara fun n ṣatunṣe aṣiṣe. Lẹhinna gbe si kọnputa si apa kan (Mo nifẹ igbimọ asus tinker).

buildroot ti a ti yan bi awọn Kọ eto. Ni ibẹrẹ, o ko ni package zabbix, nitorinaa o ni lati gbejade. Awọn iṣoro wa pẹlu agbegbe Russian, eyiti a yanju nipasẹ lilo awọn abulẹ ti o yẹ (akọsilẹ: ni awọn ẹya tuntun ti buildroot, awọn abulẹ wọnyi ko nilo mọ).

Gbigbe package zabbix funrararẹ yoo jẹ apejuwe ninu nkan lọtọ.

Niwọn igba ti ohun gbogbo yẹ ki o ṣiṣẹ bi famuwia (aworan eto ti ko yipada + atunto atunto / awọn faili data), o jẹ dandan lati kọ awọn ibi-afẹde ti ara rẹ, awọn iṣẹ ati awọn akoko (afojusun, iṣẹ, aago).

O ti pinnu lati pin awọn media si awọn apakan 2 - apakan pẹlu awọn faili eto ati apakan kan pẹlu awọn atunto iyipada ati awọn faili data zabbix.

Yiyan awọn iṣoro ti o ni ibatan si ibi ipamọ data ti jade lati jẹ diẹ sii nira. Emi ko fẹ lati gbe o taara lori media. Ni akoko kanna, awọn iwọn ti awọn database le de ọdọ kan iwọn ti o koja awọn iwọn ti a ti ṣee ṣe ramdisk. Nitorinaa, a yan ojutu adehun: aaye data wa lori ipin keji ti kaadi SD (awọn kaadi SLC ode oni ni awọn akoko kikọ 30), ṣugbọn eto kan wa ti o fun laaye laaye lati lo media ita (fun apẹẹrẹ, usb- hdd).

Abojuto iwọn otutu ni imuse nipasẹ ẹrọ RODOS-5. Nitoribẹẹ, o le lo Dallas 1820 taara, ṣugbọn o yarayara ati rọrun lati pulọọgi sinu USB kan.

grub86 ti yan bi bootloader fun x64_2. O jẹ dandan lati kọ atunto kekere kan lati ṣe ifilọlẹ.

Lẹhin ti n ṣatunṣe aṣiṣe lori qemu, o ti gbe lọ si igbimọ asus tinker. Eto ti agbekọja mi ni akọkọ ti pinnu lati jẹ agbelebu-Syeed - ipinfunni awọn atunto kan pato si igbimọ kọọkan (defconfig igbimọ, bootloader, ti ipilẹṣẹ aworan pẹlu ipin eto) ati iṣọkan ti o pọju ni isọdi eto faili / ṣiṣẹda aworan kan pẹlu data. Nitori iru igbaradi bẹ, gbigbe gbigbe lọ yarayara.

O ti wa ni gíga niyanju lati ka awọn nkan iforo:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

Bawo ni lati pejọ

Ise agbese ti wa ni ipamọ lori github
Lẹhin ti cloning ibi ipamọ, eto faili atẹle ni a gba:

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

buildroot-2019.05.tar.gz - mọ buildroot pamosi
agbekọja ni itọsọna mi pẹlu igi ita. Eyi ni ibiti ohun gbogbo ti o nilo lati kọ famuwia nipa lilo buildroot ti wa ni ipamọ.
README.md - apejuwe ti ise agbese ati itọnisọna ni ede Gẹẹsi.
run_me.sh jẹ iwe afọwọkọ ti o mura eto kikọ. Faagun buildroot lati ile ifi nkan pamosi, so agbekọja si rẹ (nipasẹ ẹrọ-igi ita) ati gba ọ laaye lati yan igbimọ ibi-afẹde fun apejọ

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

Lẹhin eyi, kan lọ si iwe-itumọ-Buildroot-2019.05 ati ṣiṣe aṣẹ ṣiṣe naa.
Ni kete ti kikọ ba ti pari, gbogbo awọn abajade kikọ yoo wa ninu iṣelọpọ / awọn ilana awọn aworan:

[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

Awọn faili ti a beere:

  • sdcard.img - aworan media fun gbigbasilẹ lori kaadi SD kan (nipasẹ dd tabi rufus labẹ awọn wibdows).
  • qemu.qcow2 - aworan media lati ṣiṣẹ ni qemu.
  • external.qcow2 - ita media aworan fun awọn database
  • monitor-0.9-beta.tar.gz - pamosi fun imudojuiwọn nipasẹ awọn ayelujara ni wiwo

Iran ti Awọn Itọsọna

Ko tọ lati kọ awọn ilana kanna ni ọpọlọpọ igba. Ati pe ohun ti o mọgbọnwa julọ ni lati kọ ni ẹẹkan ni isamisi, lẹhinna yi pada si PDF fun igbasilẹ ati html fun wiwo wẹẹbu. Eyi ṣee ṣe ọpẹ si package pandoc.

Ni akoko kanna, gbogbo awọn faili wọnyi nilo lati ṣe ipilẹṣẹ ṣaaju ki aworan eto to pejọ; awọn iwe afọwọkọ lẹhin-itumọ ti ko wulo tẹlẹ. Nitorina, iran ti wa ni ṣe ni awọn fọọmu ti a Manuali package. O le wo agbekọja/package/awọn iwe afọwọkọ.

Faili manuals.mk (eyiti o ṣe gbogbo iṣẹ naa)

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

eto eto

Aye Linux ti n ṣiṣẹ ni iyara si systemd, ati pe Mo ni lati ṣe paapaa.
Ọkan ninu awọn imotuntun dídùn ni wiwa awọn akoko. Ni gbogbogbo, nkan ti o yatọ ni a kọ nipa wọn (ati kii ṣe nipa wọn nikan), ṣugbọn Emi yoo sọ fun ọ ni ṣoki.

Awọn iṣe wa ti o gbọdọ ṣe lorekore. Mo nilo lati ṣiṣẹ logrotate lati ko lighttpd ati awọn akọọlẹ php-fpm kuro. Ohun ti o ṣe deede yoo jẹ lati kọ awọn aṣẹ ni cron, ṣugbọn Mo pinnu lati lo aago monotonic systemd. Nitorinaa logrotate ṣiṣẹ ni aarin akoko ti o muna.

Nitoribẹẹ, o ṣee ṣe lati ṣẹda awọn aago ti ina lori awọn ọjọ kan, ṣugbọn Emi ko nilo eyi.
Apeere aago:

  • Faili aago
    
    [Unit]
    Description=RODOS temp daemon timer

[Aago] OnBootSec=1 min
OnUnitActiveSec=1 min

[Fi sori ẹrọ] WantedBy=timers.target

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

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

Awọn igbimọ atilẹyin

Asus tinker Board jẹ igbimọ akọkọ lori eyiti ohun gbogbo yẹ ki o ṣiṣẹ. Ti yan bi ilamẹjọ ati agbara pupọ.

Beaglebone dudu jẹ igbimọ akọkọ lori eyiti a ṣe idanwo iṣẹ (lakoko yiyan igbimọ ti o lagbara diẹ sii).

Qemu x86_64 - ti a lo fun idagbasoke n ṣatunṣe aṣiṣe.

Bawo ni o ṣe n ṣiṣẹ

Ni ibẹrẹ, atunṣe ipele meji ti awọn eto waye:

  • nṣiṣẹ awọn settings_restore akosile (nipasẹ iṣẹ). O tun mu awọn eto eto ipilẹ pada - agbegbe aago, agbegbe, awọn eto nẹtiwọọki, ati bẹbẹ lọ.
  • nṣiṣẹ awọn iwe afọwọkọ mura (nipasẹ awọn iṣẹ) - nibi zabbix ati awọn database ti wa ni pese sile, awọn IP ti wa ni o wu si awọn console.

Nigbati o ba bẹrẹ akọkọ, iwọn ti ipin keji ti kaadi SD jẹ ipinnu. Ti aaye ti a ko pin si tun wa, media ti tun pin, ati apakan data gba gbogbo aaye ọfẹ. Eyi ni a ṣe lati le dinku iwọn aworan fifi sori ẹrọ (sdcard.img). Ni afikun, itọsọna iṣẹ postgresql ni a ṣẹda ni aaye yii. Ti o ni idi ti ifilọlẹ akọkọ pẹlu olupese tuntun yoo gun ju awọn ti o tẹle lọ.

Nigbati o ba n ṣopọ mọ kọnputa ita, ni akoko ibẹrẹ o wa awakọ ọfẹ ati ṣe ọna kika sinu ext4 pẹlu aami ita.

Ifarabalẹ! Nigbati o ba n ṣopọ mọ dirafu ita (bakannaa ge asopọ tabi rirọpo), o nilo lati ṣe afẹyinti ati mu awọn eto pada!

Ẹrọ RODOS 5 ni a lo fun ibojuwo otutu. Olupese pese koodu orisun ti ohun elo rẹ fun ṣiṣẹ pẹlu ẹrọ naa. Nigbati eto ba wa ni titan, aago rodos bẹrẹ, eyiti o nṣiṣẹ ohun elo yii lẹẹkan ni iṣẹju kan. Iwọn otutu lọwọlọwọ ni a kọ si faili /tmp/rodos_current_temp, lẹhin eyi zabbix le ṣe atẹle faili yii bi sensọ kan.

Media ibi ipamọ atunto ti wa ni gbigbe sinu / data liana.

Nigbati o ba bẹrẹ eto ati ngbaradi fun iṣẹ, ifiranṣẹ atẹle yoo han ninu console:

System starting, please wait

Lẹhin ipari iṣẹ igbaradi, yoo yipada si iṣafihan adiresi IP naa:

current ip 192.168.1.32
Ready to work

Ṣiṣeto zabbix fun ibojuwo iwọn otutu

Lati ṣe atẹle iwọn otutu, kan ṣe awọn igbesẹ meji:

  • so ẹrọ RODOS pọ si ibudo USB
  • ṣẹda data ohun kan ni zabbix

Ṣii wiwo wẹẹbu zabbix:

  • Ṣii apakan Iṣeto → Awọn ogun
  • Tẹ Awọn ohun kan ni laini ti olupin zabbix wa
  • Tẹ lori Ṣẹda ohun kan

Buildroot: Ṣiṣẹda famuwia-Syeed agbelebu pẹlu olupin zabbix

Tẹ data atẹle naa:

  • orukọ - ni lakaye rẹ (fun apẹẹrẹ, serverRoomTemp)
  • Iru - aṣoju zabbix
  • Bọtini - Rodos
  • Iru-nọmba
  • Awọn ẹka - C
  • Akoko ipamọ itan - akoko ipamọ itan. osi 10 ọjọ
  • Akoko ipamọ aṣa-akoko ipamọ fun awọn agbara ti awọn ayipada. Osi 30 ọjọ
  • New elo - server Room Temp

Ki o si tẹ bọtini ADD.
Buildroot: Ṣiṣẹda famuwia-Syeed agbelebu pẹlu olupin zabbix

Ṣakoso awọn eto nipasẹ wiwo wẹẹbu

Oju opo wẹẹbu ti kọ ni PHP. Awọn iṣẹ akọkọ wa:

  • wo ipo ẹrọ
  • iyipada eto nẹtiwọki
    Buildroot: Ṣiṣẹda famuwia-Syeed agbelebu pẹlu olupin zabbix
  • iyipada olumulo ọrọigbaniwọle
  • aṣayan agbegbe aago
  • afẹyinti / pada / factory si ipilẹ
  • agbara lati so ohun ita drive
  • Imudojuiwọn System
    Buildroot: Ṣiṣẹda famuwia-Syeed agbelebu pẹlu olupin zabbix

Wọle si wiwo oju opo wẹẹbu jẹ aabo ọrọ igbaniwọle. Ibẹrẹ iwe - Afowoyi.

Àdírẹ́ẹ̀sì ìtúwò Zabbix: ${ip/dns}/zabbix
Àdírẹ́sì ìṣàkóso: ${ip/dns}/ṣakoso
Buildroot: Ṣiṣẹda famuwia-Syeed agbelebu pẹlu olupin zabbix

Nṣiṣẹ ni 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 -device virtio-scsi-pci,id= scsi0 -drive faili=jade/images/qemu.qcow2,kika=qcow2,aio=threads -device virtio-scsi-pci,id=scsi0 -drive file=ojade/images/external.qcow2,kika=qcow2,aio=threads

Aṣẹ yii yoo bẹrẹ eto pẹlu awọn ohun kohun 4, 2048 Ramu, KVM ṣiṣẹ, kaadi nẹtiwọki kan lori bridge0 ati awọn disiki meji: ọkan fun eto ati ita fun postgresql.

Awọn aworan le ṣe iyipada ati ṣiṣe ni Virtualbox:

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

Lẹhinna gbe wọn wọle sinu apoti foju ati sopọ nipasẹ sata.

ipari

Ninu ilana naa, Mo nifẹ si ṣiṣe ọja ti o ṣetan lati lo - pẹlu wiwo ti ko lẹwa pupọ (Emi ko fẹran kikọ wọn), ṣugbọn ọkan ti o ṣiṣẹ ati rọrun lati tunto.

Awọn ti o kẹhin igbiyanju a fi sori ẹrọ zabbix-elo ni KVM fihan wipe yi igbese je ti o tọ (lẹhin ti fifi sori wa ni ti pari, awọn eto ko ni bẹrẹ). Boya Mo n ṣe nkan ti ko tọ 😉

Awọn ohun elo

https://buildroot.org/

orisun: www.habr.com

Fi ọrọìwòye kun