Buildroot: zabbix-server සමඟ හරස් වේදිකා ස්ථිරාංග නිර්මාණය කිරීම

Buildroot: zabbix-server සමඟ හරස් වේදිකා ස්ථිරාංග නිර්මාණය කිරීම

ගැටළු ඉතිහාසය

කුඩා ප්‍රමාණයේ සමාගම්, එක් අතකින්, ඔවුන්ගේ යටිතල පහසුකම් (විශේෂයෙන් පුලුල්ව පැතිරුනු අථත්‍යකරණයේ ආලෝකයේ) උසස් තත්ත්වයේ අධීක්ෂණයක් අවශ්‍ය වේ, අනෙක් අතට, ඔවුන්ට නව උපකරණ මිලදී ගැනීම මූල්‍යමය වශයෙන් දුෂ්කර ය. සේවාදායක/දෘඪාංග ගැටළු ද පොදු වේ: බොහෝ විට පරිශීලක සේවා ස්ථාන අසල හෝ කුඩා නිකේතනයක / වැසිකිලියක කුළුණු සේවාදායක 1-3 ක් ඇත.

සූදානම් කළ එකලස් කිරීමක් (බෙදාහැරීම) භාවිතා කිරීම පහසුය, එය ඔබට මයික්‍රෝ එස්ඩී කාඩ්පතකට උඩුගත කර පොදු තනි පුවරු පරිගණකයකට ඇතුළු කළ යුතුය (බීගල්බෝන්, රාස්ප්බෙරි පයි සහ තැඹිලි පයි පවුල්, අසූස් ටින්කර් පුවරුව). මීට අමතරව, එවැනි උපකරණ මිල අඩු වන අතර ඕනෑම තැනක ස්ථාපනය කළ හැකිය.

ගැටලුව ප්රකාශ කිරීම

බොහෝ ආකාරවලින්, ව්‍යාපෘතිය ප්‍රතිපල යෙදීමේ හැකියාව ඇති රසායනාගාර කාර්යයක් ලෙස වර්ධනය විය.

Zabbix අධීක්ෂණ පද්ධතිය ලෙස තෝරා ගනු ලැබුවේ එය බලවත්, නිදහස් සහ හොඳින් ලේඛනගත පද්ධතියක් වන බැවිනි.

දෘඪාංග වේදිකාවේ ගැටලුව උග්‍ර වී ඇත්තේ වෙනම යන්ත්‍රයක් අධීක්‍ෂණය යටතේ තැබීම ද එතරම් හොඳ විසඳුමක් නොවේ - එක්කෝ නව උපකරණ මිලදී ගැනීම මිල අධික වේ, නැතහොත් කුඩා සමාගම්වල සේවාදායකය/ සමඟ නිතර ගැටලු ඇති වේ. දෘඩාංග.

බිල්ඩ්රූට් ගොඩනැගීමේ පද්ධතිය භාවිතා කිරීමෙන් ඔබට ලිනක්ස් මෙහෙයුම් පද්ධති පිළිබඳ අවම දැනුමක් ඇති පුද්ගලයින්ට ක්‍රියාත්මක කළ හැකි විශේෂිත විසඳුම් නිර්මාණය කිරීමට ඉඩ සලසයි. මෙම පද්ධතිය ආරම්භකයින් සඳහා මිත්රශීලී වේ, නමුත් ඒ සමගම පළපුරුදු සංවර්ධකයෙකුගේ අතේ ඇති තරම් අභිරුචිකරණ අවස්ථා සපයයි. එය ක්‍රියාත්මක වන පිරිස් පුහුණු කිරීම සඳහා අවම අවශ්‍යතා සහිතව, තොරතුරු තාක්ෂණ යටිතල පහසුකම්වල මිල අඩු, නමුත් පූර්ණ ක්‍රියාකාරී අධීක්‍ෂණය පිළිබඳ ගැටළුව විසඳීම සඳහා පරිපූර්ණ වේ.

විසඳුම් පියවර

මෙය නිදොස්කරණය සඳහා පහසු සහ වේගවත් විසඳුමක් වන බැවින්, qemu හි ක්‍රියාත්මක කිරීම සඳහා x86_64 සඳහා ස්ථිරාංග නිර්මාණය කිරීමට මුලින් තීරණය කරන ලදී. ඊට පස්සේ ඒක arm single-board computer එකකට port කරන්න (මම ආසයි asus tinker board එකට).

