زبیکس یک ابزار مانیتورینگ شبکه قدرتمند و اوپن سورس میباشد که برای مانیتور کردن تجهیزات شبکه، نرم افزارهای سرور و عملکرد آنها مورد استفاده قرار میگیرد. Zabbix به زبان C و Java نوشته شده و اینترفیس وب آن به زبان PHP میباشد. در طول این مقاله ما نحوه نصب و راه اندازی مانیتورینگ زبیکس در لینوکس CentOS 8 و RHEL 8 را به شما شرح خواهیم داد.
ساختار زبیکس (Server - Client)
Zabbix به صورت کلاینت سروری کار میکند. به این صورت که کلاینت زبیکس روی سیستم هایی مثل لینوکس، یونیکس، ویندوز و مک نصب میشود سپس کلاینت زبیکس اطلاعات سیستم را به سرور زبیکس ارسال میکند. البته روی سیستم هایی که فاقد سیستم عامل میباشند هم میتوان از طریق پروتکل SNMP یا IPMI آنها را در زبیکس مانیتور کرد.
قابلیت های جدید در Zabbix 5.0 :
زبیکس 5 تغییرات فراوانی داشته که از مهمترین آنها میتوان به ساختار عوض شدن منوها، بهبود امنیت، بهبود عملکرد سرور، مدیریت و استفاده راحت برای مانیتورینگ تجهیزات شبکه، بهبود اتوماتیک کردن کارها، محیط پیشرفته تر، ارتباط با سایر پیام رسان ها مانند تلگرام و غیره ... و به روز رسانی تمپلیت ها و پلاگین ها و خیلی موارد دیگر که خارج از این مقاله میباشد، میتوان اشاره کرد. در صورتیکه میخواهید از ریز جزئیات آپدیت ها و قابلیت های جدید در Zabbix 5.0 مطلع شوید، له لینک های زیر مراجعه کنید.
What's New in 5.0 LTS
What's new in Zabbix 5.0.0
نحوه محاسبه سایز دیتابیس زبیکس برای نگهداری اطلاعات :
اطلاعات تنظیمات زبیکس نیازمند یک مقدار ثابتی از فضای دیسک است و بیشتر از این سایز افزایش نخواهد داشت. سایز دیتابیس زبیکس به این متغیرها بستگی دارد، که میزان دیتای ذخیره شده را تعریف میکند :
تعداد مقادیر پردازش شده در هر ثانیه
این مقدار تعداد میانگین مقادیر جدید سرور زبیکس است که هر ثانیه دریافت میکند. به طور مثال اگر ما 3000 آیتم برای مانیتورینگ و با فاصله زمانی 60 ثانیه برای رفرش هر آیتم داشته باشیم، تعداد مقدارها در هر ثانیه با عنوان 3000/60 = 50 محاسبه میشود. این به این معناست که 50 مقدار جدید، در هر ثانیه به دیتابیس زبیکس اضافه شده اند.
تنظیمات HouseKeeper برای History
زبیکس مقادیر را برای یک مدت زمان ثابت نگه میدارد. به صورت نرمال چندین هفته یا ماه. هر مقدار جدیدی به یک میزان مشخص فضای دیسک برای دیتا و ایندکس ها نیاز دارد. بنابراین اگر میخواهید به مدت 30 روز history را نگه دارید و در ثانیه 50 مقدار جدید دریافت میکنید، تعداد کل مقادیر چیزی حدود به 129600000 یا حدود 130M خواهد شد.
بسته به نوع دیتابیس مورد استفاده، نوع مقادیر دریافت شده (floats ،integers ،strings ،log ،files و ...) فضای دیسک برای نگهداری یک مقدار مجزا از 40 بایت به 100 بایت تغییر میکند. به صورت نرمال حدود 90 بایت به ازای مقداری برای آیتم های عددی میباشد. در این سناریو این بدان معناست که نیازمند 130M * 90 bytes = 10.9GB فضای دیسک خواهیم بود.
اندازه آیتم های text/log را نمیتوان هرگز به دقت پیش بینی کرد، اما میتوانید 500 بایت به ازای هر مقدار در نظر بگیرید.
تنظیمات HouseKeeper برای trend ها
زبیکس برای هر آیتم در جدول trends مجموعه ای از مقادیر به مدت 1 ساعت نگهداری میکند. دیتا برای trend کردن و گراف های طولانی مدت مورد استفاده قرار میگیرد. مدت زمان یک ساعت را نمیتوان customise کرد.
دیتابیس زبیکس بسته به نوع دیتابیس به ازای هر trend حدود 90 بایت نیاز دارد. فرض میکنیم که زبیکس بخواهد دیتای trend را به مدت 5 سال نگهداری کند. مقادیر برای 3000 آیتم نیازمند 3000*24*365* 90 = 2.2GB فضا به مدت یکسال یا 11GB به مدت 5 سال میباشد.
تنظیمات HouseKeeper برای Event ها
هر event ی از زبیکس تقریبا نیازمند 250 بایت از فضای دیسک میباشد. تخمین زدن تعداد event هایی که توسط زبیکس به صورت روزانه ایجاد میشود سخت است، در بدترین نوع سناریو به این صورت است که فرض کنید زبیکس در هر ثانیه یک event ایجاد میکند.
برای هر event ریکاور شده یک رکورد event_recovery ایجاد میشود. به صورت نرمال اکثر event ها ریکاور خواهند شد، بنابراین ما میتوانیم فرض کنیم که به ازای هر event یک رکورد event_recovery خواهیم داشت. این بدان معناست به ازای event مقدار 80 بایت اضافه مصرف میشود.
به صورت اختیاری event ها میتواند tags داشته باشد، هر رکورد tag نیازمند تقریبا 100 بایت از فضای دیسک میباشد. تعداد تگ ها به ازای event (مثلا #tags) به تنظیمات بستگی دارد. در نتیجه هر tag نیاز به تعداد tag ها ضربدر 100 بایت از فضای دیسک خواهد داشت.
این به این معناست که اگر بخواهیم به مدت 3 سال event نگهداری کنیم نیازمند فضای دیسکی به اندازه زیر میباشد.
جدول زیر شامل فرمول هایی است که برای محاسبه فضای دیسک مورد نیاز برای سیستم زبیکس مورد استفاده قرار میگیرد. در نتیجه میزان کل فضای دیسک مورد استفاده را با فرمول زیر محاسبه کرد.
فضای دیسک بلافاصله بعد از نصب زبیکس مورد استفاده قرار نخواهد گرفت. سایز دیتابیس افزایش پیدا خواهد کرد و در یک نقطه متوقف خواهد شد که بستگی به تنظیمات housekeeper دارد.
تنظیمات ساعت سیستم :
دقیق بودن ساعت و تاریخ سروری که زبیکس روی آن در حال اجرا هست بسیار مهم میباشد. در صورتی که در شبکه لوکال خود از سرویس ntp استفاده میکنید میتوانید از آن برای تنظیم کردن ساعت و تاریخ سرورتان استفاده کنید. به شدت توصیه میشود که تاریخ و ساعت سرور زبیکس و تمامی کلاینت های آن را با همدیگر تنظیم کنید که یکی باشد.
همچنین توصیه میشود مطالعه کنید :
نحوه تنظیم تاریخ، ساعت و منطقه زمانی سرور در لینوکس
نصب و راه اندازی Zabbix Server 5.0 LTS در CentOS 8 / RHEL 8
پیش نیازها :
برای اضافه کردن حداقل 500 هاست :
برای اضافه کردن حداقل 1000 هاست :
برای اضافه کردن حداقل 10000 هاست :
و دیتابیس MySQL 5.5.62 یا 8.0.x یا MariaDB 10.x
وب سرور Apache 1.3.12 یا بالاتر
php 7.2.0 یا بالاتر
دستوراتی که در طول آموزش بیان شده با دسترسی root اجرا کنید. ابتدا به یوزر root لاگین کنید :
در صورتیکه طرفدار SELinux نیستید، پیشنهاد میکنیم آن را غیرفعال کنید و به حالت Permissive ببرید. در صورتیکه SELinux رو غیر فعال نمیکنید در مراحل بعدی نحوه تنظیمات آن بیان شده است.
همچنین توصیه میشود مطالعه کنید :
آموزش نصب LAMP در CentOS 8
آموزش نصب LEMP در CentOS 8
نصب و راه اندازی وب سرور Apache :
در ابتدا سیستم مان را آپدیت میکنیم، سپس وب سرور آپاچی را به همراه ماژول هایش و یکسری ابزارهای کاربردی با استفاده از دستورات زیر نصب کنید.
بعد از پایان نصب شما میتوانید ورژن وب سرور Apache و PHP را با استفاده از یکی از دستورات زیر بررسی کنید.
برای راه اندازی وب سرور آپاچی، سرویس httpd و php-fpm را start کرده و برای فعال کردن این سرویس ها در هنگام Boot سیستم دستورات زیر را اجرا کنید.
برای بررسی صحت عملکرد این سرویس ها از دستورات زیر استفاده کنید.
نصب و راه اندازی دیتابیس MySQL/MariaDB :
شما میتوانید از دیتابیس های دیگری همانند Oracle و غیره استفاده کنید ولی ما در این آموزش از دیتابیس MariaDB برای ذخیره داده ها استفاده میکنیم. با استفاده از دستور زیر دیتابیس MariaDB را نصب میکنیم.
سپس سرویس MariaDB را راه اندازی و در Boot سیستم فعال میکنیم.
برای صحت عملکرد دیتابیس مان از دستور زیر استفاده کنید.
دیتابیس MySQL/MariaDB به صورت پیش فرض امن نیست. برای امنیت بخشیدن به دیتابیس مای اسکیول مان از اسکریپت زیر برای تعریف پسورد root، حذف کاربران ناشناخته (anonymous users)، غیرفعال کردن لاگین یوزر root و ... استفاده میکنیم. (به سوالات با "Y" پاسخ دهید و یک پسورد قوی و محکم برای یوزر root انتخاب کنید.)
به محض اینکه دیتابیس نصب و راه اندازی شد، شما باید دیتابیس zabbix و یوزر zabbix را ایجاد کنید. بجای 123456 یک پسورد قوی برای یوزر zabbix وارد کنید.
نصب و راه اندازی سرور Zabbix در CentOS 8 / RHEL 8
تمامی پیش نیازهایی که برای راه اندازی مانیتورینگ زبیکس نیاز بوده، نصب شده اند. اکنون با استفاده از دستور زیر ریپازیتوری زبیکس را نصب خواهیم کرد.
سپس زبیکس و پکیج های مورد نیازش را نصب خواهیم کرد.
انجام تنظیمات selinux :
SELinux یا Security Enhance Linux در حقیقت مکانیزمی است که یک لایه اضافی برای امنیت سیستم ایجاد میکند. در صورتیکه SELinux در سرور شما فعال است، نیاز است که تمامی دستورات این بخش را اجرا کنید. برای کسب اطلاعات بیشتر مقاله SELinux چیست؟ را مطالعه کنید.
توجه : در صورتیکه همانند آنچه که در مراحل ابتدایی مقاله، SELinux خود را غیر فعال کرده اید، این بخش را نادیده بگیرید.
در ابتدا پکیج ها و ابزارهای مورد نیاز selinux را همانند زیر نصب کنید.
به محض اینکه SELinux نصب شده، دایرکتوری zabbix-selinux را ایجاد کنید و با استفاده از دستور cd وارد آن شوید.
اکنون با استفاده از ادیتور متن vim، یک ماژول با نام zabbix_server_add.te برای SELinux ایجاد میکنیم.
و خطوط زیر را در آن کپی کنید.
فایل تنظیمات را ذخیره کنید و از آن خارج شوید. سپس با استفاده از دستور checkmodule فایلی که در بالا ایجاد کردیم را به ماژول SELinux تبدیل میکنیم.
سپس با استفاده از دستور semodule_package، ماژول zabbix_server_add.mod را کامپایل میکنیم.
بعد از آن، ماژول کامپایل شده zabbix_server_add.pp را در سیستم لود میکنیم.
برای انجام تنظیمات اضافی SELinux، دستور setbool را همانند زیر اجرا کنید.
همچنین توصیه میشود مطالعه کنید :
آشنایی با SELinux و انواع مدها و کانفیگ کردن آن (بخش اول)
بعد از تنظیمات SELinux، سرویس zabbix خود را restart کنید و آن را در Boot سیستم فعال کنید.
برای بررسی صحت عملکرد سرویس زبیکس از دستور زیر استفاده کنید.
همچنین میتوانید برای بررسی ورژن زبیکس نصب شده، از دستور rpm استفاده کنید.
از دستور netstat برای بررسی اینکه سرویس زبیکس مان در حال لیسن کردن روی پورت های خودش هست استفاده میکنیم.
اطلاعات اولیه را با دستور زیر در دیتابیس زبیکس وارد کنید. بعد از وارد کردن دستور از شما پسورد میخواهد که میبایست پسوردی که در مرحله قبل برای یوزر zabbix و دیتابیس اش ایجاد کردید وارد کنید. این مرحله کمی زمانبر است، لطفا صبور باشید.
تنظیمات Zabbix Server در CentOS 8 / RHEL 8
فایل تنظیمات زبیکس را از مسیر /etc/zabbix/zabbix_server.conf باز کنید، user، password و نام database زبیکس را که در مرحله قبل ایجاد کردیم را وارد کنید. (در صورتیکه همانند دستورات این آموزش پیش رفته اید و یوزر و دیتابیس zabbix را ایجاد کرده اید، بخش DBName و DBUser را تغییر ندهید و فقط DBPassword را برابر با پسورد خودتان بگذارید.)
تنظیمات PHP برای Zabbix :
فایل zabbix.conf را با استفاده از ادیتور متن مورد علاقه خود باز کنید :
خط زیر را پیدا کنید :
آنرا از کامنت خارج کنید، سپس منطقه زمانی درست خود را وارد کنید. (در سناریو ما Asia/Tehran میباشد)
سپس فایل php.ini را باز کنید و پارامترهای زیر را پیدا و همانند زیر تغییر دهید.
همچنین توصیه میشود مطالعه کنید :
نحوه پیدا کردن php.ini (فایل تنظیمات PHP) در لینوکس
سپس سرویس httpd و php-fpm را ریستارت کنید.
اکنون با استفاده از دستورات زیر به سرویس http / https و پورت های مورد استفاده زبیکس در فایروال مان دسترسی میدهیم.
تنظیمات Zabbix در اینترفیس وب :
برای ادامه نصب ما باید آدرس http://server_ip_or_name/zabbix را در مرورگر خود وارد کنیم.
روی دکمه Next step کلیک کنید. در این مرحله مطمئن شوید که تمام پیشنیازها نصب و Ok هستند. پیش نیازهای اختیاری هم ممکن است در لیست موجود باشد. اگر مشکلی در پیش نیازهای اختیاری باشد به رنگ نارنجی و به همراه یک وضعیت هشدار نمایش داده میشود. شما میتوانید ادامه نصب را بدون پیش نیازهای اختیاری هم انجام دهید. در صورتیکه مشکلی نیست بر روی دکمه Next step کلیک کنید.
در اینجا دیتابیس مان را باید کانفیگ کنیم. در بخش Password باید رمز عبور مربوط به یوزر و دیتابیس zabbix که در مراحل بالاتر ایجاد کردیم را وارد کنیم. سپس بر روی Next step کلیک کنید.
یک نام برای زبیکس نصب شده در بخش Name وارد کنید و بر روی Next step کلیک کنید.
در این مرحله ما خلاصه ای از تنظیمات انجام شده قبل از نصب را مشاهده میکنیم. روی Next step کلیک کنید.
نصب Zabbix Server به پایان رسید. بر روی دکمه Finish کلیک کنید.
به محض اینکه مراحل نصب به پایان برسد، زبیکس شما را به صفحه لاگین هدایت خواهد کرد. در اینجا نام کاربری و پسورد زبیکس خود را وارد کنید. Username و Password پیش فرض زبیکس به صورت زیر میباشد.
در اینجا شما میبایست داشبورد جدید مانیتورینگ زبیکس را مشاهده کنید.
همچنین توصیه میشود مطالعه کنید :
آموزش نصب Zabbix Agent در لینوکس
آموزش نصب Zabbix Agent در ویندوز
و کلی آموزش های مهیج دیگر درباره مانیتورینگ شبکه زبیکس در اینجا
خلاصه :
نصب و راه اندازی زبیکس 5 با موفقیت به پایان رسید. در این مقاله ما سعی کردیم به شما نحوه نصب مانیتورینگ قدرتمند زبیکس را در CentOS 8 / RHEL 8 یاد دهیم. در مقالات بعدی ما نحوه تنظیمات زبیکس و مانیتور کردن تجهیزات شبکه را یاد خواهیم داد. لطفا سوالات، مشکلات و نظرات خود را با ما مطرح کنید.
ساختار زبیکس (Server - Client)
Zabbix به صورت کلاینت سروری کار میکند. به این صورت که کلاینت زبیکس روی سیستم هایی مثل لینوکس، یونیکس، ویندوز و مک نصب میشود سپس کلاینت زبیکس اطلاعات سیستم را به سرور زبیکس ارسال میکند. البته روی سیستم هایی که فاقد سیستم عامل میباشند هم میتوان از طریق پروتکل SNMP یا IPMI آنها را در زبیکس مانیتور کرد.
قابلیت های جدید در Zabbix 5.0 :
زبیکس 5 تغییرات فراوانی داشته که از مهمترین آنها میتوان به ساختار عوض شدن منوها، بهبود امنیت، بهبود عملکرد سرور، مدیریت و استفاده راحت برای مانیتورینگ تجهیزات شبکه، بهبود اتوماتیک کردن کارها، محیط پیشرفته تر، ارتباط با سایر پیام رسان ها مانند تلگرام و غیره ... و به روز رسانی تمپلیت ها و پلاگین ها و خیلی موارد دیگر که خارج از این مقاله میباشد، میتوان اشاره کرد. در صورتیکه میخواهید از ریز جزئیات آپدیت ها و قابلیت های جدید در Zabbix 5.0 مطلع شوید، له لینک های زیر مراجعه کنید.
What's New in 5.0 LTS
What's new in Zabbix 5.0.0
نحوه محاسبه سایز دیتابیس زبیکس برای نگهداری اطلاعات :
اطلاعات تنظیمات زبیکس نیازمند یک مقدار ثابتی از فضای دیسک است و بیشتر از این سایز افزایش نخواهد داشت. سایز دیتابیس زبیکس به این متغیرها بستگی دارد، که میزان دیتای ذخیره شده را تعریف میکند :
تعداد مقادیر پردازش شده در هر ثانیه
این مقدار تعداد میانگین مقادیر جدید سرور زبیکس است که هر ثانیه دریافت میکند. به طور مثال اگر ما 3000 آیتم برای مانیتورینگ و با فاصله زمانی 60 ثانیه برای رفرش هر آیتم داشته باشیم، تعداد مقدارها در هر ثانیه با عنوان 3000/60 = 50 محاسبه میشود. این به این معناست که 50 مقدار جدید، در هر ثانیه به دیتابیس زبیکس اضافه شده اند.
تنظیمات HouseKeeper برای History
زبیکس مقادیر را برای یک مدت زمان ثابت نگه میدارد. به صورت نرمال چندین هفته یا ماه. هر مقدار جدیدی به یک میزان مشخص فضای دیسک برای دیتا و ایندکس ها نیاز دارد. بنابراین اگر میخواهید به مدت 30 روز history را نگه دارید و در ثانیه 50 مقدار جدید دریافت میکنید، تعداد کل مقادیر چیزی حدود به 129600000 یا حدود 130M خواهد شد.
کد PHP:
(30*24*3600)* 50 = 129.600.000
اندازه آیتم های text/log را نمیتوان هرگز به دقت پیش بینی کرد، اما میتوانید 500 بایت به ازای هر مقدار در نظر بگیرید.
تنظیمات HouseKeeper برای trend ها
زبیکس برای هر آیتم در جدول trends مجموعه ای از مقادیر به مدت 1 ساعت نگهداری میکند. دیتا برای trend کردن و گراف های طولانی مدت مورد استفاده قرار میگیرد. مدت زمان یک ساعت را نمیتوان customise کرد.
دیتابیس زبیکس بسته به نوع دیتابیس به ازای هر trend حدود 90 بایت نیاز دارد. فرض میکنیم که زبیکس بخواهد دیتای trend را به مدت 5 سال نگهداری کند. مقادیر برای 3000 آیتم نیازمند 3000*24*365* 90 = 2.2GB فضا به مدت یکسال یا 11GB به مدت 5 سال میباشد.
تنظیمات HouseKeeper برای Event ها
هر event ی از زبیکس تقریبا نیازمند 250 بایت از فضای دیسک میباشد. تخمین زدن تعداد event هایی که توسط زبیکس به صورت روزانه ایجاد میشود سخت است، در بدترین نوع سناریو به این صورت است که فرض کنید زبیکس در هر ثانیه یک event ایجاد میکند.
برای هر event ریکاور شده یک رکورد event_recovery ایجاد میشود. به صورت نرمال اکثر event ها ریکاور خواهند شد، بنابراین ما میتوانیم فرض کنیم که به ازای هر event یک رکورد event_recovery خواهیم داشت. این بدان معناست به ازای event مقدار 80 بایت اضافه مصرف میشود.
به صورت اختیاری event ها میتواند tags داشته باشد، هر رکورد tag نیازمند تقریبا 100 بایت از فضای دیسک میباشد. تعداد تگ ها به ازای event (مثلا #tags) به تنظیمات بستگی دارد. در نتیجه هر tag نیاز به تعداد tag ها ضربدر 100 بایت از فضای دیسک خواهد داشت.
این به این معناست که اگر بخواهیم به مدت 3 سال event نگهداری کنیم نیازمند فضای دیسکی به اندازه زیر میباشد.
کد PHP:
3*365*24*3600* (250+80+#tags*100) = ~30GB+#tags*100B
جدول زیر شامل فرمول هایی است که برای محاسبه فضای دیسک مورد نیاز برای سیستم زبیکس مورد استفاده قرار میگیرد. در نتیجه میزان کل فضای دیسک مورد استفاده را با فرمول زیر محاسبه کرد.
کد PHP:
Configuration + History + Trends + Events
تنظیمات ساعت سیستم :
دقیق بودن ساعت و تاریخ سروری که زبیکس روی آن در حال اجرا هست بسیار مهم میباشد. در صورتی که در شبکه لوکال خود از سرویس ntp استفاده میکنید میتوانید از آن برای تنظیم کردن ساعت و تاریخ سرورتان استفاده کنید. به شدت توصیه میشود که تاریخ و ساعت سرور زبیکس و تمامی کلاینت های آن را با همدیگر تنظیم کنید که یکی باشد.
همچنین توصیه میشود مطالعه کنید :
نحوه تنظیم تاریخ، ساعت و منطقه زمانی سرور در لینوکس
نصب و راه اندازی Zabbix Server 5.0 LTS در CentOS 8 / RHEL 8
پیش نیازها :
برای اضافه کردن حداقل 500 هاست :
- پردازنده : 2 Core
- مموری : 2 GB
برای اضافه کردن حداقل 1000 هاست :
- پردازنده : 4 Core
- مموری : 8 GB
- بعلاوه Raid-10
برای اضافه کردن حداقل 10000 هاست :
- پردازنده : 8 Core
- مموری : 16 GB
- بعلاوه Raid-10
و دیتابیس MySQL 5.5.62 یا 8.0.x یا MariaDB 10.x
وب سرور Apache 1.3.12 یا بالاتر
php 7.2.0 یا بالاتر
دستوراتی که در طول آموزش بیان شده با دسترسی root اجرا کنید. ابتدا به یوزر root لاگین کنید :
کد PHP:
# su -
کد PHP:
# setenforce 0
# sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
# cat /etc/selinux/config | grep SELINUX=
همچنین توصیه میشود مطالعه کنید :
آموزش نصب LAMP در CentOS 8
آموزش نصب LEMP در CentOS 8
نصب و راه اندازی وب سرور Apache :
در ابتدا سیستم مان را آپدیت میکنیم، سپس وب سرور آپاچی را به همراه ماژول هایش و یکسری ابزارهای کاربردی با استفاده از دستورات زیر نصب کنید.
کد PHP:
# yum update
# yum install httpd httpd-tools vim net-tools -y
# yum install php php-cli php-common php-devel php-pear php-mbstring php-gd php-bcmath php-ctype php-xml php-xmlreader php-xmlwriter php-session php-mbstring php-gettext php-ldap -y
بعد از پایان نصب شما میتوانید ورژن وب سرور Apache و PHP را با استفاده از یکی از دستورات زیر بررسی کنید.
کد PHP:
# httpd -v
# php -v
برای راه اندازی وب سرور آپاچی، سرویس httpd و php-fpm را start کرده و برای فعال کردن این سرویس ها در هنگام Boot سیستم دستورات زیر را اجرا کنید.
کد PHP:
# systemctl start httpd php-fpm
# systemctl enable httpd
# systemctl enable php-fpm
برای بررسی صحت عملکرد این سرویس ها از دستورات زیر استفاده کنید.
کد PHP:
# systemctl status httpd
# systemctl status php-fpm
نصب و راه اندازی دیتابیس MySQL/MariaDB :
شما میتوانید از دیتابیس های دیگری همانند Oracle و غیره استفاده کنید ولی ما در این آموزش از دیتابیس MariaDB برای ذخیره داده ها استفاده میکنیم. با استفاده از دستور زیر دیتابیس MariaDB را نصب میکنیم.
کد PHP:
# yum install mariadb-server mariadb -y
کد PHP:
# systemctl start mariadb
# systemctl enable mariadb
کد PHP:
# systemctl status mariadb
دیتابیس MySQL/MariaDB به صورت پیش فرض امن نیست. برای امنیت بخشیدن به دیتابیس مای اسکیول مان از اسکریپت زیر برای تعریف پسورد root، حذف کاربران ناشناخته (anonymous users)، غیرفعال کردن لاگین یوزر root و ... استفاده میکنیم. (به سوالات با "Y" پاسخ دهید و یک پسورد قوی و محکم برای یوزر root انتخاب کنید.)
کد PHP:
# mysql_secure_installation
به محض اینکه دیتابیس نصب و راه اندازی شد، شما باید دیتابیس zabbix و یوزر zabbix را ایجاد کنید. بجای 123456 یک پسورد قوی برای یوزر zabbix وارد کنید.
کد PHP:
# mysql -u root -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by '123456';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> flush privileges;
mysql> quit;
نصب و راه اندازی سرور Zabbix در CentOS 8 / RHEL 8
تمامی پیش نیازهایی که برای راه اندازی مانیتورینگ زبیکس نیاز بوده، نصب شده اند. اکنون با استفاده از دستور زیر ریپازیتوری زبیکس را نصب خواهیم کرد.
کد PHP:
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# yum clean all
سپس زبیکس و پکیج های مورد نیازش را نصب خواهیم کرد.
کد PHP:
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent -y
انجام تنظیمات selinux :
SELinux یا Security Enhance Linux در حقیقت مکانیزمی است که یک لایه اضافی برای امنیت سیستم ایجاد میکند. در صورتیکه SELinux در سرور شما فعال است، نیاز است که تمامی دستورات این بخش را اجرا کنید. برای کسب اطلاعات بیشتر مقاله SELinux چیست؟ را مطالعه کنید.
توجه : در صورتیکه همانند آنچه که در مراحل ابتدایی مقاله، SELinux خود را غیر فعال کرده اید، این بخش را نادیده بگیرید.
در ابتدا پکیج ها و ابزارهای مورد نیاز selinux را همانند زیر نصب کنید.
کد PHP:
# yum install policycoreutils checkpolicy setroubleshoot-server -y
کد PHP:
# mkdir -p ~/zabbix-selinux
# cd ~/zabbix-selinux/
کد PHP:
# vim zabbix_server_add.te
کد PHP:
module zabbix_server_add 1.1;
require {
type zabbix_var_run_t;
type tmp_t;
type zabbix_t;
class sock_file { create unlink write };
class unix_stream_socket connectto;
class process setrlimit;
class capability dac_override;
}
#============= zabbix_t ==============
#!!!! This avc is allowed in the current policy
allow zabbix_t self:process setrlimit;
#!!!! This avc is allowed in the current policy
allow zabbix_t self:unix_stream_socket connectto;
#!!!! This avc is allowed in the current policy
allow zabbix_t tmp_t:sock_file { create unlink write };
#!!!! This avc is allowed in the current policy
allow zabbix_t zabbix_var_run_t:sock_file { create unlink write };
#!!!! This avc is allowed in the current policy
allow zabbix_t self:capability dac_override;
کد PHP:
# checkmodule -M -m -o zabbix_server_add.mod zabbix_server_add.te
کد PHP:
# semodule_package -m zabbix_server_add.mod -o zabbix_server_add.pp
کد PHP:
# semodule -i zabbix_server_add.pp
کد PHP:
# setsebool -P httpd_can_network_connect 1
# setsebool -P httpd_can_connect_zabbix 1
# setsebool zabbix_can_network on
همچنین توصیه میشود مطالعه کنید :
آشنایی با SELinux و انواع مدها و کانفیگ کردن آن (بخش اول)
بعد از تنظیمات SELinux، سرویس zabbix خود را restart کنید و آن را در Boot سیستم فعال کنید.
کد PHP:
# systemctl restart zabbix-server zabbix-agent
# systemctl enable zabbix-server zabbix-agent
کد PHP:
# systemctl status zabbix-server
# systemctl status zabbix-agent
همچنین میتوانید برای بررسی ورژن زبیکس نصب شده، از دستور rpm استفاده کنید.
کد PHP:
# rpm -q zabbix-server-mysql
zabbix-server-mysql-5.0.0-1.el8.x86_64
کد PHP:
# netstat -ant | grep LISTEN
اطلاعات اولیه را با دستور زیر در دیتابیس زبیکس وارد کنید. بعد از وارد کردن دستور از شما پسورد میخواهد که میبایست پسوردی که در مرحله قبل برای یوزر zabbix و دیتابیس اش ایجاد کردید وارد کنید. این مرحله کمی زمانبر است، لطفا صبور باشید.
کد PHP:
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
تنظیمات Zabbix Server در CentOS 8 / RHEL 8
فایل تنظیمات زبیکس را از مسیر /etc/zabbix/zabbix_server.conf باز کنید، user، password و نام database زبیکس را که در مرحله قبل ایجاد کردیم را وارد کنید. (در صورتیکه همانند دستورات این آموزش پیش رفته اید و یوزر و دیتابیس zabbix را ایجاد کرده اید، بخش DBName و DBUser را تغییر ندهید و فقط DBPassword را برابر با پسورد خودتان بگذارید.)
کد PHP:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
تنظیمات PHP برای Zabbix :
فایل zabbix.conf را با استفاده از ادیتور متن مورد علاقه خود باز کنید :
کد PHP:
# vim /etc/php-fpm.d/zabbix.conf
کد PHP:
; php_value[date.timezone] =
کد PHP:
php_value[date.timezone] = Asia/Tehran
سپس فایل php.ini را باز کنید و پارامترهای زیر را پیدا و همانند زیر تغییر دهید.
کد PHP:
date.timezone = Asia/Tehran
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_execution_time = 300
max_input_time = 300
session.auto_start = 0
همچنین توصیه میشود مطالعه کنید :
نحوه پیدا کردن php.ini (فایل تنظیمات PHP) در لینوکس
سپس سرویس httpd و php-fpm را ریستارت کنید.
کد PHP:
# systemctl restart httpd php-fpm
کد PHP:
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --permanent --zone=public --add-port=10051/tcp
# firewall-cmd --permanent --zone=public --add-port=10050/tcp
# firewall-cmd --reload
تنظیمات Zabbix در اینترفیس وب :
برای ادامه نصب ما باید آدرس http://server_ip_or_name/zabbix را در مرورگر خود وارد کنیم.
روی دکمه Next step کلیک کنید. در این مرحله مطمئن شوید که تمام پیشنیازها نصب و Ok هستند. پیش نیازهای اختیاری هم ممکن است در لیست موجود باشد. اگر مشکلی در پیش نیازهای اختیاری باشد به رنگ نارنجی و به همراه یک وضعیت هشدار نمایش داده میشود. شما میتوانید ادامه نصب را بدون پیش نیازهای اختیاری هم انجام دهید. در صورتیکه مشکلی نیست بر روی دکمه Next step کلیک کنید.
در اینجا دیتابیس مان را باید کانفیگ کنیم. در بخش Password باید رمز عبور مربوط به یوزر و دیتابیس zabbix که در مراحل بالاتر ایجاد کردیم را وارد کنیم. سپس بر روی Next step کلیک کنید.
یک نام برای زبیکس نصب شده در بخش Name وارد کنید و بر روی Next step کلیک کنید.
در این مرحله ما خلاصه ای از تنظیمات انجام شده قبل از نصب را مشاهده میکنیم. روی Next step کلیک کنید.
نصب Zabbix Server به پایان رسید. بر روی دکمه Finish کلیک کنید.
به محض اینکه مراحل نصب به پایان برسد، زبیکس شما را به صفحه لاگین هدایت خواهد کرد. در اینجا نام کاربری و پسورد زبیکس خود را وارد کنید. Username و Password پیش فرض زبیکس به صورت زیر میباشد.
کد PHP:
Username: Admin
Password: zabbix
در اینجا شما میبایست داشبورد جدید مانیتورینگ زبیکس را مشاهده کنید.
همچنین توصیه میشود مطالعه کنید :
آموزش نصب Zabbix Agent در لینوکس
آموزش نصب Zabbix Agent در ویندوز
و کلی آموزش های مهیج دیگر درباره مانیتورینگ شبکه زبیکس در اینجا
خلاصه :
نصب و راه اندازی زبیکس 5 با موفقیت به پایان رسید. در این مقاله ما سعی کردیم به شما نحوه نصب مانیتورینگ قدرتمند زبیکس را در CentOS 8 / RHEL 8 یاد دهیم. در مقالات بعدی ما نحوه تنظیمات زبیکس و مانیتور کردن تجهیزات شبکه را یاد خواهیم داد. لطفا سوالات، مشکلات و نظرات خود را با ما مطرح کنید.