共计 4750 个字符,预计需要花费 12 分钟才能阅读完成。
cacti 中查询 MySQL 数据库占用磁盘大小并返回的 php 修改了,但在 cacti 中配置了模板,可以在 device 中创建表格并且可以生成 data source 的条目,但始终没有返回数据 不知道是什么问题,暂时没有办法解决。
尝试过用 script query 和 script_server 的方式,由于还是不了解也不知道是对 cacti 的了解不够还是什么原因 始终没有返回值
哪位大神给指点下
贴这里记录下,因为之前通过 snmpwalk 的方式进行制作模板已经成功,没办法用自定义 mib 的方式进行实现吧,后面再分享
data query 中引用的 xml 文件
<interface>
<name>get mysql databases</name>
<script_path>|path_php_binary| -q |path_cacti|/scripts/flashapp_mysql_space.php</script_path>
<arg_prepend>|host_hostname|</arg_prepend>
<arg_index>index</arg_index>
<arg_query>query</arg_query>
<arg_get>get</arg_get>
<arg_num_indexes>num_index</arg_num_indexes>
<output_delimeter>:</output_delimeter>
<index_order>hrDataBasesIndex</index_order>
<index_order_type>numeric</index_order_type>
<index_title_format>|chosen_order_field|</index_title_format>
<fields>
<hrDataBasesIndex>
<name>DataBasesIndex</name>
<direction>input</direction>
<query_name>index</query_name>
</hrDataBasesIndex>
<hrDataBasesDescr>
<name>Description</name>
<direction>input</direction>
<query_name>desc</query_name>
</hrDataBasesDescr>
<hrDataBasesSize>
<name>Total Size</name>
<direction>output</direction>
<query_name>space</query_name>
</hrDataBasesSize>
</fields>
</interface>
对应的 php 查询文件也做了修改调整了 参数 和输出方法
<?php
/*
* flashapp_mysql_space.php
* ————————————————-
* enable cacti to read mysql database size
* Originally by tongyuan at flashapp dot cn – 2013/12/24
*
* usage:
* flashapp_mysql_space.php db_host <index|num_nidex>
* flashapp_mysql_spqce.php db_host query index|desc
* flashapp_mysql_spqce.php db_host get space database_name
*
* mysql user must have permissions to do this.
* give myuser /show databases/ and /select/ permissions .
*
* examle:
* grant select,process,super,show databases on *.* \
* to monitor@’192.168.11.0/255.255.255.0′ identified by ‘monitor’;
*
*/
$debug=0;
// if ($_SERVER[“argc”] != 5 ){
// echo “Error. Wrong parameter count or paramenter wrong .\n”;
// echo “Usage: ” . $_SERVER[“argv”][0] ;
// echo ” <dbhost> <dbuser> <dbpasswd> <cmd>\n\n”;
// echo “cmd : index|num_index|get \n\n\n”;
// exit(1);
// }
$host = $_SERVER[“argv”][1];
//default user and password is monitor
$username = “monitor”;
$password = “monitor”;
//get all dabase name and count,expect system database.
if ($_SERVER[“argc”] >= 3 ) {
$cmd=$_SERVER[“argv”][2];
if (@mysql_connect($host,$username,$password)) {
$alldataBase = @mysql_query(“show databases”);
$dataBaseNum = 0;
$dataBase=array();
while ($row=@mysql_fetch_array($alldataBase)) {
if ($row[0] != “information_schema”
&& $row[0] != “mysql”
&& $row[0] != “performance_schema”
&& $row[0] != “test” ) {
$dataBase[]=$row[0];
$dataBaseNum+=1;
}
}
if ($debug) {echo “all dataBase Number is :”;print_r($dataBaseNum);echo “\n”;}
if ($debug) {echo “all dataBase is :”;print_r($dataBase);echo “\n”;}
// output index
if ($cmd == ‘index’) {foreach ($dataBase as $d){echo $d.”\n”;} exit(0); }
// output index_number
if ($cmd == “num_index”) {echo $dataBaseNum . “\n”;}
if ($cmd == “query” || $cmd ==”get”) {
$arg=$_SERVER[“argv”][3];
// get databses space
if ($dataBaseNum == 0) {exit(0) ; }
foreach ($dataBase as $row){
$resault=@mysql_query(“select sum(DATA_LENGTH)+sum(INDEX_LENGTH) from information_schema.tables where table_schema='”.$row.”‘”);
$space=@mysql_fetch_row($resault)[0];
$dataBaseSpace[] = $space?$space:”0″;
}
/*DEBUG*/if ($debug) {echo “All dataBase space is :”;print_r($dataBaseSpace);echo “\n”;}
// output database space
if ($cmd == “query” && ($arg == “index” || $arg == “desc”)) {
foreach ($dataBase as $key => $value) {
echo $value . “:” .$value . “\n”;
}
exit(0);
}
if ($cmd == “get” && $arg == “space”) {
$get_database=$_SERVER[“argv”][4];
foreach ($dataBase as $key => $value) {
if ($value == $get_database){
echo $dataBaseSpace[$key];
}
}
}
}
} else {
die(“Can’t connected to Server!\n”);
}
}
?>
相关文件 xml 和 php 文件下载 :
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是 www.linuxidc.com
具体下载目录在 /2014 年资料 / 1 月 / 2 日 /Cacti 中查询 MySQL 数据库占用磁盘大小并返回的 php 修改了
下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm
Cacti 的详细介绍 :请点这里
Cacti 的下载地址 :请点这里
相关阅读 :
RHEL6.4 环境 Cacti 中 spine 安装 http://www.linuxidc.com/Linux/2013-11/92797.htm
RHEL6.4 中使用 Cacti+Spine 监控主机实现发送邮件报警 http://www.linuxidc.com/Linux/2013-11/92795.htm
CentOS 5.5 完整安装 Cacti+Spine http://www.linuxidc.com/Linux/2011-12/49701.htm
CentOS 6 下 Cacti 搭建文档 http://www.linuxidc.com/Linux/2013-06/86595.htm
RHEL5.9 下 Cacti 监控部署详解 http://www.linuxidc.com/Linux/2013-06/85427.htm
CentOS 6.3 下 Cacti 安装���解 http://www.linuxidc.com/Linux/2013-05/84279.htm
CentOS Linux 下快速安装配置 Cacti 中文版 http://www.linuxidc.com/Linux/2013-03/81627.htm