نحوه مانیتورینگ glsuterfs از طریق Zabbix

نحوه مانیتورینگ glsuterfs از طریق Zabbix
در این پست می‌خوانید:

GlusterFS (قایل سیستم Gluster ) یک سیستم قایل توزیع شده  منبع آزاد  که می تواند به صورت ساختمان بلوک برای ذخیره چندین petabytes از داده ها استفاده شود.

توی این مقاله قراره که باهم یاد بگیریم که چجوری می تونیم volume هایی در glusterfs موجود هستن رو  از طریق ابزار Zabbix مانیتور کنیم.اگه تعداد volume ها زیاد باشه یا نودهای زیادی درگیر glusterfs باشند بهتر و راحت تره که اونا رو از طریق یک ابزار مانند Zabbix به صورت متمرکز مدیریت کنیم.

برای اطلاعات بیشتر در مورد پیادسازی گلاستر این مقاله میتونه مفید باشه

دوتا اسکریپت داریم برای این کار که هر کردم رو برین اوکیه بیشتر تنظیمات سمت zabbix agent خواهد بود و در سمت zabbix سرور فقط کافیست فایل تمپلیت با فورمت xml را import کنیم

روش اول – اسکریپت اول

توی این روش می خوام از یک اسکریپت از سایت گیت هاب استفاده کنم که آدرسش رو واستون اینجا می زارم

لینک گیت هاب اسکریپ zabbix-glusterfs

این ابزار از یک اسکریپت پایتون در سمت agent برای ارسال اطلاعات به zabbix server استفاده می کند. درون این اسکریپت برای بدست آوردن اطلاعات مربوط به volume های glusterfs از اسکریپت gstatus استفاده شده که این اسکریپت کار جمع آوری اطلاعات و بررسی وضعیت glusterfs را تا حد زیادی برای ما راحت می کند. پس برای استفاده از روش اول حتما می بایست مطمین شویم که اسکریپت gstatus روی سیستم نصب و دارای حق دسترسی مناسبی است برای نصب gstatus می توانین از لینک گیتهاب زیر استفاده کنین

لینک گیت هاب اسکریپ gstatus

نکته : این اسکریپت برای ورژن glusterfs 3.4 به بالا طراحی شده و پیش نیاز های آن pyhton 2.6 به بالا و gluster CLI هست

برای نصب gstatus ما از python-setuptools استفاده می کنیم

 

sudo apt install python-setuptools

من فرض می کنم که یک سیستم دبیان بیس دارین اگه توزیع دیگه ای استفاده می کنین از مدیر پکیج مختص توزیع خودتون برای نصب python-setuptools استفاده کنین

بعد از نصب python-setuptools میریم سراغ نصب gstatus که از دستورات زیر استفاده می کنیم

git clone https://github.com/gluster/gstatus.git
cd gstatus
python setup.py install

این دستورات باعث میشه که اسکریپت gstatus در شاخه ی /usr/bin/ نصب شود و برای اجرای آن نیازی نیست که پسوند .py را وارد کنیم.

با زدن دستور gstatus می بایست خروجی دستور مانند زیر باشد

gstatus

Product: Community Capacity: 4.00 GiB(raw bricks)
Status: UNHEALTHY(3) 607.00 MiB(raw used)
Glusterfs: 5.5 4.00 GiB(usable from volumes)
OverCommit: No

اگر خروجی دستور بالا بدون ارور بود میشه نتیجه گرفت که اسکریپت gstatus به درستی روی سیست شما نصب شده و همه پبیش نیاز ها رعایت شده در صورت بروز هرگونه ارور ورژن پایتون و کتابخونه های پایتونتون رو چک کنین یا هم ی سرچی توی گوگل بزنین.

نکته : واسه اینکه اسکریپت مانیتورینگ کار بکنه حتما باید مطمین شین که این gstatus رو درست نصب کردین

نکته : خود این اسکریپت دارای option های متفاوتی است که می توانین با gstatus –help همه ی آن ها را مشاهده کنید.

