• {{ item.name }}
  • Home
  • Linux
  • Programming
    • Python
  • Life
  • Other
  • Tools
  • 投资者该如何参与优秀的区块链项目- NuLink社区圆桌会议
  • 什么是NuLink?- 项目中文社区与项目研究组成员 Rookie 对话实录
  • NuLink 融资 400 万美元用于开发隐私保护技术
  • NuLink的零知识证明介绍(1)
  • 用bitwarden_rs搭建属于自己的密码管理器
  • 修复 CentOS vps 网卡失效
  • 记录用mac给Nexus6P刷Android10的错误
  • Centos 6.8启用 TCP BBR拥塞控制算法
  • Nginx 启用HTTP2功能
  • Mac 安装adb工具
  • WordPress 默认编辑器代码按钮

Cacti监控的简单介绍

  • iansiu
  • 2016-06-17
  • 0

什么是Cacti?

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。

Cacti的原理

Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

以上来源于百度百科

现在可以安装了,这里就用yum来安装

cacti安装配置

1.首先要安装epel扩展源

yum install epel-release

2.搭建lamp环境

yum install -y httpd php php-mysql mysql mysql-server mysql-devel php-gd  libjpeg libjpeg-devel libpng libpng-devel 

3.安装cacti net-snmp rrdtool

yum install -y cacti net-snmp net-snmp-utils net-snmp-devel rrdtool 

4.启动服务:

/etc/init.d/mysqld start
/etc/init.d/snmpd start

5.编辑httpd配置文件

vim /etc/httpd/conf.d/cacti.conf

把

Deny from all

改为

Allow from all

启动

/etc/init.d/httpd  start

6.导入数据创建cacti库

mysql -uroot  -e "create database cacti"

7.创建cacti用户

mysql -uroot -e "grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti';"

导入sql文件

mysql -uroot cacti < /usr/share/doc/cacti-0.8.8h/cacti.sql

8.编辑cacti配置文件

vim /usr/share/cacti/include/config.php

更改如下:

$database_type = "mysql";
$database_default = "cacti";
$database_name = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
$database_ssl = false;

9.web访问cacti并安装

浏览器访问:

http://ip/cacti/  

点两下"next" 和一次"Finish"即可

默认账号和密码都是admin

登陆之后强制设置新的管理密码

如果报错:

FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid My

解决方法:

mkdir  /var/lib/mysql
chown mysql.mysql /var/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

10.执行poller.php, 生成图形

/usr/bin/php /usr/share/cacti/poller.php

11.加入计划任务

crontab -e 增加:

*/5 * * * *  /usr/bin/php /usr/share/cacti/poller.php

每5分钟采集一次数据

服务端已经设置好了,现在来设置客户端

1. 安装snmp

yum install -y net-snmp

2. 修改snmpd.conf

vim /etc/snmp/snmpd.conf

修改syslocation以及syscontact, 其中syslocation 可以写本机ip,syscontact写管理员邮箱

syslocation 192.168.1.12
syscontact Root [email protected]

3.添加网卡采集(默认选择的时候可能不会出来网卡项目)

只需要在客户机(你要监控的机器)修改配置文件:

vim /etc/snmp/snmpd.conf

view    systemview    included   .1.3.6.1.2.1.1

修改为:

view    systemview    included   .1.3.6.1.2.1

3. 启动snmp

service snmpd start

4.登录cacti管理后台,点console , 再点Device, 在右上角点"Add"

Description // 描述
Hostname // 客户端IP
Host Template // 选ucd/net SNMP Host
SNMP Version // 选Version 2

点右下角的create
点右上角的"Create Graphs for this Host"
Graph Types: 选择SNMP - Interface Statistics
在下面框中选择要监控的网卡,比如我选择eth0, 在最右侧小方块里打对勾,然后点右下角的create
Graph Types: 再选择 Graph Template Based
在下面的框中,选择你要监控的项目,比如ucd/net - Load Average
在右侧小方块中打对勾,然后点右下角的create

5.点左侧的Graph Trees

选中"Default Tree"
点右上角的Add
Tree Item Type 选择 "Host"
Host 选择我们刚刚增加的那个机器ip
点右下角的create

6. 点左上角的Graphs

在左侧可以看到
Defaut Tree下面已经增加了我们刚刚添加的主机,图形一开始不会那么快出来,要等一小会才可以。

上面已经完成了最简单的安装,但是Cacti功能非常的多

再随便说几个

1.spine优化

Cacti默认是cmd.php来轮询,效率不高,客户端一多久会延迟

所以我们可以安装另一个工具 spine

下载地址:

http://www.cacti.net/downloads/spine/

需要和Cacti版本对应

安装:

wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8h.tar.gz
tar -xz cacti-spine-0.8.8h.tar.gz
cd cacti-spine-0.8.8h
./configure --prefix=/usr/local/spine
mkae && make install

安装之后还需要指定配置文件的位置

cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
ln -s /usr/local/spine/etc/spine.conf /etc/spine.conf
mkdir /var/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

修改 spine.conf 添加Mysql信息

vim /etc/spine.conf

DB_Host         127.0.0.1
DB_Database     cacti
DB_User         cacti
DB_Pass         cacti
DB_Port         3306

测试下运行

/usr/local/spine/bin/spine

出现以下内容就成功了

SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 0.8.8h starting
SPINE: Time: 0.0829 s, Threads: 1, Hosts: 3

还没完事儿,打开网站 Console -> Cacti Settings -> Paths

Spine Poller File Path

输入spine路径

/usr/local/spine/bin/spine

点击 save

没问题会出现 绿色字体的

[OK: FILE FOUND]

切换到 Poller 选项卡

Poller Type 选择

spine

最后 找到 Console -> Utilities

点击 Rebuild Poller Cache 清除缓存重新生产图形

2.报警发送邮件

没有自带的功能,需要下载插件

插件下载地址:http://docs.cacti.net/plugins

monitor-v1.3-1.tgz
settings-v0.71-1.tgz
thold-v0.5.0.tgz

下载

wget http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz -O settings-v0.71-1.tgz
wget http://docs.cacti.net/_media/plugin:monitor-v1.3-1.tgz -O monitor-v1.3-1.tgz
wget http://docs.cacti.net/_media/plugin:thold-v0.5.0.tgz -O thold-v0.5.0.tgz

解压

tar xf settings-v0.71-1.tgz -C /usr/share/cacti/plugins
tar xf monitor-v1.3-1.tgz -C /usr/share/cacti/plugins            
tar xf thold-v0.5.0.tgz -C /usr/share/cacti/plugins 

打开网站 Console -> Plugin Management

会看见出现了刚刚添加的3个插件,点击插件前面的绿色箭头安装

Console -> Cacti Settings -> Mail / DNS

Mail Services 选择 SMTP 然后填写 QQ、163的邮件测试

更多可以参考:https://my.oschina.net/zhongjuan/blog/89363

cacti无图像或者无数据

参考:

https://www.crazycen.com/linux/1158.html

© 2023 laowang's blog
Theme by Wing