Logo for Parsclick
توجه: سایت برای مدت چند روز از تاریخ ۱۸ نوامبر از کار خواهد افتاد...

راه اندازی سیستم مانیتورینگ ZABBIX

  امید رجب آقا امید رجب آقا
  May 22, 2017 at 4:28 PM
  ۱ خرداد، ۱۳۹۶ ساعت ۱۶:۲۸
zabbix

سلام خدمت دوستان عزیز پارس کلیک.

سیستم مانیتوریگ زبیکس بی شک بزرگترین سیستم مانیتوریگ شبکه و نرم افزار در جهان است که توسط الکسی ولادیشو (Alexei Vladishev) به دنیا معرفی شد.

zabbix


این پروژه به عنوان پروژه تشخیص وضعیت شبکه های درون سازمانی در سال ۱۹۹۸ شروع به فعالیت کرد و دوسال بعد به صورت متن باز (با لایسنس gnu) به دنیا عرضه شد.

امروزه شرکت ها و سازمان های بزرگ در دنیا از این نرم افزار جهت مانیتوریگ ، وضعیت و اطلاع از خطا در شبکه و نرم افزار ها از آن استفاده می کنند.

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

بیشک این سیستم بدون رقیب نیست اما رقبای زبیکس سیستم های مانیتوریگی هستند که پر از نقص و محدودیت می باشند و ساختارشان به نحو قابل تعملی از زبیکس ضعیفتر یا بسیار گران هستند. مهمترین رقبای زبیکس Nagios ، Solarwinds، Prometheus ، Cacti، و Grafana می باشد.


چرا زبیس از همه بهتر است ؟

بهترین مزیت این نرم افزار متن باز بودن این نرم افزار است.


زبیکس دارای ساختار ساده و سریع است و بر روی تمام دستگاه ها ( Cisco , Micro Tick , Dlink , Huawei ) ، پروتکل های شبکه (ICMP, SNMP, SSH, Telnet, HTTP, TCP) ، نرم افرار ها ، دیتا بیس ها و تمامی سیستم عامل ها قابل نصب و آماده کاوش وضعیت می باشد.

این سیستم تمام زبان های برنامه نویسی حتی java را می تواند مانیتور کند و در کنار آن می تواند از دیتابیس هایی چون Oracle ، mariaDB ، Redis ، PostgerSQL ، MongoDB ، SQLight، SQLServer ، DB2 و ... پشتیبانی کند.


مزیت مهم دیگر آن استفاده از لینوکس و سیستم عامل های یونیکس لایکی چون CentOS , OracleLinux , Debian , Solaris , Fedora , Ubuntu , FreeBSD و... سمت سرور زبیکس و پشتیبانی از سیستم عامل های متنوع برای مانیتور شدن مانند ( Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, OS X, Tru64/OSF1, Windows 2000, Windows Server 2003, Windows XP Windows Vista, Windows Server 2008, Windows 7).


زبان های برنامه نویسی که زبیکس از آن استفاده کرده شامل C (سمت سیستم عامل )و PHP (سمت وب) می باشد . استفاده از C خود شاهد و گویای سرعت بالای این نرم افزار است که کامپتیبیلیتی بسیار زیادی با سیستم عامل های یونیکس لایک دارد . علت انتخاب PHP نیز این است که عموم برنامه نویسان دنیای نرم افزار می توانند آن را یاد گرفته و توسعه دهند. شاید بزرگترین قدرت زبیکس قابلیت توسعه پذیری آن می باشد و هر شرکت بسته به نیاز خود آن را توسعه می دهد.

روند کاری زبیکس

زبیکس در مجموع به دو بخش سرور و target (هدف) تقسیم می شود . بخش سرور خود شامل بخش هایی چون دشبرد و دیتابیس می باشد. روند جمع آوری اطلاعات در زبیکس بنا به نوع دستگاه ، سیستم عامل و نرم افزار متفاوت است . برای هندل کردن این تفاوت ها میان تارگت ها ، زبیکس فلسفه ای به نام Template را مطرح می نماید . این تمپلیت ها بر اساس حساسیت عمومی بر روی یک سیستم عامل خواس یا دستگاه خواص ساخته شده و عمدتا پارامتر های کامل و عمومی را جمع آوری و نمایش می دهد. عموما تمپلیت های خود زبیکس برای خیلی از روند ها کافی می باشند اما خود شما بسته به نیازتان می توانید تمپلیت آماده کنید یا از سایت زبیکس و گیت هاب بسته به نیازتان آن ها را نصب و راه اندازی نمایید. تمپلیت ها عموما با نرم افزار ی به اسم Zabbix Agent تعامل بر قرار می کنند. این نرم افزار بر روی سیستم عاملتان نصب شده و دیتا هایی را سمت سرور زبیکس می فرستد و تمپلیت مورد نظر شما آن ها را به بر اساس رول ها و پارامتر ای تعریف شده جمع آوری و تحویل بخش های مختلف زبیکس سرور می دهد.

