设为首页 收藏本站
查看: 1222|回复: 0

[经验分享] linux下的cacti安装、监控远程主机及优化

[复制链接]

尚未签到

发表于 2019-1-10 09:10:07 | 显示全部楼层 |阅读模式
  用cacti可以监控本机、远程机器资源与机器的状态,包括cpu、内存、tcp等等信息,当被监控的机器超负载运行时会自动发邮件通知报警。

  将一台linux5.6机器作为cacti服务器,另外2台linux5.6模拟被监控的机器。要保证cacti服务器可以访问因特网。用到的软件包有cacti087e_linux_generic-20100519-yrg.zip(cacti的一个模板,号称通用模板)、cacti-0.8.7e-cn-utf8.tar.gz(cacti安装版,中文版)、cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz(cacti插件)、cacti-spine-0.8.7e.tar.gz(一个cacti轮询器—spine,cacti自带了一个叫cmd.php的轮询器,但性能不如spine的高)、epel-release-5-4.noarch.rpm(为了安装rrdtool需要预先配置yum源环境,该包的作用是配置yum源环境)、monitor-0.8.2.zip(cacti监控视图插件)、settings-0.5.zip(cacti要有报警功能,为了实现报警功能,cacti需要settings这个依赖包)、thold-0.4.1.tar.gz(cacti报警插件)
  配置过程:

  对cacti服务器的操作:

  [root@localhost ~]# yum install httpd mysql-server php php-mysql gd net-snmp php-snmp net-snmp-utils net-snmp-devel mysql-devel  openssl-devel fonts-chinese libtool gcc gcc-c++ -y    ///说明:配置yum源用yum安装所需软件,cacti要基于lamp环境运行,所以要安装Apache、mysql、php以及相关的软件包,cacti同时也要靠snmp协议工作,在linux中snmp协议的软件包是net-snmp,故也要把snmp装上。cacti装好之后打开浏览器查看,会发现图像说明文字是乱码,所以要安装中文字体,这里安装fonts-chinese,在接下来要安装的spine插件时,要预先安装libtool包,否则会报:configure: error: cannot run /bin/sh config/config.sub这个错误,这里用yum安装的fonts-chinese以及libtool软件包可以不在此处安装,等问题出现时再安装也不迟。
  [root@localhost ~]# service httpd start
  [root@localhost ~]# service snmpd start
  [root@localhost ~]# service mysqld start    ///分别启动Apache、snmp、mysql服务
  [root@localhost ~]# chkconfig mysqld on
  [root@localhost ~]# chkconfig httpd on
  [root@localhost ~]# chkconfig snmpd on      ///分别将mysql、Apache、snmp服务设置成开机自启动
  mysql> create database cacti default character set utf8;    ///进入mysql数据库,创建名为cacti的数据库,设置默认的字体为utf8
  mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option;   ///设置数据库cacti的用户名密码分别是cacti
  mysql> flush privileges;    ///将上面新建的数据库cacti生效
      [root@localhost ~]# mkdir software  //在root目录下新建software目录,把所需要的软件包下载或拷贝到这个目录下
  [root@localhost software]# tar zxf cacti-0.8.7e-cn-utf8.tar.gz   ///解压缩cacti安装包
  [root@localhost software]# mv cacti-0.8.7e-cn-utf8 /var/www/html   ///将解压缩后的cacti安装包拷贝到Apache文件目录下,这里用的是Apache的默认目录,也可以新建一个目录,比如:/data1/www,然后将该包拷贝到/data1/www/下
  [root@localhost html]# mv cacti-0.8.7e-cn-utf8 cacti
  [root@localhost html]# vi /var/www/html/cacti/include/config.php   ///修改配置cacti配置文件,将用户名密码改成在数据库里面建立的用户名密码,这里都是cacti
  /* make sure these values refect your actual database/host/user/password */
  $database_type = "mysql";
  $database_default = "cacti";
  $database_hostname = "localhost";
  $database_username = "cacti";
  $database_password = "cacti";
  $database_port = "3306";
  [root@localhost html]# vi /etc/httpd/conf/httpd.conf    ///修改配置Apache配置文件,这里是把cacti安装在默认的Apache目录下,如果是安装在其他目录下,还需要更改DocumentRoot目录以及更改目录
  DirectoryIndex index.php index.html index.html.var
  AddType application/x-httpd-php .php
  [root@localhost html]# vi /etc/httpd/conf.d/cacti.conf   ///创建cacti.conf文件,如果是将cacti安装在其他目录下,要将里面的目录重新指定
  Alias /cacti /var/www/html/cacti
  
  DirectoryIndex index.php
  AllowOverride all
  order deny,allow
  allow from all
  php_flag magic_quotes_gpc on
  php_flag track_vars on
  
  [root@localhost cacti]# mysql -uroot -p cacti < /var/www/html/cacti/cacti.sql   ///导入cacti库所需要的数据结构
  [root@localhost cacti]# crontab -e   ///编辑crontab,设置每隔5分钟刷新一次图
  */5 * * * * php /var/www/html/cacti/poller.php > /dev/null
  [root@localhost software]# rpm -ivh epel-release-5-4.noarch.rpm
  [root@localhost software]# yum install rrdtool -y   ///安装rrdtool,作为画图用
  [root@localhost cacti]# /etc/init.d/httpd restart
  [root@localhost cacti]# /etc/init.d/mysqld restart
  [root@localhost cacti]# /etc/init.d/snmpd restart     ///分别重启相关服务
  现在可以打开浏览器,在地址栏输入http://ip地址/cacti,开始在图形界面上对cacti操作,我的ip是10.10.16.29.
  将上面安装的fonts-chinese安装包路径地址填写到cacti的设置-->路径-->rrdtool默认字体路径下
  [root@localhost software]# ls /usr/share/fonts/chinese/TrueType/ukai.ttf
  /usr/share/fonts/chinese/TrueType/ukai.ttf
