前置提示:
注意:如果你是centos7以上环境,你用yum方式安装的mysql,不在是mysql,而是MariaDB,因为centos7开始已经很嫌弃mysql。所以安装后你的数据库会是MariaDB MySQL在CentOS 7+版本后改名为MariaDB
MariaDB启动/停止/重启命令
- 启动MariaDB命令:systemctl start mariadb.service
- 停止MariaDB命令:systemctl stop mariadb.service
- 重启MariaDB命令:systemctl restart mariadb.service
1.开始安装环境吧
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#安装lamp环境 yum -y install httpd mysql mysql-server mysql-devel libxml2-devel mysql-connector-odbc perl-DBD-MySQL unixODBC php php-mysql php-pdo #安装基础环境LAMP service httpd start #启动Apache,并设置开机自启 service mysqld start #启动MySQL,并设置开机自启 #安装SNMP,主板信息监控,所需软件包 yum -y install net-snmp net-snmp-utils net-snmp-libs lm_sensors #然后启动snmp service snmpd start #索引 snmpwalk -v [版本号] -c [共同体名称] [要收集的服务器ip地址] [要收集的服务名] 常见版本:v1 简单高效,缺点:不支持加密和身份认证 v2 有了身份认证 v3 有了加密 现在我们用2c 2c是他的一个子发行版本 共同体:通俗的说就是组id ,组号,大家要在同一个组里才可以收集数据,默认组号是public #执行 snmpwalk -v 2c -c public 192.168.66.21 tcp snmpwalk -v 2c -c public 192.168.66.21 system |
1 |
vim /etc/snmp/snmpd.conf |

1 2 3 4 5 6 7 8 9 10 11 12 |
那么就是说,我们如果要收集其他信息,也要这么写?.1.2.4? NONO 配置文件中有个选项 #view all included .1 80 我们将这个选项打开,他就可以获取.1 下的所有内容 #再将访问控制修改为all # group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact all none none #然后重启snmp service snmpd restart |
再来收集数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
[root@k8s-master ~]# snmpwalk -v 2c -c public 192.168.66.20 system SNMPv2-MIB::sysDescr.0 = STRING: Linux k8s-master 4.4.213-1.el7.elrepo.x86_64 #1 SMP Wed Feb 5 10:44:50 EST 2020 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (5224) 0:00:52.24 SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: k8s-master SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching. SNMPv2-MIB::sysORDescr.2 = STRING: The management information definitions for the SNMP User-based Security Model. SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB. SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP. SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering. SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications. SNMPv2-MIB::sysORUpTime.1 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.2 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.3 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.4 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.5 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.6 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.7 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.8 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.9 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.10 = Timeticks: (4) 0:00:00.04 |
以上就是Catic收集数据的流程与工作原理
下面我们看下Catic的工作架构

1 2 |
C/S结构负责采集数据,由SNMP来完成 B/S结构负责展示数据,通过RRDtool图形化后,再由apache展示出来 |
继续安装:
安装 rrdtool
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
tar -zxf rrdtool-1.4.5.tar.gz # 源码编译安装 RRDTOOL cd rrdtool ./configure --prefix=/usr/local #如出错,按以下步骤解决,解决源码编译报错依赖. #如出错,按以下步骤解决,解决源码编译报错依赖. #请注意一定要先让出错,然后解决,然后继续编译。如果先给解决这些错误,可能最后编译不成功。 第 1 步 tar zxvf cgilib-0.5.tar.gz cd cgilib-0.5 make #将编译好的文件拿到目录下便于调用 cp libcgi.a /usr/local/lib cp cgi.h /usr/include 第 2 步 yum -y install libart_lgpl-devel pango-devel* cairo-devel* 第三部 cd rrdtool ./configure --prefix=/usr/local make && make install |
部署 cacti,设置数据库连接
1、部署源码包,并安装补丁文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
下载地址:https://www.cacti.net/downloads/ tar -zxf cacti-0.8.7g.tar.gz # 解压 Cacti 网站 mv cacti-0.8.7g/ /var/www/html/cacti # 拷贝至 Apache 默认路径 cd !$ 下来我们去cacti目录下我们去打补丁 补丁下载地址:https://www.cacti.net/downloads/patches/0.8.7g/ #数据源 patch -p1 -N </root/ruanjian/bding/data_source_deactivate.patch #图像列表 patch -p1 -N </root/ruanjian/bding/graph_list_view.patch #输出 patch -p1 -N </root/ruanjian/bding/html_output.patch #域 patch -p1 -N </root/ruanjian/bding/ldap_group_authenication.patch #脚本 patch -p1 -N </root/ruanjian/bding/script_server_command_line_parse.patch patch -p1 -N </root/ruanjian/bding/ping.patch patch -p1 -N </root/ruanjian/bding/poller_interval.patch |
2、添加检测数据的用户账户,更改权限,保证读写数据正常
1 2 3 4 |
useradd runct # 添加 runct 用户,用于 RRDTOOL 运行 cd /var/www/html/cacti chown -R root.root ./ chown -R runct.runct rra/ log/ |
3、授权数据库用户,导入初始化数据
1 2 3 4 5 |
mysql -u root -p create database cactidb default character set utf8; # 创建 cactidb 数据库 grant all on cactidb.* to 'cactiuser'@'localhost' identified by 'pwd@123'; # 把 cactiuser 用户赋予 cactidb 库的所有权限 quit mysql -u root -p cactidb < cacti.sql # cacti 数据库还原 |
注意:还原数据库的时候可能遇到如下错误

