Cacti是一个利用 RRDtool 数据存储和绘图功能的完整的网络图形解决方案。Cacti 提供了快速的数据轮询、高级图形模板、多样的数据获取方法以及用户管理等功能。并以直观易于使用的接口来呈现,这在具有成千上万个设备的复杂网络上是有意义的。
安装 Cacti 需要 mysql,PHP,RRDTool,net-snmp 和 支持 PHP 的 Web服务器,如 Apache,nginx 或 IIS等。
版本要求:
RRDTool 1.3 或更高版本,http://oss.oetiker.ch/rrdtool/
MySQL 5.1 或更高版本,https://mysql.com/
MariaDB 5.5 或更高版本,https://mariadb.org/
PHP 5.4 或更高版本,https://php.net/
支持PHP的Web服务器,如Apache,NGINX 或 IIS(https://www.apache.org/,https://www.nginx.com/)
本次安装 Cacti-1.1.23 使用相关软件及版本为:
RRDTool 1.4.8
MariaDB 10.2.8 (mariadb mariadb-server)
PHP 5.4.16 (php php-snmp php-ldap php-xml php-session php-sockets php-pdo php-pdo-mysql php-mbstring php-pcre php-json php-openssl php-gd php-gmp php-zlib)
Apache httpd 2.4.6
net-snmp 5.7.2 (net-snmp net-snmp-utils)
crond (cronie 或其他类似软件)
为了安装官方补丁,还需要安装一些工具软件
wget
patch
添加 MariaDB YUM 仓库
# cat > /etc/yum.repos.d/MariaDB.repo <<EOF [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 EOF
# yum install -y httpd mariadb mariadb-server mariadb-devel net-snmp net-snmp-utils net-snmp-libs net-snmp-agent-libs net-snmp-devel php php-snmp php-ldap php-pdo php-mysql php-devel php-pear php-common php-gd php-mbstring php-xml php-process rrdtool rrdtool-php rrdtool-perl rrdtool-devel gcc openssl-devel dos2unix autoconf automake binutils libtool cpp postfix glibc-headers kernel-headers glibc-devel gd gd-devel help2man ntpdate wget patch
修改 PHP 主配置文件 /etc/php.ini
关闭安全模式,以支持 rrdtool,允许 exec() 访问
[PHP] safe_mode = Off
设置时区
[Date] date.timezone = PRC
编辑 /etc/httpd/conf.d/php.conf 配置文件,确保文件含有
# 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
如果你不打算将 Cacti 安装到 Web 服务器默认目录,如/var/www/html,就需要将下面内容添加
至 /etc/httpd/conf.d/cacti.conf 文件,并将其中的 /your/cacti/dir 替换为实际安装目录,将
Allow from 127.0.0.1 改为你公司所在网段。
# Cacti - the complete rrdtool-based graphing solution # # Allows only localhost by default # # Allowing cacti to anyone other than localhost should be considered # dangerous unless properly secured by SSL # Make sure, that httpd can read your cacti directories. # At minimum, you need # chmod ugo+r -R /your/cacti/dir # Make sure to replace with your directories # When using SELinux, set the following: # chcon -R -h -t httpd_sys_content_t /your/cacti/dir # when using SELinux and you private homedir, enable # setsebool -P httpd_enable_homedirs 1 # setsebool -P httpd_read_user_content 1 Alias /cacti /var/www/html/cactiAllowOverride None Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 Options Indexes Includes FollowSymLinks# These directories do not require access over HTTP #Order Deny,Allow Deny from All Allow from None
为安全起见,设置数据库 root 用户密码
# systemctl start mariadb # mysqladmin -uroot password somepassword
导入时区数据到 mysql 数据库
# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot mysql -p
修改 /etc/my.cnf.d/server.cnf 文件,确保文件含有
[mysqld] character_set_server = utf8mb4 collation_server = utf8mb4_unicode_ci character_set_client = utf8mb4 max_connections = 100 max_heap_table_size = 48M max_allowed_packet = 16777216 join_buffer_size = 64M tmp_table_size = 64M innodb_file_per_table = ON innodb_buffer_pool_size = 240M innodb_doublewrite = OFF innodb_lock_wait_timeout = 50 innodb_flush_log_at_timeout = 3 innodb_read_io_threads = 32 innodb_write_io_threads = 16
配置 net-snmp-agent, 修改配置文件 /etc/snmp/snmpd.conf
将41行
com2sec notConfigUser default public
改为
com2sec notConfigUser 127.0.0.1 public
将62行
access notConfigGroup "" any noauth exact systemview none none
改为
access notConfigGroup "" any noauth exact all none none
将85行
#view all included .1 80
改为
view all included .1 80
# cd /var/www/html # wget http://www.cacti.net/downloads/cacti-1.1.23.tar.gz # tar zxvf cacti-1.1.23.tar.gz
# mysql -u root -p MariaDB [(none)]> CREATE database cacti default character set utf8; MariaDB [(none)]> create user 'cactiuser'@'localhost' identified by 'cactiuser'; MariaDB [(none)]> grant all privileges on cacti.* to cactiuser@localhost; MariaDB [(none)]> grant select on mysql.time_zone_name to 'cactiuser'@'localhost' identified by 'cactiuser'; MariaDB [(none)]> flush privileges; MariaDB [(none)]> quit
# mysql -uroot -p cacti < /var/www/html/cacti-1.1.23/cacti.sql
$database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cactiuser"; $database_password = "cactiuser"; /* load up old style plugins here */ $plugins = array(); //$plugins[] = 'thold';
# useradd -r -M cacti # ln -s /var/www/html/cacti-1.1.23 /var/www/html/cacti # chown -R apache.apache /var/www/html/cacti/ # chown -R cacti /var/www/html/cacti-1.1.23/{rra,log}/
# crontab -e */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
# firewall-cmd --permanent --add-port=3306/tcp # firewall-cmd --permanent --add-service=http # firewall-cmd --permanent --add-port=161/udp # firewall-cmd --permanent --add-port=162/udp # firewall-cmd --reload
# setenforce 0 # sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# systemctl enable httpd # systemctl enable mariadb # systemctl enable crond # systemctl enable snmpd
# systemctl restart httpd # systemctl restart mariadb # systemctl restart crond # systemctl restart snmpd
使用浏览器登录
http://your-server/cacti/
勾选 “Accept GPL License Agreement” –> Next –> Next –> 下一步 –> Next –> Next –> 勾选所有预置模版 –> Finish
使用初始登录用户名和密码(admin)登录,然后更改初始密码。
进入Cacti Web 管理界面。
# cd /usr/local/src # wget http://www.cacti.net/downloads/spine/cacti-spine-1.1.23.tar.gz # tar xf cacti-spine-1.1.23.tar.gz
# ln -s /usr/lib64/libmysqlclient.so.18.0.0 /usr/lib64/libmysqlclient.so # ntpdate 202.120.2.101 # cd cacti-spine-1.1.23 # ./configure && make && make install
# cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
修改spine.conf文件内用户名及密码配置
DB_Host localhost DB_Database cacti DB_User cactiuser DB_Pass cactiuser DB_Port 3306 RDB_Host localhost RDB_Database cacti RDB_User cactiuser RDB_Pass cactiuser RDB_Port 3306
Console -> 设置(Cacti Settings) -> Paths -> 在 Spine Binary File Location 文本框内填入配置文件路径 /usr/local/spine/bin/spine ,在 Spine Config File Path 文本框内填入配置文件路径 /usr/local/spine/etc/spine.conf,点击保存 (Save)。
Console -> 设置(Cacti Settings) -> Poller -> 在 Poller Type 下拉框中选择 spine ,点击保存 (Save)。
在添加完设备和图形后,需要重建采集器缓存。
Console –> 系统工具 –> Rebuild Poller Cache
独立安装包U-Mail for CentOS(6.X) 安装教程
Linux CentOS 在不删除Linux自带JDK的情况下安装JDK1.8(图文教程:重点是环境变量的配置)...