در سمت agent حتما مطمین بشین که یوزر zabbix حق دسترسی های لازمه را دارا می باشد

بدین منظور دستور visudo را وارد و خطی برای این یوزر درست می کنیم

visudo

zabbix ALL=(ALL) NOPASSWD: gstatus_discovery.py

خوب الان یوزر zabbix در سمت agent توانایی استفاده از اسکریپت gstatus_discovery.py را با حق دسترسی sudo و بدون نیاز به وارد کردن پسورد رو داره

خوب بریم سراغ نصب و راه اندازی اسکریپت مانیتورینگ

در این بخش از دستور زیر رپازیتوری این اسکریپت رو از گیت هاب دانلود و اسکریپت gstatus_discovery.py را در مکانی مناسب در یکی از دایرکتوری های متفیر محیطی PATH قرار داده و دسترسی اجرایی به آن میدهیم

git clone https://github.com/MrCirca/zabbix-glusterfs.git
cd zabbix-glusterfs
sudo cp gstatus_discovery.py /usr/local/bin/
sudo chmod +x /usr/local/bin/gstatus_discovery.py

خوب الان اگر دستور زیر را وارد کنیم خروجی باید بهمین شکل باشد

gstatus_discovery.py
OUTPUT::
{"data": [{"{#VOLUME_NAME}": "gv0"}, {"{#VOLUME_NAME}": "gv1"}]}

خوب اگه خروجی این دستور مانند بالا بود و خطایی نداد اسکریپت بدرستی نصب شده و سمت agent دیگه پیکربندی نداره بعد از اتمام حتما سرویس zabbix agent را ریستارت کنین

$ sudo systemctl restart zabbix-agent

در سمت Zabbix Server فقط کافیه که فایل با فورمت xml آن Template را در zabbix server ایمپورت کنیم

به قسمت Configuration / Templates رفته و بر روی import کلیک می کنیم. صفحه ای مانند تصویر زیر ظاهر می شود در قسمت import file فایل xml را وارذ و دکمه import را می زنیم

روش دوم – اسکریپت دوم

دز این روش می خوایم از یک اسکریپت دیگه استفاده کنیم که تقریبا میشه گفت پارامترهای یکسانی را برای مانبیتورینگ در اختیار ما قرار می دهند و فقط برتری که داره اینه که برای اجرای اون نیاز به نصب اسکریپت دیگه ای به نام gstatus نیس و خودش از دستورات محیط متن gluster برای گرفتن پارامترهای مانیتورینگ استفاده میکنه

اسم این اسکریپ glusix هست و شما میتوانید از طریق لینک زیر به آن دسترسی داشته باشین

لینک گیت هاب اسکریپ glusix

نصب این اسکریپت نیازمند یکسری پکیج های پیشنیازی است که می بایست قیل از اجرای آن مطمین شویم که روی سیستم ما نصب هستن نکته : من روی یک سیستم دبیان بیس فرضم رو می زارم شما از مدیر پکیج توزیع خودتون استفاده کنین

sudo apt install ksh bc gawk

برای نصب اسکریپت از دستورات زیر استفاده میکنیم

git clone https://github.com/sergiotocalini/glusix.git

sudo ./glusix/deploy_zabbix.sh

sudo systemctl restart zabbix-agent

پیکربندی سمت zabbix agent به پایان رسید برای پیکربندی سمت Zabbix Server فقط کافیه که فایل با فورمت xml آن Template را در zabbix server ایمپورت کنیم

به قسمت Configuration / Templates رفته و بر روی import کلیک می کنیم. صفحه ای مانند تصویر زیر ظاهر می شود در قسمت import file فایل xml را وارذ و دکمه import را می زنیم

نکته :در هر دو روش بعد از گذشتن زمان کوتاهی توی zabbix server می تونین پارامترهای مانیتورینگ glusterfs رو مشاهده کنین

یا حق

دیدگاه‌ها ۰
ارسال دیدگاه جدید