• SNMP để cấu hình, theo dõi lưu ý bên dưới• XML • Session • Sockets • LDAP được yêu cầu chỉ khi sử dung xác thực LDAP • GD được yêu cầu chỉ cho một vài Plugins Bạn có thể chạy lệnh sau
Trang 1Chapter 1 Những yêu cầu cần thiết Cacti yêu cầu các phần mềm sau đây được cài đặt trên hệ thống của bạn
• RRDTool 1.0.49 hoặc 1.2.x hoặc hơn
• MySQL 4.1.x hoặc 5.x hoặc hơn
• PHP 4.3.6 hoặc hơn, 5.x hoặc hơn phù hợp với các tính năng tiên tiến
• A Web Server e.g Apache hoặc IIS
Chapter 2 Cài đặt trên Unix Hãy chắc chắn rằng, các gói sau đây được cài đặt cho hệ điều hành của bạn Chắc chắn rằng httpd và mysqld được bắt đầu lúc hệ thống khởi động
2.1 Những gói yêu cầu dành cho hệ điều hành RPM-based
• httpd
• php
• php-mysql
• php-snmp
• mysql
• mysql-server
• net-snmp
2.2 Những cổng cho FreeBSD
• www/apache2
• net/rrdtool
• net/net-snmp
• www/php4-cgi
• lang/php4 (Với support của MySQL và SNMP)
• databases/mysql323-server
2.3 Cấu hình PHP
Hãy chắc chắn rằng, có support PHP được dụng sẵn hoặc được cài đặt cho các PHP extension modules sau đây:
• mysql (để cấu hình, theo dõi lưu ý bên dưới)
Trang 2• SNMP (để cấu hình, theo dõi lưu ý bên dưới)
• XML
• Session
• Sockets
• LDAP (được yêu cầu chỉ khi sử dung xác thực LDAP)
• GD (được yêu cầu chỉ cho một vài Plugins)
Bạn có thể chạy lệnh sau đây để có được danh sách của tất cả các module có sẵn của PHP:
php -m
Hãy xác minh, các mô đun được cài đặt và cấu hình một cách chính xác Có một
số cách để làm như vậy, xin vui lòng tham khảo hướng dẫn cấu hình PHP ở instructions 1
để biết thêm chi tiết Chúng ta sẽ tiếp tục sử dụng cách tốt nhất của cấu hình PHP
extension modules Hãy tìm file / etc / php.ini và thực hiện những thay đổi sau đây: extension_dir = /etc/php.d
Điều này sẽ enable PHP để tìm nhiều chỉ thị cấu hình trong thư mục đó Thay vì trỏ tới / usr / lib / php / modules Trong mỗi trường hợp, bạn nên xác định vị trí Ví dụ: mysql.so trong thư mục đó
Kích hoạt MySQL extension via /etc/php.d/mysql.ini
; Enable mysql extension module
extension=mysql.so
Kích hoạt SNMP extension via /etc/php.d/snmp.ini
; Enable snmp extension module
extension=snmp.so
Nếu sử dụng phiên bản PHP 4.3.5 hoặc thấp hơn thì dung dòng lẹnh sau Còn nếu
sử dụng phiên bản 4.3.6 hoặc cao hơn, bạn nên xóa dòng này nếu có
session.save_path=/tmp
Nếu bạn muốn cho phép nhập mẫu, bỏ ghi chú dòng sau:
file_uploads = On
2.4 Cấu hình Webserver (Apache)
Trang 3Nếu bạn đang sử dụng Apache 1.3.thì việc cài đặt PHP 5 không được khuyến khích
Hãy tìm những file / etc / httpd / conf / httpd.conf hoặc tương đương và thực hiện những thay đổi sau đây:
# Load config files from the config directory "/etc/httpd/conf.d"
Include conf.d/*.conf
Bây giờ hãy xác định vị trí các file cấu hình PHP /etc/httpd/conf.d/php.conf Nếu sử dụng PHP 5, sau đó thêm nhũng dòng lệnh sau:
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages
LoadModule php5_module modules/libphp5.so
#
# Cause the PHP interpreter to handle files with a php extension
AddHandler php5-script php
AddType text/html php
#
# Add index.php to the list of files that will be served as directory
# indexes
DirectoryIndex index.php
2.5 Cấu hình MySQL
Đặt mật khẩu cho root user
shell> mysqladmin user=root password somepassword
shell> mysqladmin user=root password reload
2.6 Cài đặt và cấu hình Cacti
1.Giải nén gói tarball
shell> tar xzvf cacti-version.tar.gz
2 Tạo MySQL database:
shell> mysqladmin user=root create cacti
3 Nhập mặc định cacti database:
Trang 4shell> mysql cacti < cacti.sql
4 Optional: Tạo một username và password MySQL cho Cacti
shell> mysql user=root mysql
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY
’somepassword’;
mysql> flush privileges;
5 Chỉnh sửa include/config.php , đặc biệt là database type, name, host, user và password cho cấu hình Cacti của bạn
$database_type = "mysql";
$database_mặc định = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cacti";
6 Thiết lập các điều khoản thích hợp trên các thư mục graph/log của cacti Bạn nên thực hiện những dòng lệnh này từ bên trong thư mục cacti để thay đổi các quyền
shell> chown -R cactiuser rra/ log/
(Nhập username hợp lệ cho cactiuser, user này sẽ được sử dụng cho bước kế tiếp để thu thập dữ liệu.)
7 Nhập một dòng lệnh cho /etc/crontab của bạn tương tự như sau:
*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1
Thay thế cactiuser với user hợp lệ quy định trong bước trước
Thay thế / var / www / html / cacti / với đường dẫn Cacti đầy đủ của bạn
8 Trỏ tới web browser của bạn:
http://your-server/cacti/
Truy cập vào với username/password của admin Bạn sẽ được yêu cầu thay đổi password ngay lập tức
2.7 (Optional) Install and ConHình Spine
Spine là một công cụ poller rất nhanh được viết trong C Đây là một thay thế option cho cmd.php.Nếu bạn quyết định sử dụng, bạn sẽ phải cài đặt nó Nó không đi kèm với cacti
Trang 5Cách đơn giản nhất là cài đặt spine bằng cách sử dụng rpm hoặc ports Bạn sẽ tìm thấy các gói cho spine ở các trang chủ của cacti hoặc từ nhà phân phối của bạn
Để biên dịch spine, hãy tải và lưu nó vào bất kỳ nơi nào trong máy của bạn Sau
đó, hãy nhập các dòng lệnh sau:
shell>aclocal
shell>libtoolize force (glibtoolize force on Max OS)
shell>autoheader
shell>autoconf
shell>automake
shell>./conHình
shell>make
shell>make install
Giả sử, bạn đã nắm được cách cài đặt spine một cách chính xác, tiếp theo bạn sẽ phải cấu hình cho nó.Các file cấu hình có thể được đặt trong cùng thư mục spine hoặc / etc / Spine.conf
DB_Host 127.0.0.1 or hostname (not localhost)
DB_Database cacti
DB_User cactiuser
DB_Password cacti
DB_Port 3306
Những kiểu cài đặt trước phiên bản 0.8.6 không được áp dụng nữa
2.8 Áp dụng patches
Hãy truy cập vào các trang web của cacti tại
http://www.cacti.net/download_patches.php Nếu có bất kỳ patch nào được phát hành, bạn
sẽ tìm thấy hướng dẫn cài đặt
Ví dụ, bạn sẽ tìm thấy hướng dẫn cài đặt cacti phiên bản 0.8.6j tại đây Đừng áp dụng những patch phát hành gần đây!
wget
http://www.cacti.net/downloads/patches/0.8.6j/ping_php_version4_snmpgetnext.patch wget http://www.cacti.net/downloads/patches/0.8.6j/tree_console_missing_hosts.patch
Trang 6wget
http://www.cacti.net/downloads/patches/0.8.6j/thumbnail_graphs_not_working.patch wget http://www.cacti.net/downloads/patches/0.8.6j/graph_debug_lockup_fix.patch wget http://www.cacti.net/downloads/patches/0.8.6j/snmpwalk_fix.patch
patch -p1 -N < ping_php_version4_snmpgetnext.patch
patch -p1 -N < tree_console_missing_hosts.patch
patch -p1 -N < thumbnail_graphs_not_working.patch
patch -p1 -N < graph_debug_lockup_fix.patch
patch -p1 -N < snmpwalk_fix.patch
Bạn cần phải áp dụng lại file/folder bảo mật trên những file patch đó Test thật chính xác
Hãy chú ý đừng ngắt cacti khi sử dụng SELinux hoặc sử dụng tập tin bảo mật NTFS Nếu bạn gặp phải trường hợp:
PHP Warning: include_once(./lib/html_tree.php) [<a
href=’function.include-once’>function.include-once</afailed để mở stream: Permission denied trong
/var/www/cacti/graphs.php ở dòng 33, tham khảo:
http://localhost/cacti/graphs.php
hoặc tương tự, rất có khả năng quyền truy cập đã sai
Chapter 5 Nguyên tắc hoạt động Hoạt động của cacti có thể được chia thành ba giai đoạn như sau:
Hình 5-1: Nguyên tắc hoạt động
Trang 75.1 Data Retrieval
Giai đoạn đầu tiên là lấy dữ liệu Cacti sẽ thực hiện bằng cách sử dụng Poller Poller được thi hành từ việc lập lịch hoạt động của hệ thống, ví dụ như crontab hệ điều hành Unix
Trong thời đại CNTT hiện nay, bạn đang làm việc với rất nhiều thiết bị đa chủng loại, ví dụ như servers, network equipment, appliances và các loại tương tự Để lấy dữ liệu bằng cách truy cập từ xa targets / hosts, cacti chủ yếu sử dụng Simple Network Management Protocol SNMP Vì vậy, tất cả các thiết bị có khả năng sử dụng SNMP sẽ
có đủ điều kiện để được theo dõi bởi cacti
Sau đó, chúng ta sẽ bàn tới làm thế nào để mở rộng khả năng của cacti để lấy dữ liệu cho các kịch bản, truy vấn kịch bản và nhiều hơn nữa
5.2 Data Storage
Có rất nhiều phương pháp tiếp cận khác nhau cho giai đoạn này Một số có thể sử dụng cơ sở dữ liệu (SQL), nhũng tập tin dạng hai chiều khác Cacti sử dụng rrdtool 1 để lưu trữ dữ liệu
RRD là từ viết tắt của Round Robin Database RRD là một hệ thống lưu trữ và hiển thị dữ liệu chuỗi thời gian (như là network bandwidth, machine-room temperature, server load average) Nó lưu trữ dữ liệu một cách nhỏ gọn mà không tiêu tốn thời gian, và
có thể tạo ra các biểu đồ đẹp Điều này sẽ giúp ích cho các yêu cầu về dung lượng
Tương tự như vậy, rrdtool sẽ thực hiện một số nhiệm vụ cụ thể Nó thực hiện hợp nhất để kết hợp các dữ liệu ban đâu để hợp nhất dữ liệu Bằng cách này, lịch sử dữ liệu được nén để tiết kiệm không gian rrdtool có các chức năng hợp nhất khác nhau:
AVERAGE, MAXIMUM, MINIMUM and LAST
5.3 Data Presentation
Một trong những tính năng được đánh giá cao nhất của rrdtool 2 là xây dựng chức năng đồ họa Điều này có ích khi kết hợp với một số web server thông thường Như vậy,
có thể truy cập vào bằng bất kỳ trình duyệt nào
Việc lập biểu đồ có thể được thực hiện theo nhiều cách khác nhau Có thể lập một hoặc nhiều hạng mục trên cùng một biểu đồ Autoscaling được support và logarithmic
Trang 8y-axis rất tốt Bạn có thể sắp xếp thứ tự các mục và in biểu đồ hiển thị thể hiện đặc điểm như minimum, average, maximum và nhiều hơn nữa
Chapter 6 Tổng quan về Graph Hầu như tất cả mọi thứ trong cacti đều liên quan đến biểu đồ.Tại bất kỳ thời điểm nào, bạn có thể liệt kê tất cả các biểu đồ có sẵn bằng cách nhấn vào menu Graph
Management Mặc dù có thể tự tạo ra các biểu đồ thông qua màn hình này, nhưng người dùng mới phải thực hiện theo các hướng dẫn được cung cấp trong chương tiếp theo cho việc tạo ra các biểu đồ mới trong cacti
Đối với người dùng đã quen thuộc với rrdtool 1, bạn sẽ lập tức nắm được biểu đồ trong cacti thông qua mô hình biểu đồ rrdtool Đây là một bước đột phá kể từ khi cacti cung cấp một giao diện người dùng thân thiện với rrdtool mà không yêu cầu người sử dụng phải hiểu rrdtool làm việc ra sao Với cơ chế này, mỗi biểu đồ trong cacti đều được cài đăt và có ít nhất một công cụ biểu đồ liên kết với nó Trong khi các thiết lập biểu đồ xác định các tính chất tổng thể của một biểu đồ, các công cụ biểu đồ xác định các dữ liệu được thể hiện trên biểu đồ Vì vậy, các công cụ biểu đồ xác định dữ liệu để hiển thị và làm thế nào để nó hiển thị, và cũng có thể xác định những gì sẽ được hiển thị trên chú giải của biểu đồ
Mỗi biểu đồ và các công cụ biểu đồ đều có thiết lập thông số kiểm soát các khía cạnh khác nhau của biểu đồ May mắn là thông qua việc sử dụng các mẫu biểu đồ, thì không cần thiết phải hiểu được chức năng của từng lĩnh vực để tạo ra các biểu đồ cho mạng của bạn Khi đó bạn đã sẵn sàng đảm nhận nhiệm vụ tạo ra các mẫu biểu đồ cho riêng bạn
Chapter 7 Các bước để lập biểu đồ cho hệ thống mạng
Tại thời điểm này, bạn có thể nhận ra rằng lập biểu đồ là ưu điểm lớn nhất của cacti Cacti có nhiều tính năng mạnh mẽ cung cấp lập biểu đồ phức tạp và thu thập dữ liệu Mặc dù có một vài tính năng khá phức tạp nhưng đừng để điều đó ngăn bạn Tuy nhiên, để lập biểu đồ mạng của bạn là việc tương đối đơn giản
Hai phần tiếp theo sẽ phác thảo các bước cơ bản thường được yêu cầu để tạo ra các biểu đồ cho hầu hết các thiết bị
7.1 Creating a Device
Bước đầu tiên để tạo ra các biểu đồ cho mạng là thêm một thiết bị cho mỗi thiết bị mạng tương ứng của bạn Mỗi thiết bị được quy định cụ thể các chi tiết quan trọng như network hostname, SNMP parameters, và host type
Để quản lý các thiết bị trong cacti, click vào Devices menu item Click vào Add để
mở một form thiết bị mới Hai trường đầu tiên, Description và Hostname là hai lĩnh vực
Trang 9duy nhất yêu cầu bạn phải tự điền cho thiết bị Nếu loại host của bạn được định nghĩa theo các mẫu “host template dropdown”, hãy click lên thanh lựa chọn ở đây Bạn luôn có thể chọn " SNMP-enabled Host" nếu bạn chỉ lập biểu đồ theo dõi lưu lượng truy cập hoặc
"Không" nếu bạn không chắc chắn Điều quan trọng là phải nhớ rằng các mẫu host template mà bạn chọn sẽ không giới hạn bất kỳ cấu hình cụ thể nào, nó chỉ cung cấp các cấu hình mặc định cho loại của host
Bạn vào “New Graphs” rồi vào “Creat new host” để mở được form như hình sau:
Hình 7-1 Adding a New Device Thông qua bảng sau, ta sẽ hiểu rõ hơn về các trường của thiết bị (Devices)
Bảng 7-1 Định nghĩa các trường của thiết bị
Trang 10Description Đây là trường hiển thị đầu tiên trong danh sách của thiết bị
Mô tả tiêu đề của biểu đồ
Hostname Đây là trường mô tả hostname hoặc là IP address Hostname
được đặt theo tiêu chuẩn quy định như Dynamic Name Services (DNS)
Host Template Host Template là trường chứa danh sách các mẫu biểu đồ liên
quan đến host này
Notes Đây là trường để bạn thêm ghi chú thông tin liên quan đến
host này
Disable Host Loại trừ thăm dò host Đây là trường mô tả một thiết bị không
còn tồn tại nhưng nên giữ nó lại như một tham chiếu
Availability/
Reachability
Options
Option tính sẵn sàng/khả năng tiếp cận
Downed Device
Detection
NONE: Vô hiệu hóa dò tìm host bị down PING and SNMP: Thực hiển cả 2 chức năng test này SNMP: Xác minh SNMP để test trên OID 1 và 1.3 ICMP: Thực hiện ping test
Ping Method Chỉ được áp dụng cho "PING and SNMP" hoặc "PING"
ICMP: Thực hiện ICMP test nếu yêu cầu
UDP: Thực hiện UDP test TCP: Thực hiện TCP test Ping Port Chỉ được áp dụng cho loại test UDP/TCP PING
Hãy xác định các port được test ở đây Chắc chắn rằng không
bị firewall chặn Ping Timeout Value Giá trị thời gian Ping đo bằng đơn vị milliseconds
Ping Retry Count Số lần Cacti cố gắng ping đến host trước khị bị failed
SNMP Options
SNMP Version Version 1: Sử dụng SNMP Version 1 phiên bản 64bit không
được support cho version này Version 2: Được gọi tắt là SNMP V2c trong hầu hết các tài liệu SNMP
Version 3: SNMP V3, support xác thực “authentication” và
Trang 11mã hóa “encryption”
SNMP Community SNMP read community for this device
SNMP Port Nhập số port number UDP để sử dụng cho SNMP (mặc định
là 161)
SNMP Timeout Thời gian tối đa của Cacti tính theo đơn vị milliseconds để
chờ một phản hổi SNMP (không support cho php-snmp) Maximum OID’s Per
Get
Request
Đây là tính năng hiệu suất cao Chỉ định số lượng tối đa OID
có thể thu được trong mỗi một “single SNMP Get request” NOTE: Tính năng này chỉ hoạt động khi sử dụng Spine NOTE: Một vài thiết bị không support nếu có giá trị > 1 Security Options for
SNMP Username Username của SNMP V3
SNMP Password Password của SNMP V3
SNMP Auth Protocol Giao thức xác thực SNMP V3
Chọn MD5 hoặc SHA Mục nhập này mặc định là MD5 SNMP Privacy
Passphrase
Privacy passphrase của SNMP V3
SNMP Privacy Protocol Giao thức bảo mật của SNMP V3 Chọn DES hoặc AES Mục
nhập này mặc định là DES
SNMP Context Khi sử dụng View-Based Access Control Model (VACM), nó
có thể chỉ định một ngữ cảnh SNMP khi ánh xạping một community name tới một security name với chỉ thị com2sec Điều này cho phép để xác định mô hình truy cập đặc biệt Nếu
sử dụng như một tham số với mục tiêu cấu hình SNMP, hãy xác định tên kịch bản được sử dụng để truy cập vào mục tiêu
ở đây
Sau khi lưu lại thiết bị mới, bạn nên quay trở lại để chỉnh sửa cùng với một số thông tin bổ sung Nếu bạn đã cấu hình SNMP cho host này bằng cách cung cấp một chuỗi community string, bạn sẽ thấy số liệu thống kê khác nhau được liệt kê ở trên cùng của trang Nếu bạn nhìn thấy "SNMP error", điều này cho thấy đã có vấn đề giữa Cacti và thiết bị của bạn