วิธีการติดตั้ง Cacti ด้วย Cacti-Spine ใน Debian และ Ubuntu
ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีติดตั้งและกำหนดค่าเครื่องมือตรวจสอบเครือข่าย Cacti ใน Debian และ Ubuntu 16.04 LTS เวอร์ชันล่าสุด Cacti จะถูกสร้างและติดตั้งจากไฟล์ต้นฉบับในคู่มือนี้
Cacti เป็นเครื่องมือตรวจสอบโอเพ่นซอร์สที่สร้างขึ้นสำหรับตรวจสอบเครือข่าย โดยเฉพาะอุปกรณ์เครือข่าย เช่น สวิตช์ เราเตอร์ เซิร์ฟเวอร์ ผ่านโปรโตคอล SNMP Cacti โต้ตอบกับผู้ใช้ปลายทางและสามารถจัดการได้ผ่านอินเทอร์เฟซเครื่องมือเว็บ
ความต้องการ
- ติดตั้ง LAMP Stack ใน Debian 9
- ติดตั้ง LAMP Stack ใน Ubuntu 16.04 LTS
ขั้นตอนที่ 1: ติดตั้งและกำหนดค่าข้อกำหนดเบื้องต้นสำหรับ Cacti
1. ใน Debian 9 ไฟล์รายการโอเพ่นซอร์สสำหรับการแก้ไข และเพิ่มที่เก็บข้อมูล contrib และ ไม่ฟรี ลงใน ไฟล์โดยเปลี่ยนบรรทัดต่อไปนี้:
nano /etc/apt/sources.list
เพิ่มบรรทัดต่อไปนี้ในไฟล์ sources.list
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. หลังจากนั้น ตรวจสอบให้แน่ใจว่าได้อัปเดตระบบโดยออกคำสั่งด้านล่าง
apt update
apt upgrade
3. ใน LAMP Stack ของคุณ ตรวจสอบให้แน่ใจว่าส่วนขยาย 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
4. จากนั้น แก้ไขไฟล์การกำหนดค่า PHP และเปลี่ยนการตั้งค่าโซนเวลาให้ตรงกับตำแหน่งทางกายภาพของเซิร์ฟเวอร์ของคุณ โดยใช้คำสั่งด้านล่าง
echo "date.timezone = Europe/Bucharest" >> /etc/php/7.0/apache2/php.ini
5. จากนั้น เข้าสู่ระบบฐานข้อมูล MariaDB หรือ MySQL จากการติดตั้ง LAMP stack ของคุณ และสร้างฐานข้อมูลสำหรับการติดตั้ง Cacti โดยออกคำสั่งดังต่อไปนี้
เปลี่ยนชื่อฐานข้อมูล cacti ผู้ใช้ และรหัสผ่านเพื่อให้ตรงกับการกำหนดค่าของคุณเอง และเลือกรหัสผ่านที่คาดเดายากสำหรับฐานข้อมูล cacti
mysql -u root -p
mysql> create database cacti;
mysql> grant all on cacti.* to 'cactiuser'@'localhost' identified by 'password1';
mysql> flush privileges;
mysql> exit
6. นอกจากนี้ ให้ออกคำสั่งด้านล่างเพื่ออนุญาตให้ผู้ใช้ cacti เลือกสิทธิ์ในการตั้งค่า data.timezone ของ MySQL โดยออกคำสั่งด้านล่าง
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'
7. จากนั้น เปิดไฟล์การกำหนดค่าเซิร์ฟเวอร์ MySQL และเพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของไฟล์
nano /etc/mysql/mariadb.conf.d/50-server.cnf [For MariaDB]
nano /etc/mysql/mysql.conf.d/mysqld.cnf [For MySQL]
เพิ่มบรรทัดต่อไปนี้ต่อท้ายไฟล์ 50-server.cnf หรือ mysqld.cnf
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
สำหรับฐานข้อมูล MariaDB ให้เพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของไฟล์ 50-server.cnf:
innodb_additional_mem_pool_size = 80M
8. สุดท้าย ให้รีสตาร์ทบริการ MySQL และ Apache เพื่อใช้การตั้งค่าทั้งหมดและตรวจสอบสถานะบริการทั้งสองโดยออกคำสั่งต่อไปนี้
systemctl restart mysql apache2
systemctl status mysql apache2
ขั้นตอนที่ 2: ดาวน์โหลดและเตรียมการติดตั้ง Cacti
9. เริ่มติดตั้ง Cacti จากแหล่งที่มาโดยการดาวน์โหลดและแยกไฟล์เก็บถาวร Cacti เวอร์ชันล่าสุด และคัดลอกไฟล์ที่แยกทั้งหมดไปยังรูทเอกสารเว็บ Apache โดยใช้คำสั่งต่อไปนี้
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/
10. ลบไฟล์ index.html ออกจากไดเรกทอรี /var/www/html สร้างไฟล์บันทึก Cacti และให้สิทธิ์ Apache ในการเขียนไปยังเว็บ เส้นทางราก
rm /var/www/html/index.html
touch /var/www/html/log/cacti.log
chown -R www-data:www-data /var/www/html/
11. ถัดไป แก้ไขไฟล์การกำหนดค่า cacti และแก้ไขบรรทัดต่อไปนี้ตามที่แสดงในตัวอย่างด้านล่าง
nano /var/www/html/include/config.php
ตัวอย่างไฟล์ Cacti config.php เปลี่ยนชื่อฐานข้อมูล cacti ผู้ใช้และรหัสผ่านตามลำดับ
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'password1;
$database_port = '3306';
$database_ssl = false;
$url_path = '/';
12. จากนั้นเติมฐานข้อมูล cacti ด้วยสคริปต์ cacti.sql จากไดเร็กทอรี /var/www/html/ โดยใช้คำสั่งด้านล่าง
mysql -u cactiuser cacti -p < /var/www/html/cacti.sql
13. ตอนนี้ให้ติดตั้งทรัพยากรเพิ่มเติม เนื่องจากกลไก Cacti รวบรวมข้อมูลอุปกรณ์ผ่านโปรโตคอล SNMP และแสดงกราฟิกโดยใช้ RRDtool ติดตั้งทั้งหมดโดยออกคำสั่งต่อไปนี้
apt install snmp snmpd snmp-mibs-downloader rrdtool
14. ตรวจสอบว่าบริการ SNMP เปิดและทำงานอยู่หรือไม่โดยรีสตาร์ท snmpd daemon โดยออกคำสั่งด้านล่าง ตรวจสอบสถานะ snmpd daemon และพอร์ตที่เปิดอยู่ด้วย
systemctl restart snmpd.service
systemctl status snmpd.service
ss -tulpn| grep snmp
ขั้นตอนที่ 3: ดาวน์โหลดและติดตั้ง Cacti-Spine
15. Cacti-Spine เป็นการแทนที่ด้วยภาษา C สำหรับโพลเลอร์เริ่มต้น cmd.php Cacti-Spine ช่วยให้การดำเนินการเร็วขึ้น ในการรวบรวม Cacti-Spine pooler จากแหล่งต่างๆ ให้ติดตั้งการขึ้นต่อกันที่จำเป็นด้านล่างในระบบของคุณ
---------------- 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
16. หลังจากที่คุณติดตั้งการอ้างอิงข้างต้นแล้ว ให้ดาวน์โหลดไฟล์เก็บถาวร Cacti-Spine เวอร์ชันล่าสุด แยก tarball และคอมไพล์ cacti-spine โดยออกชุดคำสั่งต่อไปนี้ .
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/
17. คอมไพล์และติดตั้ง Cacti-Spine จากแหล่งที่มาโดยใช้คำสั่งต่อไปนี้
./bootstrap
./configure
make
make install
18. ถัดไป ตรวจสอบให้แน่ใจว่าไบนารีของกระดูกสันหลังเป็นเจ้าของโดยบัญชีรูท และตั้งค่าบิต suid สำหรับยูทิลิตี้กระดูกสันหลังโดยการรันคำสั่งต่อไปนี้
chown root:root /usr/local/spine/bin/spine
chmod +s /usr/local/spine/bin/spine
19. ตอนนี้ แก้ไขไฟล์การกำหนดค่า Cacti Spine และเพิ่มชื่อฐานข้อมูล cacti ผู้ใช้ และรหัสผ่านลงในไฟล์ conf Spine ดังแสดงในตัวอย่างด้านล่าง
nano /usr/local/spine/etc/spine.conf
เพิ่มการกำหนดค่าต่อไปนี้ลงในไฟล์กระดูกสันหลัง.conf
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass password1
DB_Port 3306
DB_PreG 0
ขั้นตอนที่ 4: การตั้งค่าตัวช่วยสร้างการติดตั้ง Cacti
20. หากต้องการติดตั้ง Cacti ให้เปิดเบราว์เซอร์และไปที่ที่อยู่ IP ของระบบหรือชื่อโดเมนของคุณที่ URL ต่อไปนี้
http://your_IP/install
ขั้นแรก ตรวจสอบ ยอมรับข้อตกลงใบอนุญาต และกดปุ่ม ถัดไป เพื่อดำเนินการต่อ
21. ถัดไป ตรวจสอบว่าความต้องการของระบบหรือไม่ แล้วกดปุ่ม ถัดไป เพื่อดำเนินการต่อ
22. ในหน้าต่างถัดไป เลือก เซิร์ฟเวอร์หลักใหม่ และกดปุ่ม ถัดไป เพื่อดำเนินการต่อ
23. ถัดไป ตรวจสอบตำแหน่งไบนารี่และเวอร์ชันที่สำคัญ และเปลี่ยนพาธไบนารีของ Spine เป็น /usr/local/spine/bin/spine เมื่อเสร็จแล้ว ให้กดปุ่ม ถัดไป เพื่อดำเนินการต่อ
24. ถัดไป ตรวจสอบว่ามีการอนุญาตไดเรกทอรีเว็บเซิร์ฟเวอร์ทั้งหมดหรือไม่ (ตั้งค่าสิทธิ์ในการเขียนแล้ว) และกดปุ่ม ถัดไป เพื่อดำเนินการต่อ
25. ในขั้นตอนถัดไป ให้ตรวจสอบเทมเพลตทั้งหมดแล้วกดปุ่ม เสร็จสิ้น เพื่อสิ้นสุดกระบวนการติดตั้ง
26. เข้าสู่ระบบเว็บอินเทอร์เฟซของ Cacti ด้วยข้อมูลรับรองเริ่มต้นที่แสดงด้านล่าง และเปลี่ยนรหัสผ่านของผู้ดูแลระบบ ดังที่แสดงในภาพหน้าจอต่อไปนี้
Username: admin
Password: admin
27. จากนั้นไปที่ คอนโซล -> การกำหนดค่า -> การตั้งค่า -> Poller และเปลี่ยน ประเภท Poller จาก cmd.php< ไปที่ Spine ไบนารี่ และเลื่อนลงไปที่ปุ่ม บันทึก เพื่อบันทึกการกำหนดค่า
28. จากนั้นไปที่ คอนโซล -> การกำหนดค่า -> การตั้งค่า -> เส้นทาง และเพิ่มเส้นทางต่อไปนี้ลงในไฟล์การกำหนดค่า Cacti-Spine:
/usr/local/spine/etc/spine.conf
กดปุ่ม บันทึก เพื่อใช้การกำหนดค่า
29. การตั้งค่าขั้นสุดท้ายซึ่งช่วยให้ Cacti poller เริ่มรวบรวมข้อมูลจากอุปกรณ์ที่ได้รับการตรวจสอบคือการเพิ่มงาน crontab ใหม่เพื่อสอบถามอุปกรณ์แต่ละเครื่องผ่าน SNMP ทุกๆ 5 นาที
งาน crontab ต้องเป็นของบัญชี www-data
crontab -u www-data -e
เพิ่มรายการไฟล์ Cron:
*/5 * * * * /usr/bin/php /var/www/html/poller.php
30. รอสักครู่เพื่อให้ Cacti รวบรวมข้อมูลและไปที่ กราฟ -> ต้นไม้เริ่มต้น และคุณจะเห็นกราฟที่รวบรวมสำหรับอุปกรณ์ที่ได้รับการตรวจสอบของคุณ
นั่นคือทั้งหมด! คุณได้ติดตั้งและกำหนดค่า Cacti ด้วยตัวรวบรวม Cacti-Spine จากแหล่งที่มาสำเร็จแล้วใน Debian 9 และ Ubuntu 16.04 รุ่นล่าสุด เซิร์ฟเวอร์ LTS