buildroot ගොඩනැගීමේ පද්ධතිය ලෙස තෝරාගෙන ඇත. මුලදී, එය zabbix පැකේජය නොමැති නිසා, එය රුසියානු පෙදෙස සමඟ ගැටළු ඇති විය, ඒවා සුදුසු පැච් යෙදීමෙන් විසඳා ඇත (සටහන: buildroot හි නව අනුවාද වල, මෙම පැච් තවදුරටත් අවශ්ය නොවේ).

Zabbix පැකේජය ගෙනයාම වෙනම ලිපියකින් විස්තර කෙරේ.

සෑම දෙයක්ම ස්ථිරාංග ලෙස ක්‍රියා කළ යුතු බැවින් (වෙනස් කළ නොහැකි පද්ධති රූපය + ප්‍රතිසාධනය කළ හැකි වින්‍යාසය/දත්ත සමුදා ගොනු), ඔබේම systemd ඉලක්ක, සේවා සහ ටයිමර් (ඉලක්කය, සේවා, ටයිමරය) ලිවීමට අවශ්‍ය විය.

මාධ්‍ය කොටස් 2 කට බෙදීමට තීරණය කරන ලදී - පද්ධති ගොනු සහිත කොටස සහ වෙනස් කළ හැකි වින්‍යාස සහ zabbix දත්ත සමුදා ගොනු සහිත කොටස.

දත්ත සමුදාය සම්බන්ධ ගැටළු විසඳීම ටිකක් අපහසු විය. මට එය සෘජුවම මාධ්‍ය මත තැබීමට අවශ්‍ය නොවීය. ඒ සමගම, දත්ත සමුදායේ විශාලත්වය හැකි ramdisk ප්රමාණය ඉක්මවන ප්රමාණයකට ළඟා විය හැකිය. එබැවින්, සම්මුති විසඳුමක් තෝරා ගන්නා ලදී: දත්ත සමුදාය SD කාඩ්පතේ දෙවන කොටසෙහි පිහිටා ඇත (නවීන SLC කාඩ්පත් 30 ලිවීමේ චක්‍ර දක්වා ඇත), නමුත් බාහිර මාධ්‍ය භාවිතා කිරීමට ඉඩ සලසන සැකසුමක් ඇත (උදාහරණයක් ලෙස, usb- hdd).

RODOS-5 උපාංගය හරහා උෂ්ණත්වය අධීක්ෂණය ක්රියාත්මක කරන ලදී. ඇත්ත වශයෙන්ම, ඔබට Dallas 1820 සෘජුවම භාවිතා කළ හැකිය, නමුත් එය USB එකක් සම්බන්ධ කිරීම වේගවත් හා පහසු විය.

grub86 x64_2 සඳහා bootloader ලෙස තෝරාගෙන ඇත. එය දියත් කිරීම සඳහා අවම වින්‍යාසයක් ලිවීමට අවශ්‍ය විය.

qemu හි දෝශ නිරාකරණය කිරීමෙන් පසුව, එය asus ටින්කර් පුවරුව වෙත ගෙන යන ලදී. මගේ ආවරණයේ ව්‍යුහය මුලින් අදහස් කළේ හරස් වේදිකා - එක් එක් පුවරුවට විශේෂිත වූ වින්‍යාසයන් වෙන් කිරීම (පුවරු defconfig, bootloader, පද්ධති කොටසකින් රූපයක් ජනනය කිරීම) සහ ගොනු පද්ධතිය අභිරුචිකරණය කිරීමේදී/දත්ත සහිත රූපයක් සෑදීමේදී උපරිම ඒකාකාරිත්වය. එවැනි සූදානමක් නිසා, වරාය ඉක්මනින් සිදු විය.

හඳුන්වාදීමේ ලිපි කියවීම බෙහෙවින් නිර්දේශ කෙරේ:
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

එකලස් කරන්නේ කෙසේද

ව්‍යාපෘතිය github මත ගබඩා කර ඇත
ගබඩාව ක්ලෝන කිරීමෙන් පසු, පහත ගොනු ව්‍යුහය ලබා ගනී:

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

