在linux的运维中对服务器的监控,时刻了解服务器的状态是确保服务能够正常允许的条件,linux的服务监控平台有很多,
cacti
下面对cacti(仙人掌),一种比较流行的开源监控软件做安装配置
具体到工作原理如下:
Cacti 是用 php 语言实现的一个软件,它的主要功能是用 snmp 服务获取数据,然后用
rrdtool 储存和更新数据,当用户需要查看数据的时候用 rrdtool 生成图表呈现给用户。因此,snmp 和 rrdtool 是 cacti 的关键。Snmp 关系着数据的收集,rrdtool 关系着数据存储和图表的生成。snmp 抓到数据不是存储在 mysql 中,而是存在 rrdtool 生成的 rrd 文件中(在 cacti 根目录的 rra 文件夹下,一般以 rra 为后缀名称)。简单原理图如下:
下面主要讲解其配置:
1) Cacti 服务器端安装
官网下载 cacti 相关软件,一共需要三个软件,下载地址分别如下:http://www.cacti.net/downloads/cacti-0.8.8a.tar.gzhttp://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gzhttp://www.cacti.net/downloads/spine/cacti-spine-0.8.8a.tar.gz2) 安装 LAMP 系统环境这里采用 yum 安装方式,安装命令:yum install httpd mysql mysql-server php php-mysql php-json php-pdo -y3) 安装 rrdtool 采集工具
安装 rrdtool 之前需要安装相应的 lib 库,如下安装:yum install cairo-devel libxml2-devel pango pango-devel –ytar xzf rrdtool-1.4.5.tar.gz ;cd rrdtool-1.4.5 ; ./configure --prefix=/usr/local/rrdtool/make &&make install ;ln -s /usr/local/rrdtool/bin/* /usr/local/bin/在make rrdtool采集工具过程中可能会有如下依赖报错
报错1:
make[3]: *** [perl-piped/Makefile] 错误 2
make[3]: Leaving directory`/home/skyboy/tools/cacti_tools/rrdtool-1.2.30/bindings'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory`/home/skyboy/tools/cacti_tools/rrdtool-1.2.30/bindings'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory`/home/skyboy/tools/cacti_tools/rrdtool-1.2.30
[root@sky9896 tools]#yum -y install perl-ExtUtils-MakeMaker
#解决问题
报错2:
configure: error: Please fix the library issues listedabove and try again.
[root@sky9896 tools]#yum-y install pango*
报错3:
configure: error: Please fix thelibrary issues listed above and try again.
[root@sky9896 tools]#yum –y install pango-devel*cairo-devel*
4) 安装 SNMP 服务
yum install net-snmp net-snmp-utils –y5) 安装 cacti 主程序tar xzf cacti-0.8.8a.tar.gz && mv cacti-0.8.8a /var/www/html/cacti/6) 创建 cacti 数据库mysql -uroot –p 输入你的密码进入数据库,然后创建数据库:create database cacti;创建数据库grant all on cacti.* to cacti@'localhost' identified by "123456";创建用户并授权flush privileges; 刷新权限mysql 配置完毕后,把 cacti 数据导入 cacti 数据库mysql -ucacti -p123456 cacti </var/www/html/cacti/cacti.sql配置完 mysql 后,我们需要设置 cacti rra、log 目录的权限,这里设置为 777:chmod -R 777 /var/www/html/cacti/rra/chmod -R 777 /var/www/html/cacti/log/7) 修改 cacti 全局配置文件vi /var/www/html/cacti/include/config.php 为如下配置:
8) 添加 Rrdtool 抓图任务计划
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php >>/tmp/cacti_rrdtool.log2 >&19) Cacti 安装完毕,测试访问通过 http://ip/cacti/ 访问出现如下界面
,点击 NEXT 下一步。
默认一直点击下一步:
进入登录界面,第一次需要修改密码:
进入 Cacti 配置管理界面
点击 device,可以添加设备,默认可以看到 127.0.0.1 这台服务器。右上角 Add 可以增加设备。
点击 localhost 可以看到具体的设置,包括采用的 snmp 协议版本,监控的名称等:
如果出现 snmp error,检查 snmp 服务是否已启动,或者是否有权限。出现如上信息则表示
正常。
点击左上角第二个按钮,graphs 查看 cacti 图像—选择 localhost 主机—右边会显示 cacti
每 5 分钟的监控图像。nagios
能够做到和cacti一样的监控作用,甚至可以把二者进行整合:
Nagios 是一款开源的免费网络监视工具,能有效监控 Windows、Linux 和 Unix 的主机
状态,交换机路由器等网络设置,打印机等。
在系统或服务状态异常时发出邮件或短信报警
第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
其原理图如下:
下面介绍其安装
1) Nagios 服务端安装
同样安装 nagios 服务需要安装 LAMP 环境,这里省略,可以参考之前的 cacti PHP 环境安装方法:官网下载 nagios 相应版本和插件:wgethttp://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.2.1/nagios-3.2.1.tar.gz/downloadhttp://down1.chinaunix.net/distfiles/nagios-plugins-1.4.14.tar.gz/ usr/sbin/useradd nagiostar zxvf nagios-3.2.1.tar.gzcd nagios-3.2.1./configure --prefix=/usr/local/nagios --with-command-group=nagiosmake allmake install //来安装主程序,CGI 和 HTML 文件make install-init //在/etc/rc.d/init.d 安装启动脚本make install-config //来安装示例配置文件,安装的路径是/usr/local/nagios/etcmake install-commandmode //来配置目录权限make install-webconf // 配置 nagios 跟 apache 整合2) 安装 Nagios-pluginstar zxvf nagios-plugins-1.4.14.tar.gzcd nagios-plugins-1.4.14./configure --prefix=/usr/local/nagios --with-nagios-user=nagios--with-nagios-group=nagiosmake && make install3) nagios 访问控制设置htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin输入两次密码即可,登录页面的时候会用到这个密码.4) Nagios 测试访问重启 nagios ,/etc/init.d/nagios restart ;/etc/init.d/httpd restart ;http://localhost/nagios/ 如下图:
点击左侧的 Hosts 可以看到右侧默认 localhost 主机的监控,UP 表示主机目前运行正常:
点击左侧的 Services 可以看到右侧默认 localhost 监控的各个服务的状态,绿色 OK 表示正
常:
默认安装完 nagios,配置文件主目录在/usr/local/nagios/下,目录各种的功能如下:
bin Nagios 可执行程序所在目录etc Nagios 配置文件所在目录sbin Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录share Nagios 网页文件所在的目录libexec Nagios 外部插件所在目录var Nagios 日志文件、lock 等文件所在的目录var/archives Nagios 日志自动归档目录var/rw 用来存放外部命令文件的目录