http://s3.运维网.com/wyfs02/M01/3D/5F/wKioL1PEkqWyY2YSAAYZuxnPEKM328.jpg    可以在cacti服务器的终端商手动触发poller:

  [root@localhost software]# php /var/www/html/cacti/poller.php
  [root@localhost software]# php /var/www/html/cacti/poller.php --force  ///也可以手动强制触发poller
  01/23/2014 10:01:51 AM - SYSTEM STATS: Time:2.3562 Method:spine Processes:2 Threads:10 Hosts:4 HostsPerProcess:2 DataSources:77 RRDsProcessed:62
  OK u:0.00 s:0.00 r:2.05
  OK u:0.00 s:0.00 r:2.05
  OK u:0.00 s:0.00 r:2.05
  OK u:0.00 s:0.00 r:2.05
  [root@localhost software]# tailf /var/www/html/cacti/log/cacti.log    ///每次手动触发,或者crontab自动触发,在cacti日志里面都能看到相关记录,若要报错信息也会在这里显示
  01/23/2014 09:45:04 AM - SYSTEM STATS: Time:2.3162 Method:spine Processes:2 Threads:10 Hosts:4 HostsPerProcess:2 DataSources:77 RRDsProcessed:62
  01/23/2014 09:45:06 AM - SYSTEM THOLD STATS: Time:2.6616 Tholds:1 Hosts:0
  01/23/2014 09:50:04 AM - SYSTEM STATS: Time:2.3266 Method:spine Processes:2 Threads:10 Hosts:4 HostsPerProcess:2 DataSources:77 RRDsProcessed:62
  01/23/2014 09:50:06 AM - SYSTEM THOLD STATS: Time:2.3926 Tholds:1 Hosts:0
  01/23/2014 09:55:04 AM - SYSTEM STATS: Time:2.3599 Method:spine Processes:2 Threads:10 Hosts:4 HostsPerProcess:2 DataSources:77 RRDsProcessed:62
  01/23/2014 09:55:07 AM - SYSTEM THOLD STATS: Time:2.8152 Tholds:1 Hosts:0
  01/23/2014 10:00:03 AM - SYSTEM STATS: Time:2.3356 Method:spine Processes:2 Threads:10 Hosts:4 HostsPerProcess:2 DataSources:77 RRDsProcessed:62
  01/23/2014 10:00:06 AM - SYSTEM THOLD STATS: Time:3.1911 Tholds:1 Hosts:0
  01/23/2014 10:01:51 AM - SYSTEM STATS: Time:2.3562 Method:spine Processes:2 Threads:10 Hosts:4 HostsPerProcess:2 DataSources:77 RRDsProcessed:62
  01/23/2014 10:01:54 AM - SYSTEM THOLD STATS: Time:2.7351 Tholds:1 Hosts:0
  到这里,cacti基本的安装已经完成,可以实现监控本地机器,下面安装cacti的相关插件:

  1.安装轮询器spine插件

  [root@localhost software]# tar zxf cacti-spine-0.8.7e.tar.gz
  [root@localhost software]# cd cacti-spine-0.8.7e
  [root@localhost cacti-spine-0.8.7e]# ./configure   ///如果到这里没有安装libtool依赖包,会报错:configure: error: cannot run /bin/sh config/config.sub
  [root@localhost cacti-spine-0.8.7e]# make &&make install
  [root@localhost ~]# vi /usr/local/spine/etc/spine.conf   ///修改spine轮询器连接数据库权限,更改配置文件里面的连接数据库的用户名密码
  DB_Host         localhost
  DB_Database     cacti
  DB_User         cacti
  DB_Pass         cacti
  DB_Port         3306
  [root@localhost ~]# ln -s /usr/local/spine/etc/spine.conf /etc/spine.conf   ///将spine配置文件做软连接
  [root@localhost ~]# echo "/usr/local/spine/bin/spine" >> /etc/rc.local    ///将spine设置为开机自启动
  2.安装cacti plugin插件

      [root@localhost software]# gzip -d cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz
      [root@localhost software]# mv cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff /var/www/html/cacti/
      [root@localhost software]# cd /var/www/html/cacti/
      [root@localhost cacti]# patch -p1 -N < cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff   ///将该插件(补丁)打进去
      [root@localhost cacti]# mysql -uroot -p cacti < pa.sql/var/www/html/cacti/pa.sql   ///导入cacti库所需要的cacti插件数据结构
      [root@localhost cacti]# vi /var/www/html/cacti/include/global.php   ////编辑cacti全局配置文件
  
  /* Default database settings*/
  $database_type = "mysql";
  $database_default = "cacti";
  $database_hostname = "localhost";
  $database_username = "cacti";      ///将用户名密码分别改成cacti
  $database_password = "cacti";
  $database_port = "3306";
          ......
          $config['url_path'] = '/cacti/';   ///将此处的路径由 / 改成 /cacti/,注意这里改成的是/cacti/,不是/cacti,否则cacti会找不到图片路径,之前我犯过数次错误,经过很长一段时间排错,发现错误的根源是少了“/”

      3.安装monitor插件

      [root@localhost software]# mkdir monitor
      [root@localhost software]# cp monitor-0.8.2.zip monitor/
      [root@localhost monitor]# unzip monitor-0.8.2.zip
      [root@localhost software]# mv monitor /var/www/html/cacti/plugins/
      [root@localhost software]# mysql -uroot -p cacti < /var/www/html/cacti/plugins/monitor/monitor.sql   ///导入cacti库所需要的monitor数据结构
  [root@localhost software]# vi /var/www/html/cacti/include/global.php   ///再次编辑cacti全局配置文件,在$plugins = array();下面增加$plugins[] = 'monitor';
  $plugins = array();
  //$plugins[] = 'thold';
  $plugins[] = 'monitor';
  4.安装thold报警插件

  由于thold软件包依赖settings软件包,所以要先安装settings软件包:

  4.1安装settings软件包:

  [root@localhost software]# mkdir settings
  [root@localhost software]# cp settings-0.5.zip settings
  [root@localhost settings]# unzip settings-0.5.zip
  [root@localhost software]# mv settings /var/www/html/cacti/plugins    ///只需要将settings配置文件拷贝到cacti的plugins目录下就可以了,不需要导入数据库
  4.2安装thold报警软件包

  [root@localhost software]# tar zxf thold-0.4.1.tar.gz
  [root@localhost software]# mv thold /var/www/html/cacti/plugins  ///将thold包移到plugins下
  [root@localhost software]# mysql -uroot -p cacti < /var/www/html/cacti/plugins/thold/thold.sql   ///导入cacti库所需要的thold数据结构
  [root@localhost software]# vi /var/www/html/cacti/include/global.php    ///又一次编辑cacti全局配置文件,在$plugins = array(); 这行下面增加下面两行
  $plugins[] = 'settings';
  $plugins[] = 'thold';
  走到这里,cacti的需要的插件都安装好了,也可以选择其他货更多的插件安装,方法类似。下面用浏览器进入cacti图形界面进行一些设置

