Cacti如何监控Mysql:Cacti和Nagios是现在比较用得多的网络监控软件。cacti偏重于网络流量,系统负载方面的监控。Nagios则比较注重于主机和服务的监控。
1. 安装监控插件
cd /opt
tar -xzvf mysql-cacti-templates-1.1.2.tar.gz
cp /opt/mysql-cacti-templates-1.1.2/ss_get_mysql_stats.php /var/www/html/scripts/
其实里面我们要监控mysql用到的是:acti_host_template_x_db_server_ht_0.8.6i.xml和mysql_definitions.pl
其他则是监控Apache和Nginx的,接下来我们会介绍到,这里不再详细的讲了。
使用 http 访问 cacti主机 导入
默认CactiEZ 和Cacti别是 admin admin
控制台 - 导入导出 - 模板导入 - 浏览
选中 cacti_host_template_x_db_server_ht_0.8.6i.xml
保存
2. 配置cacti的mysql插件
修改 ss_get_mysql_stats.php
这个账户和密码是 被监控端主机 给 Cacti主机 授权的 账户和密码
Cacti需要这个账户和密码去连接 被监控机 查询状态
设置 cacti 缓存目录在 /tmp/cacti/cache/ 并给予权限
3. 配置被监控端(192.168.5.231)的mysql 给 cacti 主机授权
mysql -ucacti -pcacti -h 192.168.5.231
2).配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有"process"权限。如果要监控InnoDB状态,还必须有"SUPER"权限。
1). 将mysql_stats.php 和 dumpMemcachedStats.php脚本放到cacti脚本目录下(/usr/local/apache/htdocs/cacti/.s /),导入模板时注意选择cacti_host_template_temysql_host-step300-heartbeat600.xml和 cacti_host_template_memcached_host-step300-heartbeat600.xml模板(默认cacti 5分钟取一次数据)
可以使用snmpwalk -c public -v 2c 127.0.0.1 这个命令看是否使用snmpd成功
5. 监控3306端口下MySQL。步骤略。我们重要的是要监控其他端口上的实例。有人说可以更改/var/www/html/scripts/目录下ss_get_mysql_stats.php文件的$port字段为3307等其他端口。但是不可能做到同时监控多个端口的需求。这里就需要添加多个mysql主机模板。
6. 添加新模板,并更改相关配置文件,具体可以参考http://www.iamcjd.com/?p=1133
7. 需要用到模板文件cacti_host_template_mysql.xml和配置状态文件ss_get_mysql_stats.php.从web端导出模板为cacti_host_template_mysql.xml.并复制两份分别问cacti_host_template_mysql_3307.xml和cacti_host_template_mysql_3307.xml.
8. 需要修改cacti_host_template_mysql_3307.xml中的用户密码字段,修改如下:
$mysql_user = ‘cactiuser’;
$mysql_pass = ‘cactiuser’;
$mysql_port = 3307;
$mysql_ssl = FALSE;
更改完之后,并将该文件复制至/var/www/html/scripts/
9. 更改cacti_host_template_mysql_3307.xml:
1) 将其中的</name>全部替换为_3307</name>。
2) 使用一下脚本更改hash值
#/bin/sh
use Digest::MD5 qw/ md5_hex /;
open FILE,'<','cacti_host_template_mysql.xml';
open FILE1,">> cacti_host_template_mysql_3307.xml";
while($line=<FILE>)
{
if($line=~/hash_\w{6}(\w+?)[|]/)
{
@fields = split /\|/, $line;
foreach $d(@fields)
{
if($d=~/hash_\w{6}(\w{32}?)/)
{
$_=$d;
$new=md5_hex($1);
s/$1/$new/;
print FILE1 $_."|";
}
}
}
elsif($line=~/hash_\w{6}(\w+?)[><]/){
$_=$line;
$new=md5_hex($1);
s/$1/$new/;
print FILE1 $_;
}
else{
print FILE1 $line;
}
}
替换完毕后,在替换ss_get_mysql_stats.php为ss_get_mysql_stats_3307.php即可
复制至/var/www/html/scripts。
10. 导入3307端口mysql模板。导入成功后,查看主机模板:如下图
可以看到多了MySQL服务器_3307这个主机模板,好了一些ok。就可以像平常步骤添加监控主机。
11. 若想添加监视其他端口,安装如上步骤重复。
12. 简要阐述完毕。
参考;http://os.51cto.com/art/201104/253003.htm
http://5ydycm.blog.51cto.com/115934/132865/
http://qdjyyl.blog.51cto.com/1222376/709609