buildroot-2019.05.tar.gz - පිරිසිදු buildroot ලේඛනාගාරය
overlay යනු බාහිර-ගස සහිත මගේ නාමාවලියයි. බිල්ඩ්රූට් භාවිතයෙන් ඔබට ස්ථිරාංග සෑදීමට අවශ්‍ය සියල්ල ගබඩා කර ඇත්තේ මෙහිදීය.
README.md - ව්‍යාපෘති විස්තරය සහ අත්පොත ඉංග්‍රීසියෙන්.
run_me.sh යනු ගොඩනැගීමේ පද්ධතිය සකස් කරන ස්ක්‍රිප්ට් එකකි. ලේඛනාගාරයෙන් බිල්ඩ්රූට් පුළුල් කරයි, එයට උඩින් තට්ටුවක් අමුණයි (බාහිර-ගස් යාන්ත්‍රණය හරහා) සහ එකලස් කිරීම සඳහා ඉලක්ක පුවරුව තෝරා ගැනීමට ඔබට ඉඩ සලසයි.

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

මෙයින් පසු, buildroot-2019.05 නාමාවලිය වෙත ගොස් make විධානය ක්‍රියාත්මක කරන්න.
ගොඩනැගීම සම්පූර්ණ වූ පසු, සියලු ගොඩනැගීමේ ප්‍රතිඵල ප්‍රතිදානය/රූප නාමාවලියෙහි ඇත:

