前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cacti 中查询MySQL数据库占用磁盘大小并返回的php修改了

Cacti 中查询MySQL数据库占用磁盘大小并返回的php修改了

作者头像
星哥玩云
发布2022-06-29 18:44:47
1.7K0
发布2022-06-29 18:44:47
举报
文章被收录于专栏:开源部署

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档