Cacti

Cacti监控实践

一、监控对象

前面已经部署过cacti服务了,现在我们需要利用它监控我们想要监控的目标,监控对象均是远程系统或应用,系统包括Centos7、Windows Server,应用包括apache、nginx、tomcat、mysql、mongodb、redis,以上对象仅仅是进行测试所选择的比较熟悉的系统和应用,cacti能监控的对象远远不止这些,本文参照的部署是以该仓库docker部署cacti为基础

二、开始

2.1.准备工作

2.1.1.snmpd服务部署

这里假设cacti服务器地址为192.168.43.100,目标服务器地址192.168.43.101
因为cacti是利用snmp协议来远程抓取数据的,所以我们需要给目标服务器安装snmp服务
yum install net-snmp net-snmp-devel
配置snmp服务
vi /etc/snmp/snmpd.conf
将com2sec notConfigUser default public 修改成 com2sec notConfigUser 192.168.43.100 public
将access notConfigGroup "" any noauth exact system none none 修改成access notConfigGroup "" any noauth exact all none none
并添加一行view all included .1 80
保存并重启snmp服务
systemctl restart snmpd
systemctl enable snmpd
systemctl daemon-reload
最好是关闭firewalld方便测试
上述操作也可以使用脚本推送脚本部署snmpd服务

2.1.2.Installing SSH-Based Templates

除了上面需要在目标服务器上安装snmpd服务以外,我们需要通过ssh私钥并利用linux命令来获得被监控主机的数据,安装此私钥是前提
mkdir -p /etc/cacti
ssh-keygen
Enter file in which to save the key (/root/.ssh/id_rsa): /etc/cacti/id_rsa
Your identification has been saved in /etc/cacti/id_rsa.
Your public key has been saved in /etc/cacti/id_rsa.pub
chown root /etc/cacti/id_rsa*
ssh 192.168.43.101 adduser cacti远程给目标服务器创建一个用户cacti,然后再登陆目标服务器设置该用户的密码
ssh-copy-id -i /etc/cacti/id_rsa.pub cacti@192.168.43.101
ssh -i /etc/cacti/id_rsa cacti@192.168.43.101 echo "it works"输出
it works表示配置成功

2.1.3.Installing and Configuring the PHP Script

监控应用需要用到模板有两种
第一种:
package模板
这种模板必须使用CLI的方式安装
第二种:
xml模板
这种最好使用cactiweb界面来导入更直观
其实这两种模板都来自于percona,只是导入形式有所区别,且依赖于脚本ss_get_by_ssh.php,这个脚本可以在第二中模板下载中获得
cp -ap template/xml_template/percona-monitoring-plugins-1.1.2/cacti/scripts/ss_get_by_ssh.php container/cacti/scripts/
由于我们的安装版本以及路径和改文件里面的有所区别,所以需要做一些修改
修改文件的通用部分
第一处
cat ss_get_by_ssh.php

$ssh_user   = 'cacti';                           # SSH username
$ssh_port   = 22;                                # SSH port
$ssh_iden   = '-i /etc/cacti/id_rsa'; # SSH identity

第二处
cat ss_get_by_ssh.php

# Parameters for specific graphs can be specified here, or in the .cnf file.
$status_server = 'localhost';             # Where to query for HTTP status
$status_url    = '/server-status';        # The URL path to HTTP status  

第三处
cat ss_get_by_ssh.php

if ( file_exists('/etc/cacti/' . basename(__FILE__) . '.cnf' ) ) {
   debug("Found configuration file /etc/cacti/" . basename(__FILE__) . ".cnf");
   require('/etc/cacti/' .basename(__FILE__) . '.cnf');
}

除了以上三处需要修改外,还有一个配置文件需要配置
cat /etc/cacti/ss_get_by_ssh.php.cnf

$ssh_user = 'cacti';
$ssh_iden = '-i /etc/cacti/id_rsa';

2.2.监控远程linux主机

监控linux server只需要修改通用部分即可
在线文档
上传监控模板
docker cp template/package_template/percona_gnulinux_server_ht.xml.gz php_cacti:/usr/local/Nginx/html/cacti/cli
docker exec php_cacti /usr/local/php/bin/php /usr/local/Nginx/html/cacti/cli/import_package.php --filename=/usr/local/Nginx/html/cacti/cli/percona_gnulinux_server_ht.xml.gz

支付宝扫码打赏 微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章

linuxwt's Picture
linuxwt

我叫王腾,来自武汉,2016年毕业后在上海做了一年helpdesk,自学了linux后回武汉从事系统运维的工作,从2017年开始写博客记录自己的学习工作,现在正在进行数据迁移到此博客,目前就职于中国移动设计院有限公司,个人的座右铭是:逃脱舒适区才能在闲暇的时候惬意的玩耍。

武汉光谷 https://linuxwt.com

Subscribe to 今晚打老虎

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!

Comments