زبیکس ایجنت بر روی سیستم عامل های قابل دسترسی تان نصب می شود اما اگر سرور ی با دسترسی محدود یا دیوایسی مانند سیسکو داشتید که امکان نصب نرم افزار زبیکس ایجنت در آن را ندارید می بایست از پروتکل هایی چون ICMP و SNMP استفاده کنید.

گاهی مواقع نیز لازم است روندی که می خواهید مانیتور کنید را در زمان های خاصی، همراه با پارامتر های مورد نظرتان از سمت سرور یا کلاینت به زبیکس سرور ارسال کنید. برای این امر نرم افزاری به اسم Zabbix Sender این وظیفه را به عهده می گیرد تا مقادیر خروجی از اسکریپت شما را برای Zabbix Server ارسال نماید.

گاهی وقت ها نیز لازم است زبیکس سرور اسکریپتی را بر روی سیستم عامل مقصد ران و نتیجه را به سرور پاس بدهد ، که این نیز راهکارش با get انجام پذیر است.

اطلاعات دریافتی از سمت زبیکس به صورت گراف و گزارش اتفاقات قابل رویت هستند. همچنین این اتفاقات و گزارشات می توانند به صورت ایمیل ، مسیج ، تلگرام و سیستم های Voip به ما گزارش شوند.

شاید کمی گیج شده باشید اما لازم بود موارد مذکور را عرض کنم تا با کار کرد آن بیشتر آشنا شوید، اما قصد ما در این مقاله راه اندازی اولیه یک زبیکس سرور است و در مقالات بعدی سناریویی را با هم انجام خواهیم دادتا با زبیکس ایجنت ، زبیکس سندر و زبیکس گت آشنا شوید.

راه اندازی Zabbix

راه اندازی سیستم مانیتورینگ زبیکس در دو مرحله انجام پذیر می باشد که مربوط به راه اندازی زبیکس سرور (Zabbix Server) و زبیکس ایجنت (Zabbix Agent) می باشد.

زبیکس سرور (همان گونه که از اسمش میتوان فهمید) همان سیستم اصلی زبیکس می باشد که از دو بخش بک اند و فرانت اند تشکیل شده که یک Dashboard نیز برای ما آماده می سازد.

زبیکس ایجنت نیز همان ارسال کننده اطلاعات و گزارشات سمت سیستم عامل هدف، جهت مانیتور است.

موارد مورد نیاز برای کار با زبیکس

  1. داشتن مهارت های شبکه (حداقل نتورک پلاس).
  2. دانش کافی از سیستم عامل های یونیکس لایک بیش از حد مهم است.
  3. دانش حد اقلی از دیتابیس .
  4. داشتن هنری به نام صبر و حوصله در زمان کار و یادگیری.

نصب Zabbix Server

قبل از نصب زبیکس لازم است بدانید نسخه های مختلف از زبیکس سرور آماده به نصب و پشتیبانی هستند . اما به علت بالا رفتن امنیت زبیکس در نسخه ۳ به بالا بنده از نسخه استیبل ۳.۲ استفاده می کنم.

زبیکس را می توان بر روی سیستم های متنوع یونیکس لایک نصب کرد اما من بنا به سلیقه شخصی ام بر روی CentOS نصب می کنم . چون اکثر سازمان ها و سرور های اینتر پرایز از RedHat بیس ها استفاده می کنند و لازم میدانم بر روی آن این پروسه را آموزش دهم.

شما می توانید زبیکس را به صورت Virtual وداکرآیز (در آینده در مورد داکر نیز صحبت خواهم کرد) نیز نصب کنید.

مراحل نصب Zabbix Server بر روی CentOS

۱. نصب CentOS به عنوان سرور (در این لینک مراحل نصب لینوکس ارائه شده)


۲. اضافه کردن آدرس منبع نرم افزاری زبیکس بر روی CentOS.

