zoukankan      html  css  js  c++  java
  • Cacti 安装配置

    版本历史:
    <V0.2.
    20101204>根据 Cacti Doucument 调整,适用于Cacti 0.8.7g

    <V0.1.20100717>创建。

    V0.2版本是基于V0.1演化,所以版本延续。

    实际上是已经不算是安装,而是翻译Cacti的文档了。

    所以具体的安装过程,还是请大家参考V0.1版本

    cacti是一套开源的网络监控工具,基于rrdtool的良好绘图功能,可以完美的监控主机的状态和负载情况,添加相应的模板后,可以用来监控apache服务器和mysql服务器的运行状态。这里主要描述使用源代码配置的过程,使用yum的方式同样,因为cacti是基于网络服务器配置,所以没有二进制编译安装的过程,源代码和yum的方式是一样的。

    安装需求

    Cacti需要系统中已经安装下列组件:
    • RRDTool 1.0.49 or 1.2.x 或更高版本
    • MySQL 4.1.x or 5.x or 或更高版本
    • PHP 4.3.6 或更高版本, 推荐5.x 版本以使用更多高级特性
    • 一个网络服务器 比如 Apache 或者 IIS

    Unix软件RPM需求

    请确认系统已安装下列的软件,并确认httpd和mysqld已设置为随系统启动。

    • httpd
    • php
    • php-mysql
    • php-snmp
    • php-xml
    • mysql
    • mysql-server
    • net-snmp (根据分支的不同,可能还需要 net-snmp-utils )

    PHP设置

    PHP的安装包有很多种形式。主要的配置文件是so文件会调用的ini配置文件,比如 /etc/php.ini. 下面的提示预期是一个配置指导,但是根据分支的不同,

    设置可能会有区别。

    安全模式 

    Cacti 使用外部命令,例如用 rrdtool 来绘图。因此,需要设置

    ; Safe Mode
    ;
    http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode
    safe_mode = Off

    时间和日期

    从 PHP 5.3 版本开始,建议对时区 date timezone 进行定义。以避免因为时间/日期函数而带来的警告。使用如下代码:

    ; Defines the default timezone used by the date functions
    ;
    http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
    date.timezone = "Europe/Berlin"

    允许导入模板

    如果你想使用 Cacti 的模板导入功能,请取消注释下面一行,以允许文件上传:

    file_uploads = On

    允许exec()调用

    Cacti 会使用 exec() 这种形式的调用,因此,请确认已按照如下设置:

    safe_mode = Off

    PHP扩展设置

    Cacti 使用如下 PHP 扩展组件

    • mysql
    • session
    • sockets
    • xml
    • pcre

    同时,我们也建议使用

    • snmp

    扩展。你可以选择使用 net-snmp 来代替 php-snmp 扩展(有时是 net-snmp-utils )。

    Cacti 插件会使用额外的扩展,比如

    • gd (reportit 使用)
    • dom (cli 脚本使用,只在 PHP 5 中才被支持)

    当使用一个较新版本的 PHP 时,你可能会发现的提示

    ;;;;
    ;
    Note: packaged extension modules are now loaded via the .ini files
    ;
    found in the directory /etc/php.d; these are loaded by default.
    ;
    ;;;
    这种情况下,并没有什么特殊的地方。不过需要验证下扩展模块相关 的ini配置文件是否已经配置在php支持的目录下。

    对于较老版本版本的PHP,你需要编辑 php.ini 并且增加

    extension_dir = /etc/php.d
    这将支持 PHP 在配置的目录下寻找更多的扩展配置文件。对不同的 Linux 分支而言,扩展文件夹的路径可能并不相同,比如会在 extension_dir=/usr/lib/php/modules。

    编辑 <extension_dir>/mysql.ini 以激活 mysql 扩展。

    ; Enable mysql extension module
    extension=mysql.so

    编辑 <extension_dir>/snmp.ini 以激活 snmp 扩展。

    ; Enable snmp extension module
    extension=snmp.so

    如果使用 PHP 4.3.5 以下的版本,那么在 php.ini 中添加以下配置;如果使用 PHP 4.3.6 之上的版本,那么请在配置文件中移除此行(如果存在的话)。

    session.save_path=/tmp

    配置网络服务器(Apache)

    如果你还在使用 Apaceh 1.3.x 版,那么安装使用 PHP 5.x 或许并不合适。

    请查找文件类似 "/etc/httpd/conf/httpd.conf" 的文件,并且确认文件中包含

    # Load config files from the config directory "/etc/httpd/conf.d".
    Include conf.d/*.conf


    现在,请编辑其中的包含的PHP配置文件 "/etc/httpd/conf.d/php.conf",如果是使用 PHP 5,那么,确认文件中包含:

    # 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


    如果你不是安装 Cacti 到 Apache 默认的网络目录文件夹位置,那么在 /etc/httpd/conf.d 中新增配置文件 cacti.conf,并且按如下内容编辑。设置 /your/cacti/dir 为你自己的cacti目录名称。更新 Allow from 127.0.0.1 为任何你需要的的配置(比如,你所在公司的某个子网段)。请留意注释中的配置提示,尤其是在你启用了 SELinux 的时候!

    # 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 /your/cacti/dir
    <Directory /your/cacti/dir>
    AllowOverride None
    Order Deny
    ,Allow
    Deny from all
    Allow from
    127.0.0.1
    Allow from ::
    1
    Options Indexes Includes FollowSymLinks
    </Directory>

    # These directories do not require access over HTTP
    #
    <Directory /your/cacti/dir/cli>
    Order Deny
    ,Allow
    Deny from All
    Allow from None
    </Directory>

    MySQL设置

    为 MySQL 的 root 用户设置一个密码。

    shell> mysqladmin --user=root password somepassword
    shell> mysqladmin --user
    =root --password reload
    请参阅MySQL的文档以了解详细内容。

    SNMP 设置 

    这里将会解释 Net-SNMP 代理的安装和设置。截止写作时,Net-SNMP 的最新版本为5.4(12/06/2006发布) 

    依据操作系统的不同,你可以使用安装包或者压缩包来安装 Net-SNMP

    大部分发行的Linux操作系统都带有Net-SNMP的安装包:

    • RedHat / Fedora : 安装 net-snmp, net-snmp-libs and net-snmp-utils
    • Debian / Ubuntu: 安装 libsnmp-base, libsnmp5, snmp and snmpd packages
    • SuSE : 安装 the net-snmp package
    • Gentoo : emerge the net-snmp ebuild
    • Mandriva : 安装 the libnet-snmp5, net-snmp and net-snmp-utils packages.

    从源代码安装 Net-SNMP

    如果找不到对应的二进制发行包,那么可以尝试从源代码进行编译。

    如下显示了如何获得一个正在运行的 Net-SNMP 的配置选项:

    $ snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.100.6.0
    UCD
    -SNMP-MIB::versionConfigureOptions.0 = STRING: "'-disable-shared'
    '--with-mib-modules=host/hr_system'
    "

    设置 Net-SNMP 代理

    视如何安装 Net-SNMP,主要的配置文件(snmpd.conf)可能被放置在 /etc/snmp(从二进制包安装)或者 /usr/local/share/snmp(从tarball压缩包安装)。

    请注意当你修改了 snmpd.conf 配置文件后,你需要重新启动 snmpd 守护进程(或者发送HUP信号)。

    最简单的配置如下:

    rocommunity public

    这将会从任何主机上发送的 SNMP version 1/2 只读请求,使用的社区名称为 public。

    使用这个最小化的配置,你就能够绘制CPU使用率,网络接口,内存/交换区使用,登录的用户和进程数量等图形了。

    你可以限制接受从哪些主机发送过来的请求:

    rocommunity public 127.0.0.1
    rocommunity test
    87.65.43.21
    默认情况下 Net-SNMP 在所有IP V4接口上使用UDP方式在161端口进行侦听。

    在如下的示例中 Net-SNMP 将会在10.20.30.40主机的10000端口上建立侦听。

    agentaddress 10.20.30.40:10000
    你同样可以配置其使用TCP方式侦听(Cacti也支持这种方式):

    agentaddress tcp:161
    "tcp"关键词可以在稍后配置Cacti的时候使用:



    对于哪些对安全性要求较高的用户,可以配置使用SNMP协议第3版,支持MD5和SHA哈希算法。

    createUser frederic MD5 mypassphrase DES
    group groupv3 usm frederic
    view all included .iso
    80
    access groupv3
    "" any auth exact all all all
    上述配置将会创建一个名为"frederic",密码为"mypassphrase"的用户。测试一下:

    # snmpget -v 3 -l AuthNoPriv -u frederic -A mypassphrase 10.50.80.45 sysName.0
    SNMPv2-MIB::sysName
    .0 = STRING: cyclopes
    在 Cacti 中配置的话,添加你的设备之后,选择 SNMP V3 版本的协议,并设置用户名和密码:


    到这里访问控制方面的设置就完成了,在 snmp.conf 中增加如下两行,以标识设备的名称和联系人。

    syslocation Bat. C2
    syscontact someone@somewhere.org
    他们将会出现在 Cacti 的设备管理界面中。


    有一些OID会返回类似 "-153.1 dBm" 的单元,一个较为安全的做法是关闭它,可以在 snmpd.conf 中增加如下内容实现:

    dontPrintUnits true
    下一步是在 Cacti 中绘制整个文件系统,最简单的方法是在 snmpd.conf 中增加如下内容:

    includeAllDisks
    当你执行"ucd/net - Get Monitored Partitions"数据查询时,所有挂载的文件系统就都能够出现:


    如果你希望某个文件系统不在这里被列出,那么,在 snmpd.conf 中增加如下内容:

    ignoredisk /dev/rdsk/c0t2d0
    不幸的是,有些老版本的 Net-SNMP 不能完全支持 includeAllDisks 关键字,这种情况下,就只有显式的列出所有你希望绘制的文件系统:

    disk /
    disk /usr
    disk /var
    disk /oracle
    你甚至还可以指定一个NFS挂载点。

    需要注意的是,Net-SNMP 代理仅能够报告那些在它启动之前就已经挂载的文件系统。如果你之后手工挂载了文件系统,那么你需要重新载入 Net-SNMP 代理(发送HUP信号)。在 snmpd.conf 中添加如下内容,你也可以绘制进程信息:

    proc httpd

    结果可以通过 ucdavis.prTabel.prEntry 树获得:

    prCount, 以当前查询名称运行的进程的数量

    prNames,统计的进程的名称

    例如,Apache进程的数量可以通过OID下的 .1.3.6.1.4.1.2021.2.1.5 MIB模块来获取。其他一些有用的模块还有:

    mibII/mta_sendmail, 绘制 MTA(Sendmail, Postfix, 等等)的统计信息

    diskio, 允许绘制I/O统计信息

    ucd-snmp/ImSensors, 硬件监控信息(仅Linux和Solaris支持)

    添加 Mib 模块的方法如下:

    $ ./configure --with-mib-modules="module1 module2"
    如果要编译 Net-SNMP 并想制作一个压缩包的形式,可以参照如下步骤:

    $ ./configure --with-your-options
    $ make
    # mkdir /usr/local/dist
    #
    make install prefix=/usr/local/dist/usr/local exec_prefix=/usr/local/dist/usr/local
    #
    cd /usr/local/dist
    #
    tar cvf /tmp/net-snmp-5.3.1-dist.tar usr
    #
    gzip /tmp/net-snmp-5.3.1-dist.tar
    #
    rm -rf /usr/local/dist

    现在你可以拷贝 /tmp/net-snmp-5.3.1.-dist.tar.gz 到其他的服务器,并且在根目录下解压缩(所有的文件都会被释放到 /usr/local )。

    测试配置

    一旦 Net-SNMP 安装完成,并且已经启动,那么就可以首先测试一下

    $ snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.1.1.0
    SNMPv2
    -MIB::sysDescr.0 = STRING: Linux cronos 2.4.28
    #2 SMP ven jan 14 14:12:01 CET 2005 i686
    这个简单的测试表明了 Net-SNMP 代理是可以能够工作的。

    你甚至还可以查询下在服务器上运行的是哪个版本的 Net-SNMP :

    $ snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.100.2.0
    UCD
    -SNMP-MIB::versionTag.0 = STRING: 5.2.1.2

    如果输出是下面这样的:

    $ snmpwalk -v 1 -c foo localhost .1.3.6.1.2.1.1.1.0
    Timeout: No Response from localhost
    那么表明要么是代理没有启动,要么 community 字符串是错误的,或者设备是不可访问的。请检查下你的 community 字符串,如果有需要请配置相应的防火墙规则,等等。

    如果使用的是 SNMP V3 版本的协议,那么指定一个未知的用户名,很可能会得到一个错误:

    $ snmpget -v 3 -l AuthNoPriv -u john -A mypassphrase 10.50.80.45 sysName.0
    snmpget: Unknown user name

    如果是密码不正确,那么会返回如下的错误信息:
    $ snmpget -v 3 -l AuthNoPriv -u frederic -A badpassphrase 10.50.80.45 sysName.0
    snmpget: Authentication failure (incorrect password, community or key)

    下面的查询显示了哪些文件系统已经被挂载:

    $ snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.9.1.2
    UCD
    -SNMP-MIB::dskPath.1 = STRING: /
    UCD
    -SNMP-MIB::dskPath.2 = STRING: /BB
    UCD
    -SNMP-MIB::dskPath.3 = STRING: /dev/shm
    如果返回的结果是空,通常是因为 includeAllDisks 不被你的 Net-SNMP 版本支持(这种情况下,像前述章节描述一样,你需要列出每一个你要绘图的文件系统)。

    最后,让我们看一下如何显示网络接口:

    $ snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.2.2.1.2
    IF-MIB::ifDescr.1 = STRING: lo
    IF-MIB::ifDescr.2 = STRING: eth0
    IF-MIB::ifDescr.3 = STRING: eth1

    扩展 SNMP 代理

    Net-SNMP 的一个强大功能就是你可以对它进行扩展:

    让我们运行一下 /tmp/foo.sh 脚本:

    $ /tmp/foo.sh -arg1
    123

    现在把如下这行添加到 snmpd.conf 文件中:

    exec foo /bin/sh /tmp/foo.sh -arg1
    现在,脚本的返回结果可以通过 ucdavis.extTabel.extEntry 树:

    脚本的输出: ucdavis.extTable.extEntry.extOutput

    退出的状态: ucdavis.extTable.extEntry.extResult

    命令:         ucdavis.extTable.extEntry.extCommand

    你可以使如下的 SNMP 查询对结果进行检测:

    $ snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.8.1
    UCD
    -SNMP-MIB::extIndex.1 = INTEGER: 1
    UCD
    -SNMP-MIB::extNames.1 = STRING: foo
    UCD
    -SNMP-MIB::extCommand.1 = STRING: /bin/sh /tmp/foo.sh -arg1
    UCD
    -SNMP-MIB::extResult.1 = INTEGER: 0
    UCD
    -SNMP-MIB::extOutput.1 = STRING: 123
    UCD
    -SNMP-MIB::extErrFix.1 = INTEGER: 0
    UCD
    -SNMP-MIB::extErrFixCmd.1 = STRING:
    extOutput 翻译 .1.3.6.1.4.1.2021.8.1.101 指令后,"foo" 是我们的第一个执行指令,在 OID 的最后增加了 .1


    在 Cacti 中,可以按如下方法使用 "SNMP - Generic OID Template" :

    之后你会惊喜的发现 /tmp/foo.sh 脚本的执行结果在Cacti中被图形化输出了。

    现在,让我们执行第二个脚本,这个脚本会返回多于一个结果:

    $ /tmp/bar.sh
    456
    789
    这个脚本返回了两个值,每个值一行(这一点很重要)。

    另一个在 snmpd.conf 中调用脚本的办法是指定一个 OID ,如下文所示:

    exec .1.3.6.1.4.1.2021.555 /bin/sh /tmp/bar.sh
    执行这个查询:

    $ snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.555
    UCD
    -SNMP-MIB::ucdavis.555.1.1 = INTEGER: 1
    UCD
    -SNMP-MIB::ucdavis.555.2.1 = STRING: "/bin/sh"
    UCD
    -SNMP-MIB::ucdavis.555.3.1 = STRING: "/tmp/bar.sh"
    UCD
    -SNMP-MIB::ucdavis.555.100.1 = INTEGER: 0
    UCD
    -SNMP-MIB::ucdavis.555.101.1 = STRING: "456"
    UCD
    -SNMP-MIB::ucdavis.555.101.2 = STRING: "789"
    UCD
    -SNMP-MIB::ucdavis.555.102.1 = INTEGER: 0
    UCD
    -SNMP-MIB::ucdavis.555.103.1 = ""
    脚本返回的第一行可以通过 .1.3.6.1.4.1.2021.555.101.1 进行访问,第二行可以通过 .1.3.6.1.4.1.2021.555.101.2 进行访问,以此类推。

    之后你就可以使用 Cacti 的 "SNMP - Generic OID Template" (每个 OID 一个数据源)。

    假如你想同意一个日志文件中的条目数,那么添加如下内容到 snmpd.conf 中:

    logmatch cactistats /home/cactiuser/cacti/log/cacti.log 120 SYSTEM STATS
    (符合条件的全局统计数可以通过 OID .1.3.6.1.4.1.2021.16.2.1.5.1 进行访问;符合条件的 "正则匹配数" (通过每个文件特征重置) 可以通过 OID .1.3.6.1.4.1.2021.16.2.1.7.1 进行访问)。

    使用下面的查询,可以列出所有能够访问的变量:

    $ snmpwalk -v 1 -c public localhost logMatch
    UCD
    -SNMP-MIB::logMatchMaxEntries.0 = INTEGER: 50
    UCD
    -SNMP-MIB::logMatchIndex.1 = INTEGER: 1
    UCD
    -SNMP-MIB::logMatchName.1 = STRING: cactistats
    UCD
    -SNMP-MIB::logMatchFilename.1 = STRING: /home/cactiuser/cacti/log/cacti.log
    UCD
    -SNMP-MIB::logMatchRegEx.1 = STRING: SYSTEM STATS
    UCD
    -SNMP-MIB::logMatchGlobalCounter.1 = Counter32: 301634
    UCD
    -SNMP-MIB::logMatchGlobalCount.1 = INTEGER: 301634
    UCD
    -SNMP-MIB::logMatchCurrentCounter.1 = Counter32: 6692
    UCD
    -SNMP-MIB::logMatchCurrentCount.1 = INTEGER: 6692
    UCD
    -SNMP-MIB::logMatchCounter.1 = Counter32: 1
    UCD
    -SNMP-MIB::logMatchCount.1 = INTEGER: 0
    UCD
    -SNMP-MIB::logMatchCycle.1 = INTEGER: 120
    UCD
    -SNMP-MIB::logMatchErrorFlag.1 = INTEGER: 0
    UCD
    -SNMP-MIB::logMatchRegExCompilation.1 = STRING: Success

    现在,让我们使用另外一个有趣的指令, "proxy"。 以 Squid 代理为例:启用时,SNMP 代理会侦听 UPD 3401端口。如果你想在Cacti中绘制系统图形和Squid图形,但是又不想Cacti中声明这两个设备,那么,在 snmpd.conf 中添加如下内容:

    proxy -v 1 -c public localhost:3401 .1.3.6.1.4.1.3495.1
    Squid SNMP 树可用通过访问 .1.3.6.1.4.1.3495.1 获取。

    对这个主机进行查询:

    $ snmpwalk -v 1 -c public 10.151.33.3 sysdescr
    SNMPv2
    -MIB::sysDescr.0 = STRING: Linux srv1.foo.com 2.6.8.1-12mdk
    #
    1 Fri Oct 1 12:53:41 CEST 2004 i686

    下面是如何输出 Squid 部分(指定的 OID 会返回 Squid 版本):

    $ snmpwalk -v 1 -c public 10.151.33.3 .1.3.6.1.4.1.3495.1.2.3.0
    SNMPv2
    -SMI::enterprises.3495.1.2.3.0 = STRING: "2.5.STABLE6"
    如果你想知道如何开启 Squid SNMP 代理,那么,请访问这里

    安装和配置Cacti

    1.解压缩压缩包,把 Cacti 解压到你网络服务器的 DOCUMENT_ROOT 文件夹下:

    shell> tar xzvf cacti-version.tar.gz


    2.创建 MySQL 数据库:

    shell> mysqladmin --user=root create cacti

    3.导入默认的 Cacti 数据库:

    shell> mysql cacti < cacti.sql

    4.(可选)为 Cacti 数据库设置用户名和密码:

    shell> mysql --user=root mysql
    mysql
    > GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'somepassword';
    mysql
    > flush privileges;


    5.编辑 "include/config.php" 设置数据库类型,数据库名称,主机名,用户和密码:

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

    /* load up old style plugins here */
    $plugins = array();
    //$plugins[] = 'thold';

    /*
    Edit this to point to the
    default URL of your Cacti install
    ex:
    if your cacti install as at http://serverip/cacti/ this
    would be set to
    /cacti/
    */
    $url_path = "/cacti/";

    /* Default session name - Session name must contain alpha characters */
    #$cacti_session_name = "Cacti";
    只有在使用 Plugin Architecture (PIA) 时才需要设置$Plugins 数组。对老版本的插件,这些变量需要设置在 global.php,现在这些插件配置已经从 global.php 中移出,被放置在 config.php 中。这样改变的目的是使 global.php 尽量保持简单的结构。global.php 应该是一个尽量不被编辑的文件,所以如果安装了 PIA,那么就尽量不要编辑 global.php 文件。

    基于同样的原因,"URL_PATH" 变量也从 global.php 中被移动到 config.php。对于哪些从较老的 PIA 升级升级而来的人来说,需要了解的是,过去我们会尝试"探测"这个路径,但是,这种处理是不可靠的。因此,你需要在 config.php 中显式的指定这一路径。


    6.为 Cacti 的目录文件夹设置合适的权限,以支持图形文件/日志文件的生成。你需要在 Caacti 目录文件夹中执行如下命令:

    shell> chown -R cactiuser rra/ log/

    使用有效的用户名来替换上文中的 cactiuser, 这个用户在下面配置数据采集的时候还要使用。

    7.在 "/etc/crontab" 文件中增加类似如如下的内容:

    */5 * * * * cactiuser php /var/www/html/cacti /poller.php > /dev/null 2>&1
    使用在上一步中指定的有效的用户名来替换 cactiuser, 使用你的 cacti 完整路径来替换 "/var/www/html/cacti/"。

    (如果使用二进制包安装的话,请确认crontab的这些内容是否已经在安装时被设置了。)

    译者注:在RedHat及其衍生版本上,如此配置crontab是不可行的,crontab文件是不支持用户名的配置的。推荐以确定用户执行 "crontab -u cacti -e" 然后添加:

    */5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1


    8.请确认cron守护进程已经运行:

    shell> service crond start
    shell
    > chkconfig crond level 345 on


    9.使用浏览器访问 http://your-sever/cacti,初始的用户名和密码都是 "admin"。首次登录时,系统会强制要求你立即修改密码。

    在下一步的配置中,请确认仔细填写了所有的路径,并且确保他们是正确的。

     安装配置Spine(可选)

    spine是一个基于C语言的,非常快速的轮询引擎。它是默认的cmd.php的可选替代。如果决定使用它的话,需要自己来显式的安装和配置。cacti本身并不包含该引擎。安装Spine的最简单的方法就是使用rpm或者使用ports。可以在Cacti的主站或者你的分发版本的软件仓库中找到spine的二进制分发包。

    如果使用源码,那么下载之后请在代码目录执行如下命令:

    shell>aclocal
    shell
    >libtoolize --force (glibtoolize --force on Max OS)
    shell
    >autoheader
    shell
    >autoconf
    shell
    >automake
    shell
    >./configure
    shell
    >make
    shell
    >make install
    "make install" 命令需要以 root 身份执行。在最新版本的 spine 中,有一个叫做 "bootstrap" 的脚本会为你执行上面所有的工作;再次强调下,安装需要 root 权限。

    现在假设你已经安装好了 spine。那么需要对它进行配置。配置文件的位置应该是和 Spine 自身的目录在一起的, 或者在 /etc/Spine.conf 。

    DB_Host 127.0.0.1 or hostname (not localhost)
    DB_Database cacti
    DB_User cactiuser
    DB_Pass cacti
    DB_Port
    3306
    其他的一些0.8.6版本之前的设置都已经是作废的。

    应用升级补丁

    访问 Cacti 的网站 以或许升级补丁和相应的安装指导。

    下面的示例显示了 Cacti 0.8.6j 的补丁的安装指导。可不要把这些补丁应用在最近版本的 Cacti 上!

    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
    wget 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
  • 相关阅读:
    The 4 Most Important Skills for a Software Developer
    Youth is not a time of life, it is a state of mind——青春不是一段年华,而是一种心境
    英雄所见略同——每个人都有的一套价值体系观念
    28法则————10分钟休息胜过半小时努力
    离职员工心声
    员工必备素质、能力——职场精英
    安卓sqlite数据库的使用
    安卓adb命令的使用
    windows使用命令行,提高效率
    命令行编译java文件(含第三方jar包)
  • 原文地址:https://www.cnblogs.com/tigertall/p/1896691.html
Copyright © 2011-2022 走看看