1 2 |
MySQL 5.1为向下兼容而支持这个语法,但TYPE现在被轻视,而ENGINE是首先的用法。所以上面那一句只需要把“type=MyISAM”改为“ENGINE=MyISAM”即可。 替换之后再执行sql脚本。 |

4.修改 cacti 配置文件
1 2 3 4 5 6 7 8 9 10 11 |
vim include/config.php # 配置 cacti 页面连接数据库的认证信息 #修改web连接数据的账号密码等相关信息 #注意你的数据库类型,我这里是MariaDB MariaDB cactidb localhost cactiuser pwd@123 3306 #保存退出 |
5、调整 http 配置
1 |
vim /etc/httpd/conf/httpd.conf # 配置 Apache 对 cacti 的用户权限(修改web配置文件而已,指定网站目录和权限) |
1 2 3 4 5 6 7 8 9 10 |
Listen 80 DocumentRoot "/var/www/html/cacti" <Directory "/var/www/html/cacti"> options None AllowOverride None Order allow,deny Allow from all </Directory> DirectoryIndex index.php index.html AddDefaultCharset utf-8 |
1 2 |
#因为修改了apache配置,所以需要重启使他生效 service httpd restart |
安装
1 |
http://192.168.66.20/install # 进行安装 |


1 2 3 4 5 |
账号:admin 密码:admin 第一次登录后会让你改新密码 |

客户端配置
1 2 3 4 5 6 7 8 9 |
yum -y install net-snmp net-snmp-utils lm_sensors # 安装 SNMP、主板信息监控所需软件包 vim /etc/snmp/snmpd.conf 41 服务器地址 默认为 default 共同体名称 默认为 public 62 开放所有的 SNMP 查询权限 all 默认为 SystemView 85 支持各种查询与访问 取消注释符号 view all 然后重启snmp service snmpd restart |
去服务端测试下数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
snmpwalk -v 2c -c public 192.168.66.21 tcp snmpwalk -v 2c -c public 192.168.66.21 system [root@k8s-master include]# snmpwalk -v 2c -c public123 192.168.66.21 system SNMPv2-MIB::sysDescr.0 = STRING: Linux k8s-node1 4.4.213-1.el7.elrepo.x86_64 #1 SMP Wed Feb 5 10:44:50 EST 2020 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (13657) 0:02:16.57 SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: k8s-node1 SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (11) 0:00:00.11 SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching. SNMPv2-MIB::sysORDescr.2 = STRING: The management information definitions for the SNMP User-based Security Model. SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB. SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP. SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering. SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications. SNMPv2-MIB::sysORUpTime.1 = Timeticks: (10) 0:00:00.10 SNMPv2-MIB::sysORUpTime.2 = Timeticks: (10) 0:00:00.10 SNMPv2-MIB::sysORUpTime.3 = Timeticks: (10) 0:00:00.10 SNMPv2-MIB::sysORUpTime.4 = Timeticks: (10) 0:00:00.10 SNMPv2-MIB::sysORUpTime.5 = Timeticks: (10) 0:00:00.10 SNMPv2-MIB::sysORUpTime.6 = Timeticks: (10) 0:00:00.10 SNMPv2-MIB::sysORUpTime.7 = Timeticks: (10) 0:00:00.10 SNMPv2-MIB::sysORUpTime.8 = Timeticks: (10) 0:00:00.10 SNMPv2-MIB::sysORUpTime.9 = Timeticks: (11) 0:00:00.11 SNMPv2-MIB::sysORUpTime.10 = Timeticks: (11) 0:00:00.11 |
接下来图形化配置
1 |
去catic的web界面,点击Devices,添加你的监控节点 |
收集数据
收集数据需要启动RRDtool 他是一个php脚本,按照如下方式布置启动
然后你在web界面graphs里就可以看到图表了
1 2 3 4 5 6 7 8 |
su - runct php /var/www/html/cacti/poller.php # 生成对应的监控图表 #你可以设置定时任务5分钟,绘制一次图表。这样你web界面的图表数据就会5分钟更新一次。 crontab -e */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null # 配置 RRDTOOL 的轮训任务 exit |
1 |
service crond start |

3.插件部署(这个简单,不做演示了)
1 2 3 |
1.首先开启监控选项 2.将插件放入catic目录下的plugin目录内,然后还原插件sql 3.web后台在插件目录就会看到插件。 |
catic源码包下载地址
1 2 |
链接:https://pan.baidu.com/s/1j3ZRHYIaxv4Gljx26bkHZw 提取码:iau3 |
- 本文固定链接: https://www.yoyoask.com/?p=2805
- 转载请注明: shooter 于 SHOOTER 发表