برای نصب ورژن های مختلف زبیکس می بایست بر روی سیستم عاملتان آدرس منبع نرم افزاری اش را اضافه کنید. با توجه به اینکه بنده قصد دارم از ورژن ۳.۲ برای آموزش استفاده کنم بنابر این به سایت زبیکس رفته و دستور زیر را وارد می کنم.


rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

برای اینکه نرم افزار های ریپازیتوری اضافه شده را به لیست کلی اضافه کنید می بایست دستور زیر را وارد کنید.


yum list updates .rpm

۳. نصب زبیکس سرور.

قبل از نصب زبیکس باید بدانید زبیکس به اطلاعاتی که جمع آوری میکند را وارد یک دیتابیس می کند که من مای اس کیو ال را ترجیح می دهم. علت انتخاب mysql این است که این دیتابیس بسیار راه اندازی ساده دارد و کاملا هم شناخته شده می باشد.

همچنین با توجه به اینکه دشبردش یک وب اپلیکیشن است ، بنده از آپاچی به عنوان وب سرور استفاده خواهم کرد. در مجموع شما نیاز به دانستن اطلاعات اولیه از لمپ و نصب آن را دارید.


بنا بر این پیشنهاد می کنم اگر LAMP را نمی شناسید آن را یک بار راه اندازی و بعد زبیکس را نصب کنید.(آموزش راه اندازی LAMP در پارس کلیک داده شده)

دستور زیر ، زبیکس را با تمام دیپندنسی های مورد نیازش که با مای اس کیوال سازگار است را دانلود می کند.


yum install zabbix-server-mysql zabbix-web-mysql

این پایان کار نیست . تازه همه چیز شروع شده است.

پس از نصب می بایست شرایط را برای به راه افتادن زبیکس آماده کنیم.

ابتدا از دیتابیسش شروع می کنیم و یک دیتابیس برای زبیکس می سازیم تا تیبل های مورد نیازش که آماده نیز است را در درونش قرار دهیم.

قبل از هر کار وارد دیتابیستان شوید:


mysql -uroot -p

پس از ورود به MySQL CLI می بایست دستورات مورد نیاز برای ساخت دیتابیس را وارد کرد.


create database zabbix character set utf8 collate utf8_bin;

در این جا ما یک دیتابیس داریم که نامش zabbix است و باید امنیت و دسترسی هایش تنظیم کنیم.


grant all privileges on zabbix.* to zabbix@localhost identified by 'رمز دیتابیس';

تا اینجای کار دیتا بیس ساخته شد و همه چیز آماده است تا تیبیل های دیتابیس را در درونش قرار دهیم . پس از MySQL CLI خارج شوید ( کلید ترکیبی کنتر C و دستور quit; شما خارج می کند ) و دستور زیر را جهت وارد کردن تیبل ها به دیتابیس زبیکس وارد کنید.

توجه داشته باشید ممکن است این پروسه به طول بینجامد. پس کمی حوصله کنید.


zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uzabbix -p zabbix

دستوری که وارد کردید مربوط به زیپ فایل آماده است که محتوی ۳ فایل است که مربوط به تیبل هاست . دستور zcat نیز آنها را از درون آن خوانده و خروجی را در داخل دستور بعد پایپ می کند تا دیتابیس تیبیل هایش را دریافت کند.

تا اینجای کار نصب با موفقیت به اتمام رسید ولی تنظیمات اولیه برای بالا آمدن سیستم انجام نشده.

۴. تنظیمات اولیه برای راه اندازی زبیکس.

همانگونه که اشاره شد همه چیز بعد از مراحل نصب به اتمام نمیرسد و زبیکس برای بالا آمدن بازی های زیادی از خود نشان می دهد . اما اگر کمی مفاهیم لینوکسی و وبی را با هم ادقام کنید ، میتوانید به راحتی این مراحل را متوجه و با موفقیت به اتمام برسانید.

پس از نصب زبیکس یک سری فایل و دایرکتوری (فولدر) در زیر شاخه /etc ساخته می شود.

مهمترین فایل که می بایست اطلاعات دیتابیس را در آن وارد کنید /etc/zabbix/zabbix_server.conf می باشد که برای راه اندازی می بایست خط های زیر را یا از حالت کامنت خارج کنید یا آن ها را بر اساس مشخصات دیتابیستان تکمیل نمایید.


DBHost=localhost
DBName=نام دیتابیس
DBUser=یوزرنیم
DBPassword=پسورد

فایل مهم دیگری هم وجود دارد که برای تنظیمات مربوط به بخش وب و دشبردش است. آدرس کامل آن /etc/httpd/conf.d/zabbix.conf می باشد.

