赞
踩
Windows 的任务管理器工作:监控CPU,内存的占用率,查看相关的进程管理(杀死进程)
很多人说监控,是运维的眼睛,是稳定性建设中最重要的一环,监控也是运维工程师必须要会的(无监控不运维)。
监控的主要职责
1、全天监控
2、故障的分析、判断及通知
3、处理相关通知及报告
监控很重要,是必不可少的,运维最重要的就是监控和备份
宕机损失案例:美国呼叫中心 24000 美金/小时
需要数据
Cacti是 RRDtool 的前端应用程序(也可以基于命令行就是绘图的工具),RRDtool是一种用于存储实时变化数据的开源数据库工具,其使用SNMP作为其默认收集算法,但如果你喜欢本地Perl的PHP脚本,那么你也可以使用它们。Cacti 是一款开源的基于Web的网络监控和专为数据记录而设计的图形化工具。它可以用于实时显示网络数据,如CPU负载或带宽利用率。
官网:http://www.cacti.net/
软件设计目标: 流量与性能监测为主
数据展示平台: B/S
数据收集方式: SNMP(Simple Network Management Protocol,简单网络管理协议,监控最主流的协议)
Nagios 是一款用于监控IT基础架构和查看当前状态、历史日志和基本报告的开源软件工具。 Nagios 用户可以监控系统指标,网络协议,应用程序,服务器,网络基础架构和接收故障警报。Nagios提供三种类型的网络管理工具,Nagios XL,Nagios日志服务器和Nagios网络分析器。其中 Nagios XL 最适合网络监控(尽管其他两种也提供网络监控服务)。
根据不同业务故障级别发出告警信息(邮件、微信、短信、语音报警、飞信、MSN)给管理员,当故障恢复时也会发出恢复消息给管理员。
Nagios服务端可以在Unix及类Unix系统上运行,目前无法运行在windows。Windows可以作为被监控的主机,但是无法作为监控服务器。
官网:http://www.nagios.org/
软件设计目标: 服务与性能监测为主
数据展示平台: B/S
数据收集方式: C/S(预定义/自定义脚本)
Nagios 的监控指标:OK(正常状态),WARNING(警告级别),CRITICAL(严重警告),UNKNOW(未知),PENGING(等待状态)
Zabbix 作为企业级的网络监控工具,通过从服务器,虚拟机和网络设备收集的数据提供实时监控,自动发现,映射和可扩展等功能。Zabbix的企业级监控软件为用户提供内置的Java应用服务器监控,硬件监控,VMware监控和CPU,内存,网络,磁盘空间性能监控。
无限扩展:从监控智能家居到多租户企业环境,Zabbix可扩展到任何基础设施
分布式监控:从中央Web UI部署和扩展分布式Zabbix基础架构,并在所有组件之间提供原生加密支持
安全可靠:将敏感信息存储在外部vault中,以确保其安全
高可用:使用Zabbix高可用性解决方案确保Zabbix基础架构7x24全天候正常运行并消除数据丢失的风险
足够灵活:Zabbix提供了许多不同的方法来收集数据、转换数据、分析数据并将其可视化,监控任何你想要的东西
合作伙伴支持:Zabbix可为全球客户提供企业级监控和支持,目前合作网络包含全球250多家合作伙伴和多家外部供应商
官网:http://www.zabbix.com/
软件设计目标: 全功能监控软件
数据展示平台: B/S
数据收集方式: C/S(官方客户端)
Prometheus是一个开源的系统监控和警报工具包,最初由SoundCloud开发的,社区活跃,2016年加入了云原生计算基金会成为继Kubernetes之后的第二个托管项目;普罗米修斯以时间序列数据的形式收集并存储度量值;大部分模块由Go语言编写的。
Prometheus 特性:
官网:https://prometheus.io/
适合监控docker容器。因为kubernetes(俗称k8s)的流行带动了 prometheus的发展。
(简单网络管理协议)用于收集设备内部发生的数据,如负载、磁盘状态、带宽之类
简单网络管理协议(Simple Network Management Protocol–SNMP)的原来名字叫做简单网关监控协议(Simple Gateway Monitoring Protocol-SGMP)。最早是IETF的研究小组提出来的,在SGMP协议的基础之上,加上新的管理信息结构和管理信息库,让SGMP更加全面。简单性和扩展性是SNMP所体现出来的,其中包含数据库类型(Database Schema),一个应用层协议(Application Layer Protocol)和一些资料文件。SNMP管理协议不光能够加强网络管理系统的效能,而且还可以用来对网络中的资源进行管理和实时监控。
SNMP 发展至今为止,可以监控众多的数据指标,例如ICMP,UDP,TCP,服务器性能,内存,磁盘等标准化的指标。SNMP 中会有使用到 OID(身份认证标识),它对信息的一个项目是一个独特的标识符,SNMP协议将设备的各种参数按树形结构进行分组,从树的根部开始,每一个层级节点会有一个编码,将这些层级编码以 “.” 作为分隔符,将其拼接起来所形成的一串编码就叫OID,通过OID可以对该OID表示的参数进行操作,SNMP监控的项目就是一个个的OID。
SNMP 常见的版本:
SNMP 是 Cacti 用于收集监控指标的。
OID定位:Root用"."表示,
.1 即iso(1)→.1.3即org(3)→.1.3.6即dod(6)→.1.3.6.1即internet(1)→.1.3.6.1.2即mgmt(2)→.1.3.6.1.2.1即mid(1)→.1.3.6.1.2.1.6即TCP(6)。SNMP 就是找到TCP的性能指标。
官方定义: RRDtool 是开源行业标准,高性能的时间序列数据记录和绘图系统。RRDtool 可以很容易 地集成到 shell 脚本、perl、python、ruby、lua 或 tcl 应用程序中。RRDtools 是由 C 语言编写的,效率非常之高,性能非常之强悍。缺点就是由于RRDtool 过于灵活,导致RRDtool 使用起来过于复杂。
RRDtool (Round Robin Database Tool)就是一个强大的绘图的引擎,很多工具例如MRTG都可以调用rrdtool绘图。
RRDtool是由Tobias Oetiker 编写并由全球各地的许多人贡献的工具。本篇文档的作者是Alex van den Bogaerdt 主要是帮助你理解RRDtool是什么,它能够帮助你做些什么。 RRDtool的文档对于有些人来说过于技术化。
你可以一直往下走下去。RRDtool处理RRD数据库。它向RRD数据库存储数据、从RRD数据库中提取数据。
RRDtool 是 Cacti 中用于绘制图表的。
Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl / Python等解释器编译到服务器中。
Apache 是 Cacti 的展示Web页面
C/S 模式:采集检测数据(由 SNMP 协议完成)
B/S 模式:管理检测数据,负责展示(由RRDtool绘制图表以后,在Apache将数据展示出来)
Cacti的工作过程
首先通过LAMP平台部署Cacti监控工具,之后通过客户端的web登录Cacti进行对其他客户端的设置,可以从下图看到Cacti采集数据时必须要使用SNMP协议来连接客户端进而能够采集数据,也就是说客户端必须支持SNMP协议,监控之后通过RRDtool来生成图表。
小总结:Apache需要构建比较复杂的网页的话,就需要PHP语言,PHP语言会插入和读取数据库的相关配置以及一些模板信息,RRDtool将SNMP收集到的数据绘制成图表,图表会被Apache分享给用户查看。
#两台服务器
10.10.10.11 Cacti 服务器端
10.10.10.12 客户端(被监控端)
#都需要将防火墙和SElinux功能关闭
配置本地 yum 源环境
(CentOS 6 系统和 CentOS 7.9.2009 系统),我使用的CentOS 7.9.2009系统,CentOS 6的系统也有展示。
其中CentOS 7的步骤会有些凌乱,需要仔细操作执行。
扩展:选择什么样的软件包是要考虑我们的目的,源码包经过测试会比RPM包提升20%的并发量。
但是在监控团队,可以使用RPM包进行部署即可,并发量不是特别大。
mount -t iso9660 /dev/cdrom /mnt/cdrom #挂载本地yum光盘 yum install -y httpd mysql mysql-server mariadb-server mysql-devel \ libxml2-devel mysql-connector-odbc perl-DBD-MySQL unixODBC \ php php-mysql php-snmp php-xml php-ldap php-gd php-pdo php-mbstring php-posix #CentOS 6系统启动服务 service httpd start && chkconfig httpd on #启动 Apache service mysqld start && chkconfig mysqld on #启动 MySQL(使用CentOS6 YUM光盘默认的数据库是mysql) service snmpd start && chkconfig snmpd on #启动SNMP服务 #安装基础环境 LAMP mysqladmin -uroot password root #设置mysql密码 yum install -y net-snmp net-snmp-utils net-snmp-libs lm_sensors yum install –y net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-perl #安装SNMP、主板信息监控 所需软件包 #查看SNMP信息 $ snmpwalk -V NET-SNMP version: 5.7.2 #查看是否由抓取一些指标 $ snmpwalk -v 2c -c public 10.10.10.11 tcp #显示没有指标信息 $ snmpwalk -v 2c -c public 10.10.10.11 system #显示有指标信息 #需要修改配置文件 $ vim /etc/snmp/snmpd.conf #定义共同体名称 com2sec notConfigUser default public #支持的SNMP版本 group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser #定义了视图 # name incl/excl subtree mask(optional) view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 #可以根据需求自行添加 #访问控制功能 # group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact all none none #将 systemview 改为 all #将 .1 isos 下的视图全部进行收集 ## incl/excl subtree mask view all included .1 80 #将 view all 的行取消注释 #重启SNMP服务 $ systemctl restart snmpd #再次收集TCP的指标 $ snmpwalk -v 2c -c public 10.10.10.11 tcp $ snmpwalk -v 2c -c public 10.10.10.11 udp #以上均有数据即可 ################################################################################################### #数据库可以正常登录即可 $ mysql -uroot -proot
所需软件百度网盘
链接:https://pan.baidu.com/s/1wfgE3ISFsBddoO2JuMdRiA
提取码:ton9
### CentOS 6操作 #上传cacti.iso $ yum -y install lrzsz #方便把软件直接拖到xshell里面 $ mkdir /iso $ mount -o loop cacti.iso /iso $ cp -a /iso/* . $ tar -zxf rrdtool-1.4.5.tar.gz && cd rrdtool-1.4.5 #源码编译安装 RRDTOOL $ ./configure --prefix=/usr/local #需要先执行以上操作,没有问题就可以跳过下面的步骤 #如出错,按以下步骤解决,解决源码编译报错依赖 #第 1 步:编译安装,将库文件存放到库环境变量中,方便调用 $ cd /root && 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* #重新执行./configure $ cd /root/rrdtool-1.4.5 $ ./configure --prefix=/usr/local $ make && make install
#CentOS 6的操作 mkdir -pv /root/cacti ; cd /root/cacti #wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz tar -zxf cacti-0.8.7g.tar.gz #解压 Cacti 网站 mv cacti-0.8.7g/ /var/www/html/cacti #拷贝至 Apache 默认路径 #为 Cacti 代码进行补丁更新(需要使用到百度网盘的资源) cd /var/www/html/cacti #数据源补丁 patch -p1 -N < /root/cacti/data_source_deactivate.patch #图像列表补丁 patch -p1 -N < /root/cacti/graph_list_view.patch #输出补丁 patch -p1 -N < /root/cacti/html_output.patch #LDAP域补丁 patch -p1 -N < /root/cacti/ldap_group_authenication.patch #脚本服务补丁 patch -p1 -N < /root/cacti/script_server_command_line_parse.patch #ping补丁 patch -p1 -N < /root/cacti/ping.patch #poller池补丁 patch -p1 -N < /root/cacti/poller_interval.patch
#CentOS 6的操作
cd /var/www/html/cacti
useradd runct
#添加 runct 用户,用于 RRDTOOL 运行
chown -R root.root ./
#图片目录,日志目录
chown -R runct.runct rra/ log/
#CentOS 6的操作
$ mysql -u root -proot
#创建 cactidb 数据库
mysql> create database cactidb default character set utf8;
#把 cactiuser 用 户赋予 cactidb 库的所有权限
mysql> grant all on cactidb.* to 'cactiuser'@'localhost' identified by 'pwd@123';
mysql> quit
#cacti 数据库导入
mysql -uroot -p cactidb < cacti.sql
#CentOS 6的操作
#配置 cacti 页面连接数据库的认证信息
$ vim /var/www/html/cacti/include/config.php
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "pwd@123";
$database_port = "3306";
Cacti默认轮询器cmd.php执行效率有点低,spine为C语言编写的组件,性能要好许多。
#CentOS 7系统安装及配置spine 和 crond(spine的版本要和cacti版本一致,这两个都下载使用1.2.21,一般没问题,一般也是相互同步的)
#最新版本的1.2.22 会出现 ssl 头文件的编译安装错误,可能需要在 openssl 方面做功夫(CentOS 7.9.2009)
#选择性操作
#下载软件包
wget https://www.cacti.net/downloads/spine/cacti-spine-1.2.21.tar.gz
tar zxvf cacti-spine-1.2.21.tar.gz
mv cacti-spine-1.2.21 /usr/local/spine
cd /usr/local/spine
#安装相关依赖包
yum install -y net-snmp-devel mysql-devel openssl-devel dos2unix autoconf automake \
binutils libtool gcc gcc-c++ cpp glibc-headers kernel-headers glibc-devel help2man
sh bootstrap
#进行源码编译安装(需要有GCC的编译环境)
#需要注意数据库的版本,根据数据库的版本进行选择性安装
./configure
make && make install
chown root:root /usr/local/spine/bin/spine
chmod +s /usr/local/spine/bin/spine
#编辑spine/conf 配置文件
cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
vim /etc/spine.conf
#修改如下部分,我全部使用默认参数,所以以下内容没有改动
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass cactiuser
DB_Port 3306
/usr/local/spine/bin/spine
#执行此命令,成功后显示如下
SPINE: Using spine config file [/etc/spine.conf]
Version 1.2.21 starting
Time: 0.5283 s, Threads: 1, Devices: 1
#配置creond(crond一般都是默认安装好的,如果没装,就yum install crontabs -y 安装一下)
yum install -y crontabs
#如果不配置此功能,图形界面全部会显示The Cacti Poller has not run yet;
#使用crontab命令添加任务;
crontab -e
#添加以下任务,我这里配置成每五分钟运行一次
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1
#设置crontab自启动,添加好crontab计划任务后,验证下crond服务是否已经启动,并设置开机自启;
systemctl status crond
systemctl enable crond
#CentOS 6的操作 $ vim /etc/httpd/conf/httpd.conf #配置 Apache 对 cacti 的用户权限 Listen 80 DocumentRoot "/var/www/html/cacti" #默认网站路径 <Directory "/var/www/html/cacti"> options None AllowOverride None Order allow,deny Allow from al </Directory> DirectoryIndex index.php index.html #默认主页 AddDefaultCharset utf-8 #默认字符集 $ service httpd restart
浏览器输入 10.10.10.11 访问,账户名:admin,密码:admin。
第一次登录需要重新修改admin密码。
#CentOS 6的操作 $ mount -t iso9660 /dev/cdrom /mnt/cdrom #挂载本地yum光盘 $ yum -y install net-snmp net-snmp-utils lm_sensors #安装 SNMP、主板信息监控所需软件包 $ vim /etc/snmp/snmpd.conf #41服务器地址 默认为 default 共同体名称 默认为 public #62开放所有的 SNMP 查询权限 all 默认为 SystemView # group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact all none none view all included .1 80 #85支持各种查询与访问 取消注释符号 $ service snmpd start && chkconfig snmpd on #CentOS 7开启服务 $ /bin/systemctl start snmpd.service && /bin/systemctl enable snmpd.service
###用于RRDTool定时采集数据 #CentOS 6的操作 $ su - runct $ snmpwalk -v 2c -c public 10.10.10.12 tcp $ php /var/www/html/cacti/poller.php #生成对应的监控图表 $ crontab -e */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null #配置 RRDTOOL 的轮训任务 #CentOS 6执行操作 $ service crond start #CentOS 7执行操作 $ systemctl start crond ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: zzw Password: ==== AUTHENTICATION COMPLETE === $ exit
如果管理员需要为 Cacti 附加一个复杂的功能的话,就需要使用到 Cacti 的插件功能。插件是需要插件管理器进行管理的。
#CentOS 6操作
$ mkdir /iso ; mkdir ~/cacti-plugin
$ mount -o loop cacti.iso /iso
$ cp /iso/cacti-plugin/* ~/cacti-plugin ; cd ~/cacti-plugin
$ tar -zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
$ cd cacti-plugin-arch/
#导入数据库信息
$ mysql -uroot -p cacti < pa.sql
#将补丁进行添加
$ cd /var/www/html/cacti/
$ patch -p1 -N < /root/cacti-plugin/cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff
#CentOS 7自带有插件管理
Cacti 1.2.21版本
插件管理器就部署完成了。然后就是要进行部署插件了。
Cacti 全部插件下载地址:[ https://blog.51cto.com/wangsuisheng/827715 ]
$ cd /root/cacti-plugin $ ls -l total 544 -r-xr-xr-x 1 root root 207069 Sep 6 22:49 cacti-plugin-0.8.7g-PA-v2.8.tar.gz drwxr-xr-x 3 zzw users 109 Sep 6 22:52 cacti-plugin-arch #使用 monitor 组件进行构建 -r-xr-xr-x 1 root root 241873 Sep 6 22:49 monitor-0.8.2.tar.gz -r-xr-xr-x 1 root root 16823 Sep 6 22:49 settings-0.5.tar.gz -r-xr-xr-x 1 root root 79586 Sep 6 22:49 thold-0.4.3.tar.gz $ tar -zxvf monitor-0.8.2.tar.gz #将组件移动到/var/www/html/cacti/plugins目录下 $ mv monitor /var/www/html/cacti/plugins $ cd /var/www/html/cacti/plugins/monitor/ #导入数据库 $ mysql -uroot -proot cacti < monitor.sql #就可以在浏览器上查看到,只是这里的我的Cacti版本过高,而monitor版本低造成的 #Monitor Cacit下载站点:https://docs.cacti.net/plugin:monitor #在访问该站点的时候无法正常访问,就没有办法下载较新版本的monitor,若有同学下载到了,就可以重复以上的操作进行部署
这里就以Cacti官网的插件示例进行部署,演示出效果即可。
#选择插件(使用官网的示例操作)
yum install -y git
git clone https://github.com/Cacti/plugin_thold.git
mv plugin_thold /var/www/html/cacti/plugins
mv plugin_thold thold
点击绿色的启用按钮即可。就可以看到在最上面的选项卡中出现"阈值"的信息
根据自己的需要自行设置,和自行添加插件管理。
官方站点:https://www.cacti.net/
#Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。 #我的安装环境如下 [root@localhost ~]# uname -a Linux node1 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) ###一、准备工作 #更新系统软件; curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo yum update -y ###二、安装相关的软件包 ##2.1 安装httpd和php; yum install -y httpd php ##2.2 安装php扩展; yum install –y php-mysql php-snmp php-xml php-ldap php-gd php-mbstring php-posix ##2.3 设置php,据系统实际情况设定时区; $ vim /etc/php.ini [PHP] …… date.timezone = Asia/Shanghai ##2.4 启动httpd并设置开机启动; systemctl start httpd && systemctl enable httpd ##2.5 安装MariaDB 10.3数据库; yum -y install mariadb mariadb-server ##2.6 启动mysql数据库服务并设为开机启动; systemctl start mariadb && systemctl enable mariadb ##2.7 配置MariaDB,初始化数据库,设定密码,除了开始直接回车,其他的选择都输入Y; $ mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! ...... Enter current password for root (enter for none): //初始数据库密码为空,直接按回车键 OK, successfully used password, moving on... ...... Set root password? [Y/n] Y //输入root管理员密码 New password: Re-enter new password: Password updated successfully! ...... Remove anonymous users? [Y/n] Y //删除匿名账号 ... Success! ...... Disallow root login remotely? [Y/n] Y //禁止root管理员从远程登录 ... Success! ....... Remove test database and access to it? [Y/n] Y //删除test数据库并取消对它的访问权限 ...... Reload privilege tables now? [Y/n] Y //刷新授权表,让初始化后的设定立即生效 ... Success! ##2.8 修改MariaDB配置,指定编码为utf8,防止cacti监控在显示时不能显示中文, ##也可以在3.2的步骤中,创建cacti数据库时直接指定编码格式为utf8; vim /etc/my.cnf.d/server.cnf [server] # this is only for the mysqld standalone daemon character_set_server = utf8mb4 collation-server = utf8mb4_unicode_ci ##2.9 配置mysql相关参数,将参数设置为cacti安装时推荐的参数; vim /etc/my.cnf #在[mysql]下新增 skip-grant-tables datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock max_allowed_packet = 16777216 max_heap_table_size = 128M tmp_table_size = 128M join_buffer_size = 256M innodb_file_per_table = ON innodb_file_format = Barracuda innodb_large_prefix = 1 innodb_buffer_pool_size = 445M innodb_additional_mem_pool_size = 80M innodb_flush_log_at_trx_commit = 2 ##2.10 安装net-snmp; yum install –y net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-perl ##2.11 配置snmp; vim /etc/snmp/snmpd.conf #修改default为本机(cacti服务器)的ip或者127.0.0.1,修改public为自己的团体名(一般不改),42行 com2sec notConfigUser 127.0.0.1 public #把systemview改成all ,供所有snmp 访问权限 64行 access notConfigGroup "" any noauth exact all none none view all included .1 80 # 去掉#号 85行 ##2.12 启动snmp并设置开机启动; systemctl start snmpd.service && systemctl enable snmpd.service ##2.13 安装RRDTool 绘图工具; 安装编译时可能使用到的软件; yum -y install lm_sensors gcc gcc-c++ libart_lgpl-devel zlib-devel \ libpng-devel freetype-devel gettext-devel glib2-devel pcre-devel \ pango-devel cairo-devel \ libxml2-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker ##yum安装; yum install -y rrdtool ###三、安装及配置cacti 1.2.21 ##3.1 下载安装包; cd /usr/local/src wget https://www.cacti.net/downloads/cacti-1.2.21.tar.gz tar -zxvf cacti-1.2.21.tar.gz mv cacti-1.2.21 /var/www/html/cacti ##3.2 创建cacti数据库,创建数据库用户cactiuser,设置用户相关授权; $ mysql -uroot -proot MariaDB [(none)]> create database cacti; #(可选:character set utf8 collate utf8_bin;) MariaDB [(none)]> grant all on cacti.* to cactiuser@localhost identified by 'cactiuser'; MariaDB [(none)]> grant select on mysql.time_zone_name to 'cactiuser'@'localhost' identified by 'cactiuser'; MariaDB [(none)]> flush privileges; ##3.3 导入 Cacti 默认数据库; MariaDB [(none)]> use cacti; MariaDB [cacti]> source /var/www/html/cacti/cacti.sql; ...... MariaDB [cacti]> flush privileges; MariaDB [cacti]> quit ##3.4 配置数据库时区; [root@localhost ~]# mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql Enter password: Warning: Unable to load '/usr/share/zoneinfo//leapseconds' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//tzdata.zi' as time zone. Skipping it. ##3.5 据实际情况配置cacti的config.php,我测试的所有按默认值,所以没改,一般是修改第2、4、5行; [root@localhost ~]# vim /var/www/html/cacti/include/config.php ...... $database_type = 'mysql'; $database_default = 'cacti'; $database_hostname = 'localhost'; $database_username = 'cactiuser'; $database_password = 'cactiuser'; $database_port = '3306'; $database_retries = 5; $database_ssl = false; $database_ssl_key = ''; $database_ssl_cert = ''; $database_ssl_ca = ''; ...... ##3.6 创建日志文件,后续安装时用的到; touch /var/www/html/cacti/log/cacti.log touch /var/www/html/cacti/log/cacti_stderr.log ##3.7 创建 cacti 系统用户,设置目录权限; useradd cactiuser chown apache.apache /var/www/html/cacti/ -R chown cactiuser /var/www/html/cacti/{rra,log}/ -R chmod 777 /var/www/html/cacti/{rra,log}/ -R ###四、安装及配置spine和crond #(spine的版本要和cacti版本一致,这俩个我都下载的最新版,一般没问题); ##4.1 安装spine; cd /usr/local/src wget https://www.cacti.net/downloads/spine/cacti-spine-1.2.21.tar.gz tar zxvf cacti-spine-1.2.21.tar.gz mv cacti-spine-1.2.21 /usr/local/spine cd /usr/local/spine yum install -y net-snmp-devel mysql-devel openssl-devel dos2unix autoconf automake \ binutils libtool gcc cpp glibc-headers kernel-headers glibc-devel help2man #编译安装 sh bootstrap ./configure --with-reentrant make && make install chown root:root /usr/local/spine/bin/spine chmod +s /usr/local/spine/bin/spine ##4.2 编辑spine.conf; $ cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf $ vim /etc/spine.conf #修改如下部分,我全部使用默认参数,所以以下内容没有改动 DB_Host localhost DB_Database cacti DB_User cactiuser DB_Pass cactiuser DB_Port 3306 $ /usr/local/spine/bin/spine ##执行此命令,成功后显示如下 SPINE: Using spine config file [/etc/spine.conf] Version 1.2.21 starting Time: 0.5131 s, Threads: 1, Devices: 1 ##4.3 配置creond (crond一般都是默认安装好的,如果没装,就 yum install crontabs -y 安装一下) ##如果不配置此功能,图形界面全部会显示The Cacti Poller has not run yet; ##使用crontab命令添加任务; crontab -e ##添加以下任务,我这里配置成每五分钟运行一次 */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2>&1 #设置crontab自启动,添加好crontab计划任务后,验证下crond服务是否已经启动,并设置开机自启; systemctl status crond systemctl enable crond ###五、 关闭防火墙和selinux; ##5.1 禁用防火墙 (如果是跑在公网的建议放行相关端口,不禁用防火墙); systemctl stop firewalld.service systemctl disable firewalld ##5.2 禁用selinux; vim /etc/sysconfig/selinux #将SELINUX修改为=disabled,然后重启,该操作重启后才会生效,所以一定要重启系统; ##5.3 重启相关服务; systemctl restart httpd.service \ && systemctl restart mariadb.service \ && systemctl restart snmpd.service \ && service httpd restart \ && service mariadb restart ##5.4 重启系统; shutdown -r now ##5.6 cacti安装; #浏览器中输入http://ip/cacti进入安装界面, #初始账号密码为admin/admin,首次登录需要修改密码,密码有复杂性要求,后面基本就是下一步下一步,直到安装完成; #安装完成后修改poller参数,cacti默认使用cmd.php,我装了spine,所以改成spine;
浏览器输入 10.10.10.11 访问,账户名:admin,密码:admin。
第一次登录需要重新修改admin密码。
根据向导一步一步进行操作完成
更改为Spine采集类型
客户端配置 和 2.2.4客户端配置 步骤一致。
###用于RRDTool定时采集数据 #CentOS 6的操作 $ su - runct $ snmpwalk -v 2c -c public 10.10.10.12 tcp $ php /var/www/html/cacti/poller.php #生成对应的监控图表 $ crontab -e */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null #配置 RRDTOOL 的轮训任务 #CentOS 6执行操作 $ service crond start #CentOS 7执行操作 #收集数据的步骤在 2.4 CentOS 7.9.2009部署Cacti中已经完成 $ systemctl start crond ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: zzw Password: ==== AUTHENTICATION COMPLETE === $ exit
Cacti 新版本是支持中文界面,但在 Cacti 旧版本中是并不支持中文显示。
添加Linux主机
根据情况选择设备模板,这里我选择"Net-SNMP Device"
添加Linux主机的监控图像
添加一棵树
管理 → 树 → "+"添加树 → “根据向导进行添加”
编辑树的可用站点(自定义,根据环境不同而不同),可用设备(选择10.10.10.12),可用的图形(选择全部),并点击发布按钮,后保存
注意:若发现没有数据的展示,那么就要执行2.4.1收集数据以及2.2.5收集数据,两个步骤一样。用于RRDtool来绘制图表的功能。
这里就以Cacti官网的插件示例进行部署,演示出效果即可。
#选择插件(使用官网的示例操作)
yum install -y git
git clone https://github.com/Cacti/plugin_thold.git
mv plugin_thold /var/www/html/cacti/plugins
#重命名(Cacti v1.2.22版本不需要进行重命名)
mv plugin_thold tholdcv
点击绿色的启用按钮即可。就可以看到在最上面的选项卡中出现"阈值"的信息
CentOS 7.9.2009 的Cacti 部署部分就告一段落了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。