当前位置: 首页 > 编程日记 > 正文

Cacti安装详细步骤

Cacti安装详细步骤

前提LNMP或LAMP架构已搭建完成

一、cacti概述

1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。

3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

二、安装rrdtool

先试试这个:

yum install rrdtool rrdtool-perl -y 

如果不行,可能是在主监控机上安装rrdtool,rrdtool依赖的包过多,所以选择增加源,然后用yum安装,试试下边的:

[root@localhost /]# vi /etc/yum.repos.d/dag.repo  
[dag]  
name=Dag RPM Repository for Red Hat Enterprise Linux  
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag  
gpgcheck=1  
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt  
enabled=1 
然后yum安装:

三、安装配置net-snmp

3.1、安装net-snmp

yum install net-snmp net-snmp-libs net-snmp-utils

3.2、配置net-snmp

vim /etc/snmp/snmpd.conf  41行 1将default 改为监控服务器ip;2 将public 改成复杂些的识别的字符串  
com2sec notConfigUser  127.0.0.1      public  62行 1将systemview 改为all,供所有snmp 访问权限  
access  notConfigGroup ""      any       noauth    exact  all none none  85行 将#注释符号去掉  
view all    included  .1                               80  

3.3、测试net-snmp

# service snmpd start 

snmpd 使用 tcp/udp 161 端口,验证snmpd 服务

使用snmpwalk 命令验证

snmpwalk -v 2c -c public 127.0.0.1 
-v是指版本,-c 是指密钥,获取到系统信息则正常!
如果cacti搭建好后很久还是没出图,用这个命令试试看能否获取到数据。
正常情况下,执行完这个命令后会有很多数据出现!

四、安装cacti

1、下载cacti

cd /tmp 
wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz 
tar xzf cacti-0.8.8a.tar.gz 
mv cacti-0.8.8a /var/www/html/cacti 
cd /var/www/html/cacti

2、创建数据库

mysqladmin --user=root -p create cacti 

3、导入数据库

mysql -uroot -p cacti < cacti.sql 

4、创建数据库用户

shell> mysql -uroot -p mysql 
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactipassword'; 
mysql> flush privileges; 

5、配置include/config.php

$database_type = "mysql"; 
$database_default = "cacti"; 
$database_hostname = "localhost"; 
$database_username = "cactiuser"; 
$database_password = "cactipassword"; 打开注释掉的:
$url_path = "/cacti/"; 

配置include/global.php

/* Default database settings*/ 
$database_type = "mysql"; 
$database_default = "cacti"; 
$database_hostname = "localhost"; 
$database_username = "cactiuser"; 
$database_password = "cactipassword"; 
$database_port = "3306"; 
$database_ssl = false; 

6、设置目录权限

useradd cactiuser 
chown -R cactiuser rra/ log/ 

7、配置计划任务

#crontab -e 
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1 //让系统每5分钟收集
service crond restart 

8、完成cacti的安装

注意关闭防火墙或者允许80端口,关闭selinux
1) 在浏览器中输入:http://监控服务器IP/cacti/
默认用户名:admin 密码:admin
2)设置cacti用到的命令路径

3) 更改密码

登陆成功户 next>>   next>> 

上图有益处红色错误,表示安装未成功

                安装成功如下:

如果用的是经典版的,出现了乱码

解决办法:

yum -y install fontforge 

或:

安装完cacti,刷新页面是乱码,这里记录解决问题的方法,感谢原文作者,乱码问题是因为系统少了一些字符,那我们需要下载相应的字符放在/usr/share/fonts/下即可。
这里提供一个字体simsun,下载地址如下:

这里提供一个字体simsun,下载地址如下:
http://fendou.sinaapp.com/fendou_soft/2012-07-12.simsun.ttc.zip
http://fendou.sinaapp.com/fendou_soft/2012-07-12.simsun.ttf.zip

下载这两个字体,解压,把文件放在/usr/share/fonts下,重启apache,查看页面正常显示!

转载于:https://www.cnblogs.com/liuyansheng/p/6118535.html

相关文章:

为什么使用单页应用_为什么我讨厌您的单页应用

为什么使用单页应用by Stefan Tilkov斯蒂芬蒂尔科夫(Stefan Tilkov) 为什么我讨厌您的单页应用 (Why I hate your Single Page App) Okay, now that I have your attention, let me say that I don’t really hate your single page app. I just find it highly annoying, unl…

marquee实现文字移动效果;js+div实现文字无缝移动效果

1.marquee实现文字移动&#xff1a; <marquee width"220px;" scrollamount"5" onmouseover"this.stop()" onmouseout"this.start()" ><p style"letter-spacing:2px;width: 1px;">欢迎您登录拜博医疗口腔集团内部…

URAL 1203 Scientific Conference(贪心 || DP)

