0x01 前言

cacti是一款通过SNMP协议获取数据并生成图表的工具。部署这一款免费开源的工具对于拥有好几台虚拟机的我是必不可少的。

要注意的是cacti 1.0还处于开发中,问题还不少,同时有些插件不能正常使用。因为我喜欢它新的界面,也不太需要插件辅助才选择这个版本。如果你用在生产环境中,请谨慎选择。

0x02 下载

目前cacti 1.0版本发布在GitHub中,几乎每天都有更新。

GitHub地址:https://github.com/Cacti/cacti

#使用git命令下载:
git clone https://github.com/Cacti/cacti.git

0x03 部署web

cacti 是基于nginx | apache、PHP、MySQL的一款工具,因为我配置了负载均衡,所以这里选用LNMPA架构进行配置。

0x03.1 配置nginx

配置信息非常简单。

server {
    listen                  80;
    server_name             cacti.t.com;

    root                    /usr/local/html/cacti.t.com/public_html/;
    access_log              /usr/local/html/cacti.t.com/logs/ngx_access.log;

    location / {

        index               index.php index.html;
        proxy_pass          http://127.0.0.1:8080;

    }

}

0x03.2 配置apache2

<VirtualHost 127.0.0.1:8080>
        ServerAdmin [email protected]
        DocumentRoot /usr/local/html/cacti.t.com/public_html/
        ServerName cacti.t.com
        ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9002/usr/local/html/cacti.t.com/public_html/$1
        ErrorLog /usr/local/html/cacti.t.com/logs/apa.error.log
</VirtualHost>

0x03.3 配置mariadb

为cacti添加一个账户与数据库,我配置的用户名、密码和数据名都是cacti

0x03.4 配置php-fpm

[cactitcom]
;useradd -M -s /sbin/nologin -n cactitcom
listen = 127.0.0.1:9002
user = cactitcom
group = daemon
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 5
php_admin_flag[log_errors] = on
php_admin_value[error_log] = /usr/local/html/cacti.t.com/logs/fpm-php.log
php_flag[display_errors] = off
php_admin_value[memory_limit] = 256M
pm.max_requests = 3000
request_terminate_timeout = 300

0x03.5 修改配置文件

#复制配置文件到新位置
cp include/config.php.dist include/config.php

#修改配置文件
vim include/config.php

#修改内容如下
$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'sql.t.com';
$database_username = 'cacti';
$database_password = 'cacti';
$database_port     = '3306';
$database_ssl      = false;

我的cacti放置在域名的根目录下,也就是通过http://cacti.t.com/就可以访问,那么还需要修改配置文件中的这一行:

#$url_path修改为
$url_path = '/';

至此,就可以通过网页继续配置cacti了。

0x04 安装cacti

访问http://cacti.t.com/install,跟随步骤即可完成安装。

还需要添加一下命令到crontab中以便定时生成图片:

*/1 * * * * root /usr/local/php7/bin/php /usr/local/html/cacti.t.com/public_html/poller.php > /dev/null 2>&1

请确认你的crond处于启动状态。

0x05 其他

还有一项需要注意的是:部署完成后很长一段时间都没有图片生成,那么很有可能是perl少了一个模块。通过以下命令即可安装并解决问题:

#安装perl-CPAN
yum install perl-CPAN -y

#进入CPAN
perl -MCPAN -e shell

#安装
install LWP::UserAgent

#退出
exit

0x06 结语

如果你已经配置好SNMP服务,那么你可以在设备页面中添加你的SNMP设备了。如果需要了解SNMP服务的配置,请点击:

  1. 安装配置net-snmp
  2. 安装使用HP System Management Homepage