پرامتر هایی که زبیکس برای این بخش به صورت دیفالت پیشنهاد داده پرامتر های منطقی می باشد اما بسته به پروژه خود می بایست تغییر کند . شاید مطالعه بیشتر را به عهده شما قرار دهم بهتر باشد اما این بخش ممکن است در اسکیل های بزرگ برای شما مهم باشد. مخصوصا memory_limit.

اما به هر حال تنها چیزی که می بایست تغییر کند تایم زون شماست.

دستور زیر تایم زون را به ایران تغییر می دهد:


php_value date.timezone Asia/Tehran

دستور مشابه را پیدا و آن کامنت و ادیت کنید با اینکه همین را در کنارش اضافه نمایید.

تا اینجا همه چی آماده راه افتادن است اما در این بین عموما چند چیز بازی در می آورند . اول از همه قوانین ست شده در iptables می باشد و دومی SELinux.

پیشنهاد بنده این است که اگر برایتان امنیت زیاد مهم نیست کلا هر دو را غیر فعال نمایید . اما اگر محدودیت دارید ، پورت های 10050 , 10051 , 80 و 22 را در سیستم باز نگه دارید و دستور زیر را در کامند لاین وارد کنید :


setsebool -P httpd_can_connect_zabbix on

در اینجا تقریبا همه جیز به پایان رسیده اما من همیشه برای به وجود نیامد هر مشگلی owner فایل ها و دایرکتری های zabbix را به یوزر زبیکس تخصیص می دهم تا به مشگل نخورند.


chown zabbix:zabbix /etc/zabbix/ -R

حالا سرویس هایی چون mysql ، zabbix-server و apache را استارت می کنیم تا بتوانیم همه چیز را برای بالا آمدن دشبرد زبیکس آماده کنیم. دستورات زیر را وارد کامند لاین کنید.


systemctl start zabbix-server


systemctl enable zabbix-server


systemctl restart httpd


systemctl restart mariadb


۶. zabbix dashboard


برای مشاهده دشبرد زبیکس یک بروزر باز کنید و ایپی سرور زبیس را وارد کنید و در آخر آن /zabbix را وارد کنید تا وارد دشبرد زبیکس شوید. با این فرمت: http://server-ip/zabbix

اگر همه چیز درست باشد می بایست همچین چیزی را مشاهده بفرمایید:

با زدن دکمه next step به مرحله بعد وارد شده و دستورات تا بررسی شود که همه چیز درست ست شده و یا همه چیز نصب و در حال اجراست.


در این مرحله اگر هر گونه مشگلی بود با بنده در تماس باشید تا مشگل برسسی شود.

پس از بررسی و مشاهده اینکه همه چیز بدون مشگل در حال اجراست می بایست بر روی دکمه next step کلیک کنید و اطلاعات دیتابیس را در درون آن بریزید.

سپس next step و دباره next step تا آخرین مرحله که یک status از تمام اطلاعات وارد شده می دهد . اگر همه چیز درست وارد شده دباره next step و سپس بعد Finish.

در آخر اگر وارد پنل login شدید شما موفق شدید همه مراحل را به درستی پشت سر بگذارید .

برای ورود به پنل زبیکس از یوزر Admin و پسورد zabbix استفاده نمایید . (حروف بزرگ و کوچک مهم هستند)

به شما تبریک می گویم . شما توانستید بهترین و بزرگترین سیستم مانیتورینگ را راه اندازی کنید.

امیدوارم توانسته باشم نصب زبیکس را به شما آموزش دهم.اما این پایان کار نیست و می بایست دیتا گدرینگ و استفاده از دشبرد زبیکس را در مقالات دیگر به شما آموزش دهم.
به هر دلیل اگر شما توانایی راه اندازی سرور را نداشته باشید و فقط برایتان مهم باشد زبیکس سرور داشته باشید ، بنا بر این پکیج ماده زبیکس سرور را با نام zabbix appliance را از سایت زبیکس دانلود کنید. این پکیچ با فرمت های مختلف مانند iso قابل دسترسی است. برای راه اندازی آن فقط لازم است آن را دانلود و نصب کنید.
لازم به ذکر است برای تمای سیستم های مجازی مانند kvm ، virtual box، VMware و ... یک فایل برای ایمپورت موجود می باشد.برای دانلود این فایل ها بهترین منبع سایت zabbix.com میباشد که بسیار راحت است.
به هر ترتیب اگر مشگلی بود خوشحال می شوم تا بتوانم مشگلتان را حل کنم.