[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

අවශ්ය ගොනු:

  • sdcard.img - SD පතක පටිගත කිරීම සඳහා මාධ්‍ය රූපය (dd හෝ rufus යටතේ wibdows හරහා).
  • qemu.qcow2 - මාධ්‍ය රූපය qemu හි ධාවනය කිරීමට.
  • external.qcow2 - දත්ත සමුදාය සඳහා බාහිර මාධ්‍ය රූපය
  • monitor-0.9-beta.tar.gz - වෙබ් අතුරු මුහුණත හරහා යාවත්කාලීන කිරීම සඳහා සංරක්ෂිතය

මාර්ගෝපදේශ උත්පාදනය

එකම උපදෙස් කිහිප වතාවක් ලිවීම වටී නැත. වඩාත්ම තාර්කික දෙය නම් එය සලකුණු කිරීමේදී එය එක් වරක් ලිවීමයි, පසුව බාගත කිරීම සඳහා එය PDF බවට පරිවර්තනය කිරීම සහ වෙබ් අතුරු මුහුණත සඳහා html. පැන්ඩොක් පැකේජයට ස්තුතිවන්ත විය හැකි ය.

ඒ අතරම, මෙම සියලු ගොනු පද්ධති රූපය එකලස් කිරීමට පෙර උත්පාදනය කළ යුතුය, එම පසු ගොඩනැගීමේ ස්ක්‍රිප්ට් දැනටමත් නිෂ්ඵල ය. එබැවින්, උත්පාදනය සිදු කරනු ලබන්නේ අත්පොත පැකේජයක් ආකාරයෙන්ය. ඔබට overlay/package/manuals බලන්න පුළුවන්.

manuals.mk ගොනුව (සියලු වැඩ කරන)

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

පද්ධතිමය

Linux ලෝකය systemd වෙත සක්‍රියව ගමන් කරමින් සිටින අතර මටද එය කිරීමට සිදු විය.
ප්රසන්න නවෝත්පාදනයන්ගෙන් එකක් වන්නේ ටයිමර් තිබීමයි. පොදුවේ ගත් කල, ඔවුන් ගැන වෙනම ලිපියක් ලියා ඇත (සහ ඔවුන් ගැන පමණක් නොවේ), නමුත් මම ඔබට කෙටියෙන් කියමි.

කාලානුරූපව සිදු කළ යුතු ක්රියා තිබේ. lighttpd සහ php-fpm ලොග් ඉවත් කිරීමට මට logrotate ධාවනය කිරීමට අවශ්‍ය විය. සාමාන්‍ය දෙය නම් ක්‍රෝන් හි විධාන ලිවීමයි, නමුත් මම systemd monotonic timer භාවිතා කිරීමට තීරණය කළෙමි. එබැවින් logrotate දැඩි කාල පරතරයකින් ධාවනය වේ.

ඇත්ත වශයෙන්ම, ඇතැම් දිනවලදී වෙඩි තබන ටයිමර් නිර්මාණය කළ හැකිය, නමුත් මට මෙය අවශ්ය නොවීය.
ටයිමර් උදාහරණය:

  • ටයිමර් ගොනුව
    
    [Unit]
    Description=RODOS temp daemon timer

[ටයිමර්] OnBootSec=1මිනි
OnUnitActiveSec=1මිනි

[ස්ථාපනය] WantedBy=timers.target

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

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

ආධාරක පුවරු

Asus tinker board යනු සෑම දෙයක්ම ක්‍රියා කළ යුතු ප්‍රධාන පුවරුවයි. මිල අඩු සහ ඉතා බලවත් ලෙස තෝරාගෙන ඇත.

Beaglebone black යනු මෙහෙයුම පරීක්ෂා කරන ලද පළමු පුවරුවයි (වඩා බලවත් පුවරුවක් තෝරාගැනීමේදී).

Qemu x86_64 - දෝශ නිරාකරණ සංවර්ධනය සඳහා භාවිතා වේ.

එය ක්රියාත්මක වන්නේ කෙසේද?

ආරම්භයේදී, සැකසුම් දෙකක අදියර ප්‍රතිසාධනයක් සිදු වේ:

  • settings_restore ස්ක්‍රිප්ට් ධාවනය කිරීම (සේවාව හරහා). එය මූලික පද්ධති සැකසුම් ප්‍රතිස්ථාපනය කරයි - කාල කලාපය, පෙදෙසි, ජාල සැකසුම් යනාදිය.
  • සූදානම් කිරීමේ ස්ක්‍රිප්ට් ධාවනය කිරීම (සේවාව හරහා) - මෙහි zabbix සහ දත්ත සමුදාය සකස් කර ඇත, IP කොන්සෝලය වෙත ප්‍රතිදානය වේ.

ඔබ මුලින්ම එය ආරම්භ කරන විට, SD කාඩ්පතේ දෙවන කොටසෙහි ප්රමාණය තීරණය වේ. තවමත් වෙන් නොකළ ඉඩක් තිබේ නම්, මාධ්යය නැවත කොටස් කර ඇති අතර, දත්ත අංශය සියලු නිදහස් ඉඩ ලබා ගනී. ස්ථාපන රූපයේ (sdcard.img) ප්රමාණය අඩු කිරීම සඳහා මෙය සිදු කෙරේ. අතිරේකව, මෙම ස්ථානයේ postgresql වැඩ කරන නාමාවලිය නිර්මාණය වේ. නව වාහකයක් සමඟ පළමු දියත් කිරීම පසුකාලීන ඒවාට වඩා වැඩි කාලයක් ගතවනු ඇත්තේ එබැවිනි.

බාහිර ධාවකයක් සම්බන්ධ කරන විට, ආරම්භක මොහොතේ එය නිදහස් ධාවකයක් සොයමින් බාහිර ලේබලය සමඟ ext4 ලෙස හැඩගස්වයි.

අවධානය! බාහිර ධාවකයක් සම්බන්ධ කරන විට (මෙන්ම එය විසන්ධි කිරීම හෝ ප්රතිස්ථාපනය කිරීම), ඔබට උපස්ථයක් සාදා සැකසීම් ප්රතිෂ්ඨාපනය කළ යුතුය!

RODOS 5 උපාංගය උෂ්ණත්ව නිරීක්ෂණ සඳහා භාවිතා කරයි, නිෂ්පාදකයා උපාංගය සමඟ වැඩ කිරීම සඳහා එහි උපයෝගීතාවයේ මූල කේතය සපයයි. ඔබ පද්ධතිය සක්රිය කළ විට, රොඩෝස් ටයිමරය ආරම්භ වේ, එය විනාඩියකට වරක් මෙම උපයෝගීතාව ක්රියාත්මක කරයි. වත්මන් උෂ්ණත්වය /tmp/rodos_current_temp ගොනුවට ලියා ඇත, ඉන්පසු zabbix හට මෙම ගොනුව සංවේදකයක් ලෙස නිරීක්ෂණය කළ හැක.

වින්‍යාස ගබඩා මාධ්‍යය / දත්ත නාමාවලියෙහි සවි කර ඇත.

පද්ධතිය ආරම්භ කර එය ක්‍රියාත්මක කිරීම සඳහා සූදානම් කරන විට, පහත පණිවිඩය කොන්සෝලයේ දිස්වේ:

System starting, please wait

සූදානම් වීමේ කාර්යය සම්පූර්ණ කිරීමෙන් පසු, එය IP ලිපිනය පෙන්වීමට වෙනස් වනු ඇත:

current ip 192.168.1.32
Ready to work

උෂ්ණත්වය නිරීක්ෂණය සඳහා zabbix පිහිටුවීම

උෂ්ණත්වය නිරීක්ෂණය කිරීම සඳහා, පියවර 2 ක් කරන්න:

  • RODOS උපාංගය USB පෝට් එකට සම්බන්ධ කරන්න
  • zabbix හි දත්ත අයිතමයක් සාදන්න

Zabbix වෙබ් අතුරු මුහුණත විවෘත කරන්න:

  • වින්‍යාසය → ධාරක කොටස විවෘත කරන්න
  • අපගේ zabbix සේවාදායකයේ පේළියේ ඇති අයිතම මත ක්ලික් කරන්න
  • Create item මත ක්ලික් කරන්න

Buildroot: zabbix-server සමඟ හරස් වේදිකා ස්ථිරාංග නිර්මාණය කිරීම

පහත දත්ත ඇතුලත් කරන්න:

  • නම - ඔබේ අභිමතය පරිදි (උදාහරණයක් ලෙස, serverRoomTemp )
  • වර්ගය - zabbix නියෝජිතයා
  • යතුර - රොඩෝස්
  • වර්ගය-සංඛ්‍යා
  • ඒකක - සී
  • ඉතිහාස ගබඩා කාලය - ඉතිහාස ගබඩා කාලය. දින 10 ක් ඉතිරිව ඇත
  • ප්‍රවණතා ගබඩා කාලය - වෙනස්කම් වල ගතිකත්වය සඳහා ගබඩා කාලය. දින 30 ක් ඉතිරිව ඇත
  • නව යෙදුම - සේවාදායක කාමර උෂ්ණත්වය

සහ ADD බොත්තම ඔබන්න.
Buildroot: zabbix-server සමඟ හරස් වේදිකා ස්ථිරාංග නිර්මාණය කිරීම

වෙබ් අතුරු මුහුණත හරහා සැකසුම් කළමනාකරණය කරන්න

වෙබ් අතුරු මුහුණත PHP වලින් ලියා ඇත. ප්රධාන කාර්යයන් ඇත:

  • උපාංගයේ තත්ත්වය බලන්න
  • ජාල සැකසුම් වෙනස් කිරීම
    Buildroot: zabbix-server සමඟ හරස් වේදිකා ස්ථිරාංග නිර්මාණය කිරීම
  • පරිශීලක මුරපදය වෙනස් කිරීම
  • කාල කලාපය තේරීම
  • උපස්ථ / ප්‍රතිසාධනය / කර්මාන්තශාලා යළි පිහිටුවීම
  • බාහිර ධාවකයක් සම්බන්ධ කිරීමේ හැකියාව
  • පද්ධතිය යාවත්කාලීන කිරීම
    Buildroot: zabbix-server සමඟ හරස් වේදිකා ස්ථිරාංග නිර්මාණය කිරීම

වෙබ් අතුරු මුහුණතට ලොගින් වන්න මුරපදය ආරක්ෂිතයි. ආරම්භක පිටුව - අත්පොත.

Zabbix අතුරුමුහුණත් ලිපිනය: ${ip/dns}/zabbix
කළමනාකරණ අතුරුමුහුණත් ලිපිනය: ${ip/dns}/manage
Buildroot: zabbix-server සමඟ හරස් වේදිකා ස්ථිරාංග නිර්මාණය කිරීම

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 file=output/images/qemu.qcow2,format=qcow2,aio=නූල් -device virtio-scsi-pci,id=scsi0 -drive file=output/images/external.qcow2,format=qcow2,aio=නූල්

මෙම විධානය මඟින් cores 4ක්, 2048 RAM, KVM සක්‍රීය කර ඇති, බ්‍රිජ්0 මත ජාල කාඩ්පතක් සහ තැටි දෙකක් සහිත පද්ධතියක් ආරම්භ කරනු ඇත: පද්ධතිය සඳහා එකක් සහ postgresql සඳහා බාහිර එකක්.

පින්තූර Virtualbox තුළ පරිවර්තනය කර ධාවනය කළ හැක:

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

ඉන්පසු ඒවා virtualbox වෙත ආනයනය කර sata හරහා සම්බන්ධ කරන්න.

නිගමනය

ක්‍රියාවලියේදී, භාවිතයට සූදානම් නිෂ්පාදනයක් සෑදීමට මා උනන්දු විය - ඉතා අලංකාර නොවන අතුරු මුහුණතක් (මම ඒවා ලිවීමට කැමති නැත), නමුත් ක්‍රියා කරන සහ වින්‍යාස කිරීමට පහසු එකක් සමඟ.

KVM හි zabbix-උපකරණ ස්ථාපනය කිරීමේ අවසාන උත්සාහය මෙම පියවර නිවැරදි බව පෙන්නුම් කළේය (ස්ථාපනය අවසන් වූ පසු, පද්ධතිය ආරම්භ නොවේ). සමහර විට මම වැරදි දෙයක් කරනවා ඇති

ද්රව්ය

https://buildroot.org/

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න