Scientific Conference 之前一直在刷计算几何&#xff0c;邀请赛连计算几何的毛都买见着&#xff0c;暑假这一段时间就做多校&#xff0c;补多校的题目&#xff0c;刷一下一直薄弱的DP。多校如果有计算几何一定要干掉-。- 题意&#xff1a;给你N个报告会的开始时间跟结束时间&a…

5- RAC 集合 RACTuple RACSequence

RAC 集合 RACTuple RACSequence // 0 RACTuple 就是一个数组/*RACTuple 就是一个数组*/RACTuple *tp1 [RACTuple tupleWithObjects:"5",5,1, nil];RACTuple *tp2 [RACTuple tupleWithObjectsFromArray:["11","22","33"]];NSLog(&quo…

测试开发人员与开发人员_如何升级为开发人员

测试开发人员与开发人员by Will Hughes威尔休斯(Will Hughes) 如何升级为开发人员 (How to Level up as a Developer) Being a productive developer is something you can learn through experience, books, or trial and error. But, one of the best ways to become a prod…

ORA-00959: tablespace 'PSAPTEMP' does not exist

错误 : ORA-00959: tablespace PSAPTEMP does not exist 解决办法: CREATE TEMPORARY TABLESPACE PSAPTEMP TEMPFILE E:/Oracle/ORC/sapdata3/temp_1/temp.data1 SIZE 500M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE unlimited EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;ALTER …

RAC rac_liftSelector