http://s3.运维网.com/wyfs02/M02/3D/68/wKiom1PEoDPxOnT2AAXcCVJN518035.jpg    进到cacti界面,先刷新一下,发现上面的工具栏会多出一个monitor的按钮,点击左边树状的工具栏中的用户管理,选择admin,勾上view Thresholds,选择保存如上图。然后会发现在左侧的工具栏中多了一个插件管理选项,点击插件管理,点安装Thresholds插件,点启用Thresholds插件,此时会发现上面的工具栏多出了thold选项,这说明这里的操作成功了,如下图:


  

  现在开始做添加远程主机、并监控远程主机的操作:
  首先要在被监控的远端机器上面启用snmp协议(linux和windows主机都要启用)
  1.在被监控的linux主机上安装net-snmp包,并修改snmp配置文件
  [root@localhost ~]# yum install net-snmp -y
  [root@localhost ~]# vi /etc/snmp/snmpd.conf   ///修改第62行、第85行即可
  62 access  notConfigGroup ""      any       noauth    exact  all   none none
  ....

  85 view all    included  .1                               80
  [root@localhost ~]# service snmpd start
  2.用浏览器登录cacti服务器的ip地址,http://ip/cacti/
  将cacti087e_linux_generic-20100519-yrg.zip这个模板解压缩,将压缩后得到的配置文件导入到cacti中,具体做法:进入cacti图形界面,选择左侧工具栏“导入/导出”里的“导入模板”,点选择文件,将刚刚解压后的模板文件导进去,以后监控其他主机就用这个模板,当然也可以用其他的模板,需要导入其他的模板。如下图:
  http://s3.运维网.com/wyfs02/M01/3D/6E/wKioL1PEpNWRpDOfAAMamqU4lYM557.jpg
  为了便于监控数以百计的服务器,接下来添加图像树,添加图像树的目的就是讲被监控的机器分门别类的放到一起,为的是便于监控,选择左侧工具栏的“图像树”,在新出现的页面的右上方选择“添加”在新出现的页面中填写图像树的名称(可以写的有意义一点),点击“创建”即可。
  接下来添加被监控的主机。选择图形界面上的左侧的“管理”中的“设备”按钮,在新弹出的界面中点击右上角的“添加”,接下来具体做法如下图,然选择创建
  http://s3.运维网.com/wyfs02/M00/3D/6E/wKiom1PEpbSSiRjXAAYjCviuxHM144.jpg点击完创建之后会进入另一个界面,在该界面的右上方点“为此设备生成图像”,接下来具体操作如下图,右侧划红线的部分可以随便选择监控与否,底下的“选择图像类型”,选择64位的,选择默认的话以后会出现问题:
  http://s3.运维网.com/wyfs02/M01/3D/6F/wKiom1PEpmKhSZWoAAZGdE8jsI0838.jpg然后选择左侧工具栏中的“管理”里的“图像管理”选项,具体做法如下图,选择右侧复选框勾选需要监控的资源,在底下选择将这些药监控的东西放到一个指定的图像树里面,便于监控。
  http://s3.运维网.com/wyfs02/M00/3D/6F/wKiom1PEp3CAL4caAAsYtaHU-Uw883.jpg到这里,监控其他机器运行状态的操作完成。
  

  3.配置cacti,做报警信息:
  选择左侧工具栏中的“配置”里的“设置”选项,再选择上方的“Alerting/Thold”,在相应位置填写报警信息要发给的邮箱地址,如下图:

