در این مقاله ما قصد داریم نحوه نصب و کانفیگ آخرین ورژن نرم افزار مانیتورینگ شبکه Cacti را در آخرین ورژن های Ubuntu 16.04 LTS و Debian 9 آموزش دهیم. در این آموزش ما Cacti را از طریق سورس فایل ها نصب و کانفیگ خواهیم کرد.
ککتی یک ابزار مانیتورینگ اوپن سورس است که برای مانیتور کردن شبکه ها خصوصا دیوایس های شبکه مثل سوئیچ ها روترها و سرورها از طریق پروتکل SNMP ایجاد شده است. Cacti با end user ها در حال تعامل است و میتواند از طریق یک واسط تحت وب مدیریت شود.
تجهیزات مورد نیاز
سرویس LAMP نصب شده روی Debian 9
سرویس LAMP نصب شده روی Ubuntu 16.04
همچنین توصیه میشود مطالعه کنید :
سری آموزش های نصب و راه اندازی مانیتورینگ زبیکس در لینوکس
مرحله 1 : نصب و کانفیگ پیش نیاز های Cacti
1 - در دبیان 9 فایل sources list را باز کنید و برای اضافه کردن ریپازیتوری های contrib و non-free، با استفاده از دستور زیر باز کنید.
خط های زیر را به فایل sources.list اضافه کنید.
2 - پس از آن، با اجرا کردن دستورات زیر مطمئن شوید که سیستم Update شود.
3 - در سرور LAMP خود مطمئن شوید که PHP extension های زیر در سیستم موجود باشند.
4 - سپس با اجرا کردن دستور زیر، فایل کانفیگ PHP را ویرایش کرده و تنظیمات time zone را برای match شدن موقعیت جغرافیایی سرورتان تغییر دهید.
5 - سپس به دیتابیس MySQL یا MariaDB در سرور LAMP خود login کنید و برای نصب Cacti با اجرا کردن دستورات زیر یک Database ایجاد کنید.
در دستورات زیر نام دیتابیس، یوزر و پسورد مورد نظر خود را به نحوی تغییر دهید که با تنظیمات دلخواه شما انجام شود، همچنین برای دیتابیس Cacti یک پسورد قوی انتخاب کنید.
6 - همچنین، دستورات زیر را اجرا کنید تا به کاربر Cacti امکان پرمیژن select به تنظیمات data.timezone مای اسکیول را اعطا کنید.
7 - سپس فایل تنظیمات سرور MySQL را باز کنید و خط های زیر را در آخر فایل اضافه کنید.
خط های زیر را به پایان فایل 50-server.cnf یا mysqld.cnf اضافه کنید.
برای دیتابیس MariaDB همچنین خط زیر را به پایان فایل 50-server.cnf اضافه کنید.
8 - در نهایت سرویس های MySQL و Apache را برای اعمال تمامی تنظیمات restart کنید همچنین با استفاده از دستور زیر از وضعیت run بودن هر دو سرویس مطمئن شوید.
مرحله 2 : دانلود و آماده سازی نصب Cacti
9 - نصب Cacti از Source را با دانلود و extract کردن آخرین ورژن Cacti شروع میکنیم، سپس همه فایل های اکسترکت شده را در دایرکتوری root آپاچی (/var/www/html/) کپی میکنیم.
10 - فایل index.html را از دایرکتوری /var/www/html حذف میکنیم، همچنین فایل log ککتی را ایجاد کرده و در آخر به دایرکتوری root آپاچی permission میدهیم.
11 - سپس فایل کانفیگ Cacti را با استفاده از یک ادیتور همانند زیر باز میکنیم.
در زیر نمونه فایل config.php در Cacti را مشاهده میکنید. نام دیتابیس، یوزر و پسورد را که در مراحل بالاتر ایجاد کردیم، در آن جایگزین کنید. در صورتی که مسیر دایرکتوری cacti تا را میخواهید عوض کنید میتوانید بخش "url_path" را به مسیر مورد نیاز خود تغییر دهید.
12 - سپس، دیتابیس Cacti را که فایل آن "cacti.sql" میباشد از دایرکتوری /var/www/html و با استفاده از دستور زیر در MySQL وارد کنید.
13 - اکنون یک سری resources های اضافی را نصب میکنیم. از آنجایی که موتور Cacti اطلاعات دیوایس ها را با استفاده از پروتکل SNMP جمع آوری میکند و همچنین گزارش های تصویری را با استفاده از RRDtool نمایش میدهد، تمامی این پکیج ها را با استفاده از دستور زیر نصب میکنیم.
14 - با restart کردن سرویس snmpd، چک کنید که سرویس SNMP در حال اجرا باشد. همچنین وضعیت سرویس SNMP و پورت های باز آنرا بررسی کنید.
مرحله 3 : دانلود و نصب Cacti-Spine
15 - Cacti-Spine در حقیقت یک جایگزین نوشته شده به زبان C برای poller پیش فرض ککتی cmd.php میباشد. که در حقیقت زمان اجرا را سرعت میبخشد. برای کامپایل کردن Cacti-Spine poller از طریق سورس ابتدا باید پیشنیازهای زیر را در سیستم تان نصب کنید.
16 - بعد از اینکه dependency های بالا را نصب کردید آخرین ورژن Cacti-Spine را با استفاده از دستورات زیر دانلود، اکسترکت و کامپایل کنید.
17 - با استفاده از دستورات زیر Cacti-Spine را از سورس، کامپایل و نصب میکنیم.
18 - سپس با استفاده از دستورات زیر owner فایل باینری Spine را تعریف کنید. (اکانت root) و همچنین بیت SUID را با استفاده از دستور زیر برای ابزار Spine تعریف کنید.
19 - ابتدا فایل کانفیگ Cacti Spine را تغییر نام دهید و سپس نام دیتابیس، یوزر و پسورد را در فایل spine.conf همانند آنچه که در زیر نمایش داده شده اضافه کنید.
تنظیمات زیر را در فایل spine.conf ویرایش کنید.
مرحله 4 : تنظیمات نصب Cacti
20 - برای نصب Cacti یک مرورگر را باز کنید و آدرس IP یا domain name سرور خود را مثل URL زیر در آن وارد کنید.
ابتدا تیک Accept License Agreement را بزنید و سپس برای ادامه روی Next کلیک کنید.
21 - سپس از نصب تجهیزات مورد نیاز سیستم مطمئن شوید و برای ادامه Next را فشار دهید.
22 - در پنجره بعدی، New Primary Server را انتخاب کنید و برای ادامه Next کنید.
23 - سپس، مسیرهای باینری مهم و همچنین ورژن ها را بررسی کنید و مسیر باینری Spine را به /usr/local/spine/bin/spine تغییر دهید. هنگامی که کارتان تمام شد روی Next کلیک کنید.
24 - سپس بررسی کنید آیا همه پرمیژن های دایرکتوری سرور وب به درستی تعریف شده اند (پرمیژن write باید تعریف شود) و سپس برای ادامه روی Next کلیک کنید.
25 - در مرحله بعد تمامی template ها را چک کنید و به منظور خاتمه دادن به پروسه نصب روی دکمه Finish کلیک کنید.
26 - با استفاده از یوزر و پسورد پیش فرض همانند زیر به کنسول وب Cacti لاگین کنید و پسورد admin را تغییر دهید.
27 - سپس به قسمت Console -> Configuration -> Settings و تب Poller رفته و Poller Type را از cmd.php به باینری Spine تغییر دهید و برای ذخیره تغییرات به پایین صفحه آمده و روی دکمه Save کلیک کنید.
28 - سپس به Console -> Configuration -> Settings و تب Paths رفته و مسیر زیر را به فایل کانفیگ Cacti-Spine اضافه کنید. در بخش Alternate Poller Path مسیر Spine Config File Path را به مسیر زیر تغییر دهید.
برای اعمال تغییرات روی دکمه Save کلیک کنید.
29 - مرحله آخر که Cacti Poller را به منظور شروع جمع آوری Data از دیوایس های در حال مانیتور فعال میسازد، در حقیقت اضافه کردن یک تسک crontab جدید میباشد تا از هر دیوایس از طریق SNMP و هر 5 دقیقه یکبار کوئری بگیرد.
crontab job باید متعلق (owner) به اکانت www-data باشد.
خط زیر را به فایل cron اضافه کنید.
همچنین توصیه میشود : دستور cron و crontab در لینوکس به همراه 11 مثال عملی
30 - چند دقیقه منتظر بمانید تا Cacti اطلاعات را جمع آوری کند سپس به Graphs -> Default Tree رفته و در اینجا شما باید Graph های جمع آوری شده از دیوایس های در حال مانیتورتان را بتوانید مشاهده کنید.
شما اکنون با موفقیت Cacti را به همراه Cacti-Spine poller از سورس در آخرین نسخه از سرورهای Debian 9 و Ubuntu 16.04 LTS نصب و کانفیگ کردید.
ککتی یک ابزار مانیتورینگ اوپن سورس است که برای مانیتور کردن شبکه ها خصوصا دیوایس های شبکه مثل سوئیچ ها روترها و سرورها از طریق پروتکل SNMP ایجاد شده است. Cacti با end user ها در حال تعامل است و میتواند از طریق یک واسط تحت وب مدیریت شود.
تجهیزات مورد نیاز
سرویس LAMP نصب شده روی Debian 9
سرویس LAMP نصب شده روی Ubuntu 16.04
همچنین توصیه میشود مطالعه کنید :
سری آموزش های نصب و راه اندازی مانیتورینگ زبیکس در لینوکس
مرحله 1 : نصب و کانفیگ پیش نیاز های Cacti
1 - در دبیان 9 فایل sources list را باز کنید و برای اضافه کردن ریپازیتوری های contrib و non-free، با استفاده از دستور زیر باز کنید.
کد PHP:
# nano /etc/apt/sources.list
کد PHP:
deb http://ftp.ro.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.ro.debian.org/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main
2 - پس از آن، با اجرا کردن دستورات زیر مطمئن شوید که سیستم Update شود.
کد PHP:
# apt update
# apt upgrade
کد PHP:
# apt install php7.0-snmp php7.0-xml php7.0-mbstring php7.0-json php7.0-gd php7.0-gmp php7.0-zip php7.0-ldap php7.0-mcrypt
کد PHP:
# echo "date.timezone = Asia/Tehran" >> /etc/php/7.0/apache2/php.ini
در دستورات زیر نام دیتابیس، یوزر و پسورد مورد نظر خود را به نحوی تغییر دهید که با تنظیمات دلخواه شما انجام شود، همچنین برای دیتابیس Cacti یک پسورد قوی انتخاب کنید.
کد PHP:
# mysql -u root -p
mysql> create database cacti;
mysql> grant all on cacti.* to 'cactiuser'@'localhost' identified by 'cactipass';
mysql> flush privileges;
mysql> exit
6 - همچنین، دستورات زیر را اجرا کنید تا به کاربر Cacti امکان پرمیژن select به تنظیمات data.timezone مای اسکیول را اعطا کنید.
کد PHP:
# mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
# mysql -u root -p -e 'grant select on mysql.time_zone_name to cactiuser@localhost'
کد PHP:
# nano /etc/mysql/mariadb.conf.d/50-server.cnf [For MariaDB]
# nano /etc/mysql/mysql.conf.d/mysqld.cnf [For MySQL]
کد PHP:
max_heap_table_size = 98M
tmp_table_size = 64M
join_buffer_size = 64M
innodb_buffer_pool_size = 485M
innodb_doublewrite = off
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
کد PHP:
innodb_additional_mem_pool_size = 80M
8 - در نهایت سرویس های MySQL و Apache را برای اعمال تمامی تنظیمات restart کنید همچنین با استفاده از دستور زیر از وضعیت run بودن هر دو سرویس مطمئن شوید.
کد PHP:
# systemctl restart mysql apache2
# systemctl status mysql apache2
مرحله 2 : دانلود و آماده سازی نصب Cacti
9 - نصب Cacti از Source را با دانلود و extract کردن آخرین ورژن Cacti شروع میکنیم، سپس همه فایل های اکسترکت شده را در دایرکتوری root آپاچی (/var/www/html/) کپی میکنیم.
کد PHP:
# wget https://www.cacti.net/downloads/cacti-latest.tar.gz
# tar xfz cacti-latest.tar.gz
# cp -rf cacti-1.1.27/* /var/www/html/
کد PHP:
# rm /var/www/html/index.html
# touch /var/www/html/log/cacti.log
# chown -R www-data:www-data /var/www/html/
کد PHP:
# nano /var/www/html/include/config.php
کد PHP:
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'cactipass;
$database_port = '3306';
$database_ssl = false;
$url_path = '/';
12 - سپس، دیتابیس Cacti را که فایل آن "cacti.sql" میباشد از دایرکتوری /var/www/html و با استفاده از دستور زیر در MySQL وارد کنید.
کد PHP:
# mysql -u cactiuser cacti -p < /var/www/html/cacti.sql
OR
# mysql -u root cacti -p < /var/www/html/cacti.sql
کد PHP:
# apt install snmp snmpd snmp-mibs-downloader rrdtool
کد PHP:
# systemctl restart snmpd.service
# systemctl status snmpd.service
# ss -tulpn| grep snmp
مرحله 3 : دانلود و نصب Cacti-Spine
15 - Cacti-Spine در حقیقت یک جایگزین نوشته شده به زبان C برای poller پیش فرض ککتی cmd.php میباشد. که در حقیقت زمان اجرا را سرعت میبخشد. برای کامپایل کردن Cacti-Spine poller از طریق سورس ابتدا باید پیشنیازهای زیر را در سیستم تان نصب کنید.
کد PHP:
---------------- On Debian 9 ----------------
# apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev librrds-perl libsnmp-dev libmariadb-dev libmariadbclient-dev
---------------- On Ubuntu ----------------
# apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev librrds-perl libsnmp-dev libmysqlclient-dev libmysqld-dev
کد PHP:
# wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz
# tar xfz cacti-spine-latest.tar.gz
# cd cacti-spine-1.1.27/
کد PHP:
# ./bootstrap
# ./configure
# make
# make install
کد PHP:
# chown root:root /usr/local/spine/bin/spine
# chmod +s /usr/local/spine/bin/spine
کد PHP:
# mv /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
# nano /usr/local/spine/etc/spine.conf
کد PHP:
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass cactipass
DB_Port 3306
DB_PreG 0
مرحله 4 : تنظیمات نصب Cacti
20 - برای نصب Cacti یک مرورگر را باز کنید و آدرس IP یا domain name سرور خود را مثل URL زیر در آن وارد کنید.
کد PHP:
http://your_IP/install
21 - سپس از نصب تجهیزات مورد نیاز سیستم مطمئن شوید و برای ادامه Next را فشار دهید.
22 - در پنجره بعدی، New Primary Server را انتخاب کنید و برای ادامه Next کنید.
23 - سپس، مسیرهای باینری مهم و همچنین ورژن ها را بررسی کنید و مسیر باینری Spine را به /usr/local/spine/bin/spine تغییر دهید. هنگامی که کارتان تمام شد روی Next کلیک کنید.
24 - سپس بررسی کنید آیا همه پرمیژن های دایرکتوری سرور وب به درستی تعریف شده اند (پرمیژن write باید تعریف شود) و سپس برای ادامه روی Next کلیک کنید.
25 - در مرحله بعد تمامی template ها را چک کنید و به منظور خاتمه دادن به پروسه نصب روی دکمه Finish کلیک کنید.
26 - با استفاده از یوزر و پسورد پیش فرض همانند زیر به کنسول وب Cacti لاگین کنید و پسورد admin را تغییر دهید.
کد PHP:
Username: admin
Password: admin
27 - سپس به قسمت Console -> Configuration -> Settings و تب Poller رفته و Poller Type را از cmd.php به باینری Spine تغییر دهید و برای ذخیره تغییرات به پایین صفحه آمده و روی دکمه Save کلیک کنید.
28 - سپس به Console -> Configuration -> Settings و تب Paths رفته و مسیر زیر را به فایل کانفیگ Cacti-Spine اضافه کنید. در بخش Alternate Poller Path مسیر Spine Config File Path را به مسیر زیر تغییر دهید.
کد PHP:
/usr/local/spine/etc/spine.conf
29 - مرحله آخر که Cacti Poller را به منظور شروع جمع آوری Data از دیوایس های در حال مانیتور فعال میسازد، در حقیقت اضافه کردن یک تسک crontab جدید میباشد تا از هر دیوایس از طریق SNMP و هر 5 دقیقه یکبار کوئری بگیرد.
crontab job باید متعلق (owner) به اکانت www-data باشد.
کد PHP:
# crontab -u www-data -e
کد PHP:
*/5 * * * * /usr/bin/php /var/www/html/poller.php
همچنین توصیه میشود : دستور cron و crontab در لینوکس به همراه 11 مثال عملی
30 - چند دقیقه منتظر بمانید تا Cacti اطلاعات را جمع آوری کند سپس به Graphs -> Default Tree رفته و در اینجا شما باید Graph های جمع آوری شده از دیوایس های در حال مانیتورتان را بتوانید مشاهده کنید.
شما اکنون با موفقیت Cacti را به همراه Cacti-Spine poller از سورس در آخرین نسخه از سرورهای Debian 9 و Ubuntu 16.04 LTS نصب و کانفیگ کردید.