RAC rac_liftSelector 主要是用于线程的同步 - (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.// rac_liftSelector// 类似于dispatch_group 中的组// 多线程中的组 等所有的请求都完毕之后 去更新UIRAC…

随笔记一些莆田话

莆田话是闽南话和福州话混合的产物&#xff0c;当然也是古汉语保留至今的珍宝。很多莆田话的词语是有源可溯的。这里记录一些平常想到的又可能不为人知的词语。 莆田话——普通话解释 物件——东西 万代——很多 先生——老师&#xff08;先生白读时是老师的意思&#xff09;&a…

JavaScript库和API

by Adam Recvlohe通过亚当雷夫洛厄(Adam Recvlohe) API就像一盒巧克力 (APIs are like a box of chocolates) If you have written JavaScript for the DOM before, then you probably know how unwieldy it can get. I mean getElementById is seven syllables and 14 charac…

Hadoop 全分布模式 平台搭建

现将博客搬家至CSDN&#xff0c;博主改去CSDN玩玩~ 传送门&#xff1a;http://blog.csdn.net/sinat_28177969/article/details/54138163 Ps&#xff1a;主要答疑区在本帖最下方&#xff0c;疑点会标注出来。个人在配置过程中遇到的困难都会此列举。 实验介绍&#xff1a; 本次实…

iOS 使用fastlane自动化打包步骤

加粗样式### iOS 使用fastlane 自动打包步骤 &#xff01;参考 1 查看ruby版本信息 本机是否安装ruby ruby -v 2 安装xcode命令行工具 点击同意即可 xcode-select --install 3 安装fastlane 键入如下命令 sudo gem install fastlane -NV4 使用 1 打开终端 cd 进入到要打包的…

今天开始搞CentOS 7

今天开始搞CentOS 7,安装过程很顺利&#xff0c;界面相当友好。转载于:https://www.cnblogs.com/lixd/p/3868649.html

java ruby_Java,Ruby和Go,我的天哪!

java rubyFree Code Camp has focused 100% on full stack JavaScript since we started 17 months ago. We’ve taught JavaScript on the front end, JavaScript on the back end (thanks to the powerful Node.js framework) — and even JavaScript as a database querying…

http和https的区别 与 SSL/TLS协议运行机制的概述

http和https的区别 与 SSL/TLS协议运行机制的概述 参考1 1 http 是不使用的SSL/TSL的通信通道 窃听风险&#xff1a;第三方获取通信内容篡改风险&#xff1a;修改通信内容冒充风险&#xff1a;冒充他人身份参与通信 2 SSL/TSL 协议应运而生 客户端先向服务器端索要公钥&am…

Babel 相关资料

Babel online editorBabel Plugin Handbookbabeljs usage options转载于:https://www.cnblogs.com/skating/p/6125227.html

php中this,self,parent三个关键字

phpfunctionclass语言cthis,self,parent三个关键字从字面上比较好理解,分别是指这、自己、父亲。this是指向当前对象的指针(姑且用C里面的指针来看吧) self是指向当前类的指针 parent是指向父类的指针(我 们这里频繁使用指针来描述&#xff0c;是因为没有更好的语言来表达)根据…

大量数据转移_大量数据

大量数据转移by BerkeleyTrue由BerkeleyTrue 大量数据 (A Flood of Data) Free Code Camp’s data has been doubling each month, thanks to a flood of highly-active campers. This rising tide of data has exposed several weaknesses in our codebase.由于大量活跃的露营…

约瑟夫问题总结

题解在代码里~ #include <iostream> #include <iomanip> #include <list> using namespace std;int main() {int n, k, f[100];n 12; cin>>k;//链表做法,复杂度O(n*k)list <int> L;for(int i 1; i < n; i) f[i] i, L.push_back(i);list<…

iOS中的死循环

关于死循环 自己方法里面调用自己 在 vc 中的 viewDidLoad 方法中调用 [self viewDidLoad] 会导致程序崩溃。 原因是&#xff1a; 内存溢出。 函数调用栈&#xff0c; 函数调用的时候&#xff0c;sp 栈顶指针寄存器减对应的内存空间&#xff0c;栈内存开启对应的内存空间&…

机器学习算法基础知识

在我们了解了需要解决的机器学习问题的类型之后&#xff0c;我们可以开始考虑搜集来的数据的类型以及我们可以尝试的机器学习算法。在这个帖子里&#xff0c;我们会介绍一遍最流行的机器学习算法。通过浏览主要的算法来大致了解可以利用的方法是很有帮助的。 可利用的算法非常之…

javascript_JavaScript疲劳疲劳

javascript“The Universe is under no obligation to make sense to you.” — Neil deGrasse Tyson“宇宙没有义务对您有意义。” —尼尔德格拉斯泰森 Yes, JavaScript development is complicated.是的&#xff0c;JavaScript开发很复杂。 Yes, it will continue to get mo…

TCP/IP基础概念及通信过程举例

TCP/IP基础概念及通信过程举例 出现 上个世纪60年代&#xff0c;由于中央集中式网络的容灾性较弱&#xff0c;以美国国防部为中心的一家组织研究出分组交换网络。后来为了验证分组交换技术的实用性&#xff0c;ARPANET出现了&#xff0c;并且在3年内逐渐发展&#xff0c;由4个节…

iOS 利用dSYM定位crash

What is dSYM &#xff1f; xCode 的每一次编译都会生成一个dsym文件&#xff0c;在其内部存储了16进制函数地址的映射。 在App实际执行的二进制文件中&#xff0c;是通过地址来调用方法&#xff0c;所以在App Crash 的时候&#xff0c;第三方工具会抓到函数崩溃调用栈。 通过…

OCP-052 053部分答案解析

OCP~052 9. GRANT ANY OBJECT PRIVILEGE(授予任何对象权限)&#xff1a;允许被授权人将其本身不拥有的对象的对象权限授予他人&#xff0c;但不能授予自己。 10. ENABLE VALIDATE 无法输入违反约束的行&#xff0c;而且表中的所有行都符合约束 DISABLE NOVALIDATE 可以输入任何…

您的用户界面是您产品不会因心灵感应而谦卑的补偿

by Morten Just由Morten Just 您的用户界面是您产品不会因心灵感应而谦卑的补偿 (Your UI is your product’s humble compensation for not being telepathic) 拿一些产品&#xff0c;然后继续问“这是要补偿什么&#xff1f;” 最终您将得到相同的答案。 这个答案可能就是为…

9、 Struts2验证(声明式验证、自定义验证器)

1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法、有效的.Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证&#xff1a;Struts2 提供了一些基于 XWork Validation Framework 的内建验证程序. 使用这些验证程序不需要编程, 只要在一个…

java中使用队列:java.util.Queue

在java5中新添加了java.util.Queue接口&#xff0c;用以支持队列的常见操作。该接口扩展了java.util.Collection接口。Queue使用时要尽量避免Collection的add()和remove()方法&#xff0c;而是要使用offer()来添加元素&#xff0c;使用poll()来获取并移出元素。它们的优点是通过…

xCode BuildSetting 设置

一 编译选项设置 1 Optimization Level 编译器的优化级别 编译策略是对代码编译过程的优化,优化后的代码效率比较高&#xff0c;但是可读性比较差&#xff0c;且编译时间更长。 release模式设置为Fastest, Smallest[-Os] Debug模式设置为None 设置参数None编译器不会尝试优…

react绑定this_React绑定模式:处理“ this”的5种方法

react绑定thisJavaScript’s this keyword behavior has confused developers for ages.JavaScript的this关键字行为使开发人员困惑了很长时间。 There are at least five ways to handle the this context in React. Let’s consider the merits of each approach.在React中至…

php 文件限速下载代码

<?php include("DBDA.class.php"); $db new DBDA(); $bs $_SERVER["QUERY_STRING"]; //获取由提交界面传过来的参数 $bss substr($bs,3); //截取 后面的值$sql "select video from shangpin where id{$bss}"; //获取视频文件路径 $s…