http://s3.运维网.com/wyfs02/M00/3D/71/wKioL1PEqimRcZNYAAkeFsGm5RU091.jpg然后再选择上方工具栏中的“Mail/DNS”选项,如下图:

http://s3.运维网.com/wyfs02/M01/3D/71/wKiom1PEqs7wyVbxAAeDsjfFXUo300.jpg然后选择左侧的“Templates”里的“Threshold”选项,在出现的界面的右上方,选择“添加”,在出现的界面中选择要监控的主机名,选择要监控的资源信息,选择数据资源,选择创建,如下图:


     

  在出现的界面中填写相应信息,这里的阀值(2和1)是我为了演示更明显才这么做的,完成后,cacti会每隔5分钟发一封邮件给我提示报警。如下图:
http://s3.运维网.com/wyfs02/M02/3D/71/wKioL1PEq8_TEybIAAeAgnI4RIE034.jpg 到这里,监控远程机器并发邮件给自己的邮箱报警的功能已经完成。

  

  下面对cacti服务器进行优化:
  1. 采用spine轮询器,即 设置-->轮询器-->轮询器类型spine
  2. 设置spine 进程数和线程数,如下图:


  3. 增大php.ini 内的memory_limit ,即编辑文件 : vi /etc/php.ini ,按实际需求调整数值

  4. 增大mysql的最大连接数,即:

  mysql> use cacti
  mysql> show variables like "%max_connections";
  +-----------------+-------+
  | Variable_name   | Value |
  +-----------------+-------+
  | max_connections | 100   |
  +-----------------+-------+
  1 row in set (0.00 sec)
  

  mysql> set global max_connections=5000;
  Query OK, 0 rows affected (0.00 sec)
  

  mysql> show variables like "%max_connections";
  +-----------------+-------+
  | Variable_name   | Value |
  +-----------------+-------+
  | max_connections | 5000  |
  +-----------------+-------+
  1 row in set (0.00 sec)
  
  5. 添加mysql table的index
  CREATE INDEX `data_template_data_id` ON `data_input_data` (`data_template_data_id`);
  

  CREATE INDEX `host_id_snmp_query_id_snmp_index` ON data_local (`host_id`,`snmp_query_id`,`snmp_index`);
  

  CREATE INDEX `local_data_id_data_source_name` ON data_template_rrd (`local_data_id`,`data_source_name`);
  

  CREATE INDEX `graph_template_id_local_graph_id` ON graph_templates_item (`graph_template_id`,`local_graph_id`);
  

  CREATE INDEX `local_graph_template_item_id` ON graph_templates_item (`local_graph_template_item_id`);
  

  CREATE INDEX `host_id_snmp_query_id_snmp_index` ON host_snmp_cache (`host_id`,`snmp_query_id`,`snmp_index`);
  

  CREATE INDEX `local_data_id_rrd_path` ON poller_item (`local_data_id`,`rrd_path`);
  

  CREATE INDEX `host_id_rrd_next_step` ON poller_item (`host_id`,`rrd_next_step`);
  

  CREATE INDEX host_id_snmp_query_id ON host_snmp_cache (host_id,snmp_query_id);
  

  CREATE INDEX host_id_snmp_port ON poller_item (host_id,snmp_port);
  

  CREATE INDEX data_source_path ON data_template_data (data_source_path);
  

  6. 加上RRA路径结构,即 设置-->路径-->勾选RRA路径结构
  7. 定期清理poller_output表

  

  ok,到这里cacti配置、监控、优化完成!




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-661456-1-1.html 上篇帖子: Windows 环境下一键安装 Cacti ( 仅集成Cacti ) 下篇帖子: yum安装cacti及集成个插件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表