نحوه مانیتورینگ KVM از طریق Zabbix
سلام بر عاشقان لینوکس
خوب همون طور که در جریان هستین ٰZabbix یک نرم افزار قدرتمند در زمینه مانیتورینگ و جمع اوری اطلاعات در شبکه میباشد. با استفاده از این نرم افزار میتوانید بصورت Real-Time سرور، ماشین مجازی و دیگر سخت افزار های شبکه ای را هم زمان مانیتور کنین.
البته سعی می کنم توی یک مقاله جدا مفصل راجب خود Zabbix باهاتون صحبت کنیم ولی توی این مقاله قراره که باهم یاد بگیریم که چجوری می تونیم ماشین های مجازی ای که توی KVM هستن رو از طریق ابزار Zabbix مانیتور کنیم.اگه تعداد ماشین های مجازیتون زیاد باشه بهتر و راحت تره که اونا رو از طریق یک ابزار مانند Zabbix به صورت متمرکز مدیریت کنیم.
دوتا اسکریپت داریم برای این کار که هر کردم رو برین اوکیه ولی اطلاعات اسکریپت اولی ی مقدازی کامل تره
روش اول – اسکریپت اول
توی این روش می خوام از یک اسکریپت از سایت گیت هاب اسنتفاده کنم که آدرسش رو واستون اینجا می زارم
لینک گیت هاب اسکریپت zabbix-kvm-res
به طور کلی شما باید در دو سمت ( یعنی KVM Server و Zabbix Server ) یکسری تغییرات رو اعمال کنیم. اول میریم سراغ تغییرات سمت KVM Server
تنظیمات سمت KVM Server
ما برای ارسال برخی از پارامترهای مورد نیاز برای متانیتورینگ KVM می خوایم از یک اسکریپت به زبان Python (بهنرین زبان برنامه نویسی دنیا- نظر منه- به بقیه برنامه نویسا بر نخوره ? ?)
یک کتابخونه پیش نیاز داریم به نام libvirt-python که باید قبل از اجرای اسکریپت مطمین بشیم که روی سیستم نصب هستن.
از دستور pip که توی پیکیج python-pip هست استفاده میکنیم.
sudo apt install python-pip
من پیش فرض رو روی یک سییستم دبیان بیس می زارم اگه شما از توزیعی دیگه ای استفاده کینین اصلا مهم نیس و فقط به جای دستور apt از مدیر پیکیج خودتون استفاده کنین. بعد ار نصب این ابزار از دستور زیر برای نصب کتابخونه استفاده می کنیم
pip install libvirt-python
حالا میریم سراغ دانلود اسکریپت. برای دانلود اسکریپت شما می تونین از دستور git clone استفاده کنید ولی فقط یک فایل از این بسته رو برای سمت KVM سرور نیاز داریم و من از دستور Wget برای دانلود اون تک فایل استفاده می کنم – بعد از دانلود، فایل رو به دایرکتوری ای منتقل کنین که در متغیر محیطی PATH وجود داشته باشد و بشود اسکریپت را مستقیم اجرا کنیم . (من از /usr/local/bin/ استفاد میکنم) – حق دسترسی اجرایی هم میدیم بهش.
cd /usr/local/bin
wget https://github.com/bushvin/zabbix-kvm-res/raw/master/bin/zabbix-kvm-res.py
chmod a+x zabbix-kvm-res.py
حال باید توی فایل تنظیمات Zabbix Agent یک سری خطوط اضافه کنیم
به طور پیش فرض این فایل etc/zabbix/zabbix_agentd.conf/ می باشد . می تونین این فایل رو ادیت کنین ولی برای اینکه این فایل پیکربندی دست خورده نشه از دایرکتوری etc/zabbix/zabbix_agentd.d/ استفاده می کنیم . می تونیم یک فایل را باید به این دابیرکتوری منتقل کنیم یا هم خطوط آن را درانتهای همان فایل پیکربندی اضافه کنیم.
cd /etc/zabbix/zabbix_agentd.d
wget https://github.com/bushvin/zabbix-kvm-res/raw/master/zabbix_agentd.conf/UserParameters
حال سرویس zabbix agent را مجدد راه اندازی می کنیم
sudo systemctl restart zabbix-agent
نکته : بعد از این مرحله حق دسترسی یوزر zabbix یادتون نره. توی بخش دوم – اسکریپت دوم یکم راجب بش ضحبت می کنم
تنظیمات سمت Zabbix Server
در این بخش فقط کافیه که فایل با فورمت xml آن Template را در zabbix server ایمپورت کنیم
به قسمت Configuration / Templates رفته و بر روی import کلیک می کنیم. صفحه ای مانند تصویر زیر ظاهر می شود
در قسمت import file فایل xml را وارذ و دکمه import را می زنیم. برین ی قهوه بزنین بر بدن.
روش دوم – اسکریپت دوم
یک اسکریپت دیگه هم هست که کار مشابه همین اسکریپت رو انجام میده ولی ممکنه توی جستجوی اولتون بهش بر بخورین. اسم این اسکریپت Virbix هست. مراحل راه اندازیش خیلی راحته ولی ی نکنه داره که حتما باس اونو رعایت کنیم. اونم اینه که یوزر zabbix در zabbix agent حتما باید حق دسترسی مناسب برای اجرای اسکریپت رو داشته باشه .
تنظیمات سمت KVM Server
نصب ابزار های پیش نیازی – دوتا ابزار داریم که باید اونارو نصب کنیم که ksh و xmlinit هستن برای نصبشون از دستور زیر استفاده می کنیم
sudo apt install ksh libxml2-utils
برای اعمال تغییرات سمت agent از دستورات زیر استفاده می کنیمچچ
git clone https://github.com/sergiotocalini/virbix.git
sudo ./virbix/deploy_zabbix.sh "qemu:///system"
sudo systemctl restart zabbix-agent
دستور دوم یک مجموعه اسکریپت رو به طور پیش فرض می بره قسمت etc/zabbix/scripts/agentd/virbix/ خال باید به یوزر zabbix حق دسترسی مناسبی رو روی این اسکریپت بدیم . روش های متنوعی وجود داره هم می تونین از acl ها و هم می تونین از sudo برای این کار استفاده کنین. من می خوام از sudo استفاده کنم
این تنظیمات توی فایل etc/sudoers/ من هست ولی شما می تونین از هر روشی که دوست داشتین استفاده کنید
Cmnd_Alias ZABBIX_CMD = /etc/zabbix/scripts/agentd/virbix/virbix.sh
zabbix ALL=(root) NOPASSWD:ZABBIX_CMD
حالا به این دایرکنوری رفته etc/zabbix/zabbix_agentd.d/ و در درون فایل virbix.conf قبل از آدرس اسکریپت ی sudo اضافه می کنیم
نمونه مثال :
قبل
UserParameter=virbix[*],/etc/zabbix/scripts/agentd/virbix/virbix.sh -s $1 -a p=$2 -a p=$3 -a p=$4 -a p=$5
بعد
UserParameter=virbix[*],sudo /etc/zabbix/scripts/agentd/virbix/virbix.sh -s $1 -a p=$2 -a p=$3 -a p=$4 -a p=$5
همین کار رو برای همه خطوط انجام میدیم
تنظیمات سمت Zabbix Server
در این بخش فقط کافیه که فایل با فورمت xml آن Template را در zabbix server ایمپورت کنیم
به قسمت Configuration / Templates رفته و بر روی import کلیک می کنیم. دقیقا مشابه روش قبل.
به همین راحتی. امیدوارم مفید بوده باشه
یا حق