《Cacti实战》——2.4 安装与配置过程中的排错宝典

本节书摘来自华章计算机《Cacti实战》一书中的第2章,第2.4节,作者:刘钊,张跃著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.4 安装与配置过程中的排错宝典

虽然我们在第一次接触Cacti时,需要经历一段比较复杂的安装过程,为了减轻大家的痛苦,也是为了Cacti能够更好地服务于大家,与大家分享在安装过程中遇到的障碍,如果你是高手,大可以帮助我们一起分析原因,引以为戒,如果你的IT系统知识还不够丰富,那么相信这一节的内容对你会有很大的帮助。
2.4.1 关于版本
版本是摆在面前的第一座大山,由于Cacti采用了很多第三方的开源项目,这些项目又难以顾及所有的支持项目,所以会出现很多版本不匹配的问题,下面一一进行讲解。
首先讲解PHP和Apache在不同操作系统平台上的匹配问题,之前的章节交待过,这里再次用表2-9来重申一下。
《Cacti实战》——2.4 安装与配置过程中的排错宝典

如果配置错误的软件版本,就有可能找不到一些需要用到的文件和目录,有可能造成配置缺失、模块加载等原因,所以这一点必须引起足够的重视。
其次,对于PHP,可能会使用PHP 4.x版本,而不选用PHP 5.x版本,在前文中没有介绍PHP 4.x版本的配置方法,但是在每一步都介绍了操作的目的,大家可以按照说明配置PHP 4.x版本的软件,我们亲自试过,没有多困难。但是还是推荐使用比较新的PHP 5.x版本,有一些新特性可能会在未来用到,PHP 4.x版本在实际生产环境中已经无法满足用户的需要了。
2.4.2 关于软件的依赖性
在前文中,我们遇到了在Linux环境下安装RRDTool时,软件的依赖性错误。这里再重申一遍这种错误的解决方案,因为这一点很重要,曾经困扰我们很久。
在Linux操作系统安装RRDTool软件的过程中,操作系统提示互为依赖性的错误,通过在同一时间安装多个RPM包的方式还是无法解决问题,在尝试了很多次之后,发现一个比较可行的解决方案。
查询手册知道RRDTool要在Linux系统中正常工作,首先需要有以下模块:
Glib
libart
libpng
pixman
freetype
fontconfig
cairo
pango
rrdtool
其他的模块安装相对容易,没有遇到太多依赖性的错误,但是libart模块带来很大的困扰,如果你也像我们一样遇到这样的困扰,那么配置脚本2-22的解决方案将会对你有用。
配置脚体2-22 安装libart模块

#首先,尝试正常安装libart模块
#tar zxvf libart_lgpl-2.3.17.tar.gz
#cd libart_lgp-2.3.17
#./configure
#make
#make install
#cp -r /usr/local/include/libart-2.0 /usr/include
#如果安装该软件发生报错,则安装cgilib-0.5.tar.gz
#tar zxvf cgilib-0.5.tar.gz
#cd cgilib-0.5
#make
#cp libcgi.a /usr/local/lib
#cp cgi.h /usr/include
#如果仍然报错,则安装libart_lgpl-devel包
#yum install libart_lgpl-devel
#如果还报错configure: error: Please fix the library issues listed above and try again, 则安装pango-devel和cairo-devel这两个开发包
#yum install pango-devel* cairo-devel*

以上问题都解决之后,记住,需要把rrdtool、rrdtool-devel、perl-rrdtool这3个包在同一时间使用rpm命令安装,以排除libart模块的依赖性问题。
2.4.3 关于权限
权限问题贯穿安装、监控和日常维护当中,在很多情况下,系统无法正常部署,或者部署完成后不出图的问题,多集中在权限的设置上,在本章的后面会多次提到如何妥善地处理权限问题,在安装阶段涉及最多的是Cacti环境中的文件系统权限和数据库权限。
在文件系统中,需要修改rra文件夹下的log目录权限,Windows平台通过GUI可以很快设定好,这里就不再赘述了。在Linux平台下,输入配置脚本2-23中的内容。
配置脚体2-23 修改log目录的权限

#chown -R cacti rra/ log/

这么做的目的是将rra/log文件的所有者改成Cacti,这样使用Cacti用户的时候,程序可以将系统的日志正常写入log文件中。
在数据库系统中,通常会考虑安全因素,把MySQL数据库和Cacti系统分开部署,但是MySQL系统默认不允许远程连接,所以需要打开MySQL数据库的远程连接,并把Cacti数据库的所有者改为用户Cacti。请参考配置脚本2-24中的内容。
配置脚体2-24 开启MySQL系统的远程连接

#首先将host字段的值改为%,表示在任何客户端机器上均能以cacti用户登录到mysql服务器
#mysql>update user set host= '%' where user = 'cacti';
#为Cacti数据库赋予权限
#mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'Cacti用户的
密码';
#mysql> flush privileges;
#数据库的权限设置完毕
上一篇:我的Android进阶之旅------>Android的ListView数据更新后,如何使最新的条目可以自动滚动到可视范围内?


下一篇:Apache Flink 进阶(十二):深度探索 Flink SQL