Cacti

跳转到:导航搜索

定义

什么是Cacti?

Cacti 是 RRDtool 的一个完整前端,它将创建图形和用数据填充图形所需的所有信息存储在 MySQL 数据库中。前端完全由 PHP 驱动。除了能够维护数据库中的图形、数据源和循环归档之外,cacti 还能处理数据收集。对于习惯于使用 MRTG 创建流量图形的用户,它还支持 SNMP。

数据源

为了处理数据收集,您可以向 cacti 提供任何外部脚本/命令的路径以及用户需要“填写”的任何数据,cacti 随后将在 cron 作业中收集此数据并填充 MySQL 数据库/循环归档。

也可以创建数据源,这些数据源对应于图形上的实际数据。例如,如果用户想要绘制到主机的 ping 时间,您可以创建一个使用 ping 主机并以毫秒为单位返回其值的脚本的数据源。定义了 RRDTool 选项,例如如何存储数据后,您将能够定义数据输入源所需的任何其他信息,例如在本例中要 ping 的主机。创建数据源后,它将自动以 5 分钟的间隔进行维护。


图表

定义一个或多个数据源后,可以使用该数据创建 RRDTool 图形。Cacti 允许您使用所有标准的 RRDTool 图形类型和合并函数创建几乎可以想象的任何 RRDTool 图形。颜色选择区域和自动文本填充功能也有助于创建图形,使该过程更轻松。

您不仅可以在 cacti 中创建基于 RRDTool 的图形,还有许多方法可以显示它们。除了标准的“列表视图”和类似于 RRDTool 前端 14all 的“预览模式”之外,还有“树形视图”,它允许您将图形放置在分层树上以进行组织目的。


用户管理

由于 cacti 的许多功能,因此内置了一个基于用户的管理工具,以便您可以添加用户并授予他们 cacti 某些区域的权限。这将允许某人创建可以更改图形参数的用户,而其他人只能查看图形。每个用户在查看图形时也维护自己的设置。


模板

最后,cacti 能够通过使用模板来扩展到大量数据源和图形。这允许创建单个图形或数据源模板,该模板定义与其关联的任何图形或数据源。主机模板使您能够定义主机的功能,以便 cacti 在添加新主机时可以为其轮询信息


操作指南

以下操作指南有两个起点,即 #简单开始#高级开始

简单开始

  • 安装 MySQL 服务器软件包。这可以是 MySQL 或 MariaDB
zypper in mysql
  • 安装 Cacti 软件包
zypper in cacti
  • 启动数据库服务器并为此服务启用自动启动
systemctl start mysql.service
systemctl enable mysql.service
  • 启动 snmp 服务器并为此服务启用自动启动
systemctl start snmpd.service
systemctl enable snmpd.service
  • 为 apache2 启用 cacti.conf 配置文件。这通过将字符串 CACTI 添加到/etc/sysconfig/apache2
如果您计划从您的网络访问 Cacti,请调整/etc/apache2/conf.d/cacti.conf以允许从该网络访问
  • 启动 Web 服务器并为此服务启用自动启动
systemctl start apache2.service
systemctl enable apache2.service

现在您可以跳到 #数据库配置


高级开始

准备

  • 添加 server:monitoring 仓库。为了访问 Cacti 插件,这是必需的。
  • 安装 MySQL
zypper in mysql-community-server mysql-community-server-client
  • 安装 Cacti 和 Cacti 插件
zypper in cacti cacti-plugin-autom8 cacti-plugin-boost cacti-plugin-clog cacti-plugin-cycle cacti-plugin-discovery cacti-plugin-docs cacti-plugin-flowview cacti-plugin-hostinfo cacti-plugin-loginmod cacti-plugin-mactrack cacti-plugin-monitor cacti-plugin-npc cacti-plugin-ntop cacti-plugin-realtime cacti-plugin-routerconfigs cacti-plugin-settings cacti-plugin-ssl cacti-plugin-syslog cacti-plugin-thold cacti-plugin-tools cacti-plugin-update


配置

要开始,所需的基本服务

service mysql start
service apache2 start
service snmpd start

为了避免日后出现问题,我们将添加它们在 RunMode 3 和 5 中自动启动

chkconfig -a mysql
chkconfig -a apache2
chkconfig -a snmpd

我们将实施额外的安全层,通过删除 MySQL 中的一些漏洞

/usr/bin/mysql_secure_installation

按照问题的顺序进行

  • 更改 root 用户的密码;
  • 删除匿名用户;
  • 禁用远程访问;
  • 删除测试数据库并刷新权限;
  • 重新加载权限表。

如果您稍后更改 MySQL 的 root 密码,请使用命令

/usr/bin/mysqladmin -u root -h localhost password 'new password'


Apache 配置

Cacti 文件位于/srv/www/cacti.

我们使用 VirtualHost 来方便我们的工作

cd /etc/apache2/vhosts.d/
cp vhost.template cacti.conf
vim cacti.conf

编辑必要的字段。请参阅示例

<VirtualHost *:80>
   ServerAdmin rauhmaru@opensuse.org
   ServerName cacti.local
   DocumentRoot /srv/www/cacti/
   ErrorLog /var/log/apache2/cacti-error_log
   CustomLog /var/log/apache2/cacti-access_log combined
   HostnameLookups Off
   UseCanonicalName Off
   ServerSignature On
   <IfModule mod_userdir.c>
 UserDir public_html
 Include /etc/apache2/mod_userdir.conf
   </IfModule>
   <Directory " /srv/www/cacti">
 Options Indexes FollowSymLinks
 AllowOverride None
 Order allow,deny
 Allow from all
   </Directory>
</VirtualHost>

将用户 wwwrun 的组 www 定义为 Cacti 文件的所有者

chown -R wwwrun:www /srv/www/cacti/

如果您希望 Cacti 成为默认服务器,请编辑文件 /etc/sysconfig/apache2 并将 CACTI 添加为服务器标志

APACHE_SERVER_FLAGS="CACTI"


数据库配置

现在我们将创建 Cacti 的基础和一个用户

mysql -p
mysql> create database cacti;
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactipasswd';


Cacti 配置

配置了 Apache2 和 MySQL 后,只剩下 Cacti 了

vim /srv/www/cacti/include/config.php

配置/srv/www/cacti/include/config.php:

$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactipasswd";
$database_port = "3306";

执行 Cacti 的 cacti.sql 脚本,该脚本位于/srv/www/cacti/

mysql -u root -p -b cacti < /srv/www/cacti/cacti.sql

现在我们将通过浏览器启动最终配置。


在浏览器中

对于浏览器,请转到地址 http://SERVER/cacti/install。您将看到许可证。继续

定义一个新的安装

确保检查列表正常。


完成!现在您可以使用 SNMP 轻松地监控您的网络资产!

登录名:admin
密码:admin

身份验证后,您必须重置密码。