Cacti+cygwin avec WAMP

Fermé
Dimitrii Messages postés 686 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 24 août 2013 - 5 févr. 2009 à 13:28
 rasta35 - 8 mars 2010 à 10:46
Bonjour,
j'ai un souci qui me .... RRRrrrr !
Je fais appel aux maîtres de la programmation.

Voila je travail sur la surveillances des éléments actifs du réseaux avec cacti + rrdtool + WAMP.
J'ai suivi le tuto suivant : http://www.nagios-fr.org/wiki/cacti/windows-install
Tout c'est bien déroulé jusqu'à l'installation de cacti ! La j'ai un pb :s
je rentre les commandes suivante :

cd c:/cacti
wget https://www.cacti.net/downloads/patches/0.8.6h/fix_search_session_clear_issue.patch
wget https://www.cacti.net/downloads/patches/0.8.6h/fix_sql_syntax_related_to_default_rra_id.patch
wget https://www.cacti.net/downloads/patches/0.8.6h/nth_percentile_empty_return_set_issue.patch
wget https://www.cacti.net/downloads/patches/0.8.6h/mysql_5x_strict.patch
wget https://www.cacti.net/downloads/patches/0.8.6h/database_autoincrement_corruption.patch
patch -p1 -N < fix_search_session_clear_issue.patch
patch -p1 -N < fix_sql_syntax_related_to_default_rra_id.patch
patch -p1 -N < nth_percentile_empty_return_set_issue.patch
patch -p1 -N < mysql_5x_strict.patch
patch -p1 -N < database_autoincrement_corruption.patch

chmod -R 755 c:/cacti

Toutes les commandes fonctionnent correctement sauf les commandes en gras
Ca me donne les erreurs suivantes :


$ patch -p1 -N < fix_search_session_clear_issue.patch

can't find file to patch at input line 3

Perhaps you used the wrong -p or --strip option?

The text leading up to this was:

--------------------------

|--- cacti-0.8.6h/host.php 2006-01-03 21:08:30.000000000 -0600

|+++ cacti-fixed/host.php 2006-01-06 22:45:51.630701318 -0600

--------------------------

File to patch:_





Et la je comprends rien :s

Sa me demande File to patch ! Donc j’ai mis le chemin du patch ça marche pas j’ai mis le nom du patch sa marche pas nom plus je ne comprends pas.

Quand je met le nom du patch sa me donne :



$ patch -p1 -N < fix_search_session_clear_issue.patch

can't find file to patch at input line 3

Perhaps you used the wrong -p or --strip option?

The text leading up to this was:

--------------------------

|--- cacti-0.8.6h/host.php 2006-01-03 21:08:30.000000000 -0600

|+++ cacti-fixed/host.php 2006-01-06 22:45:51.630701318 -0600

--------------------------

File to patch: fix_search_session_clear_issue.patch

patching file fix_search_session_clear_issue.patch

Hunk #1 FAILED at 726.

1 out of 1 hunk FAILED -- saving rejects to file fix_search_session_clear_issue.

patch.rej



La configuratrion du mon host.php est la suivante :

<?php
/*
+-------------------------------------------------------------------------+
| Copyright (C) 2004 Ian Berry |
| |
| This program is free software; you can redistribute it and/or |
| modify it under the terms of the GNU General Public License |
| as published by the Free Software Foundation; either version 2 |
| of the License, or (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
+-------------------------------------------------------------------------+
| cacti: a php-based graphing solution |
+-------------------------------------------------------------------------+
| Most of this code has been designed, written and is maintained by |
| Ian Berry. See about.php for specific developer credit. Any questions |
| or comments regarding this code should be directed to: |
| - iberry@raxnet.net |
+-------------------------------------------------------------------------+
| - raXnet - http://iankberry.com/ |
+-------------------------------------------------------------------------+
*/

include("./include/auth.php");
include_once("./lib/utility.php");
include_once("./lib/api_data_source.php");
include_once("./lib/api_tree.php");
include_once("./lib/html_tree.php");
include_once("./lib/api_graph.php");
include_once("./lib/snmp.php");
include_once("./lib/data_query.php");
include_once("./lib/api_device.php");

define("MAX_DISPLAY_PAGES", 21);

$device_actions = array(
1 => "Delete",
2 => "Enable",
3 => "Disable",
4 => "Change SNMP Options",
5 => "Clear Statistics"
);

/* set default action */
if (!isset($_REQUEST["action"])) { $_REQUEST["action"] = ""; }

switch ($_REQUEST["action"]) {
case 'save':
form_save();

break;
case 'actions':
form_actions();

break;
case 'gt_remove':
host_remove_gt();

header("Location: host.php?action=edit&id=" . $_GET["host_id"]);
break;
case 'query_remove':
host_remove_query();

header("Location: host.php?action=edit&id=" . $_GET["host_id"]);
break;
case 'query_reload':
host_reload_query();

header("Location: host.php?action=edit&id=" . $_GET["host_id"]);
break;
case 'query_verbose':
host_reload_query();

header("Location: host.php?action=edit&id=" . $_GET["host_id"] . "&display_dq_details=true");
break;
case 'edit':
include_once("./include/top_header.php");

host_edit();

include_once("./include/bottom_footer.php");
break;
default:
include_once("./include/top_header.php");

host();

include_once("./include/bottom_footer.php");
break;
}

/* --------------------------
Global Form Functions
-------------------------- */

function add_tree_names_to_actions_array() {
global $device_actions;

/* add a list of tree names to the actions dropdown */
$trees = db_fetch_assoc("select id,name from graph_tree order by name");

if (sizeof($trees) > 0) {
foreach ($trees as $tree) {
$device_actions{"tr_" . $tree["id"]} = "Place on a Tree (" . $tree["name"] . ")";
}
}
}

/* --------------------------
The Save Function
-------------------------- */

function form_save() {
if ((!empty($_POST["add_dq_y"])) && (!empty($_POST["snmp_query_id"]))) {
/* ================= input validation ================= */
input_validate_input_number(get_request_var_post("id"));
input_validate_input_number(get_request_var_post("snmp_query_id"));
input_validate_input_number(get_request_var_post("reindex_method"));
/* ==================================================== */

db_execute("replace into host_snmp_query (host_id,snmp_query_id,reindex_method) values (" . $_POST["id"] . "," . $_POST["snmp_query_id"] . "," . $_POST["reindex_method"] . ")");

/* recache snmp data */
run_data_query($_POST["id"], $_POST["snmp_query_id"]);

header("Location: host.php?action=edit&id=" . $_POST["id"]);
exit;
}

if ((!empty($_POST["add_gt_y"])) && (!empty($_POST["graph_template_id"]))) {
/* ================= input validation ================= */
input_validate_input_number(get_request_var_post("id"));
input_validate_input_number(get_request_var_post("graph_template_id"));
/* ==================================================== */

db_execute("replace into host_graph (host_id,graph_template_id) values (" . $_POST["id"] . "," . $_POST["graph_template_id"] . ")");

header("Location: host.php?action=edit&id=" . $_POST["id"]);
exit;
}

if ((isset($_POST["save_component_host"])) && (empty($_POST["add_dq_y"]))) {
$host_id = api_device_save($_POST["id"], $_POST["host_template_id"], $_POST["description"], $_POST["hostname"],
$_POST["snmp_community"], $_POST["snmp_version"], $_POST["snmp_username"], $_POST["snmp_password"],
$_POST["snmp_port"], $_POST["snmp_timeout"], (isset($_POST["disabled"]) ? $_POST["disabled"] : ""));

if ((is_error_message()) || ($_POST["host_template_id"] != $_POST["_host_template_id"])) {
header("Location: host.php?action=edit&id=" . (empty($host_id) ? $_POST["id"] : $host_id));
}else{
header("Location: host.php");
}
}
}

/* ------------------------
The "actions" function
------------------------ */

function form_actions() {
global $colors, $device_actions, $fields_host_edit;

/* if we are to save this form, instead of display it */
if (isset($_POST["selected_items"])) {
$selected_items = unserialize(stripslashes($_POST["selected_items"]));

if ($_POST["drp_action"] == "2") { /* Enable Selected Devices */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */

db_execute("update host set disabled='' where id='" . $selected_items[$i] . "'");

/* update poller cache */
$data_sources = db_fetch_assoc("select id from data_local where host_id='" . $selected_items[$i] . "'");

if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
update_poller_cache($data_source["id"], false);
}
}
}
}elseif ($_POST["drp_action"] == "3") { /* Disable Selected Devices */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */

db_execute("update host set disabled='on' where id='" . $selected_items[$i] . "'");

/* update poller cache */
db_execute("delete from poller_item where host_id='" . $selected_items[$i] . "'");
db_execute("delete from poller_reindex where host_id='" . $selected_items[$i] . "'");
}
}elseif ($_POST["drp_action"] == "4") { /* change snmp options */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */

reset($fields_host_edit);
while (list($field_name, $field_array) = each($fields_host_edit)) {
if (isset($_POST["t_$field_name"])) {
db_execute("update host set $field_name = '" . $_POST[$field_name] . "' where id='" . $selected_items[$i] . "'");
}
}

push_out_host($selected_items[$i]);
}
}elseif ($_POST["drp_action"] == "5") { /* Clear Statisitics for Selected Devices */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */

db_execute("update host set min_time = '9.99999', max_time = '0', cur_time = '0', avg_time = '0',
total_polls = '0', failed_polls = '0', availability = '100.00'
where id = '" . $selected_items[$i] . "'");
}
}elseif ($_POST["drp_action"] == "1") { /* delete */
for ($i=0; $i<count($selected_items); $i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
/* ==================================================== */

if (!isset($_POST["delete_type"])) { $_POST["delete_type"] = 2; }

switch ($_POST["delete_type"]) {
case '1': /* leave graphs and data_sources in place, but disable the data sources */
$data_sources = db_fetch_assoc("select
data_local.id as local_data_id
from data_local
where " . array_to_sql_or($selected_items, "data_local.host_id"));

if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_disable($data_source["local_data_id"]);
}
}

break;
case '2': /* delete graphs/data sources tied to this device */
$data_sources = db_fetch_assoc("select
data_local.id as local_data_id
from data_local
where " . array_to_sql_or($selected_items, "data_local.host_id"));

if (sizeof($data_sources) > 0) {
foreach ($data_sources as $data_source) {
api_data_source_remove($data_source["local_data_id"]);
}
}

$graphs = db_fetch_assoc("select
graph_local.id as local_graph_id
from graph_local
where " . array_to_sql_or($selected_items, "graph_local.host_id"));

if (sizeof($graphs) > 0) {
foreach ($graphs as $graph) {
api_graph_remove($graph["local_graph_id"]);
}
}

break;
}

api_device_remove($selected_items[$i]);
}
}elseif (ereg("^tr_([0-9]+)$", $_POST["drp_action"], $matches)) { /* place on tree */
for ($i=0;($i<count($selected_items));$i++) {
/* ================= input validation ================= */
input_validate_input_number($selected_items[$i]);
input_validate_input_number(get_request_var_post("tree_id"));
input_validate_input_number(get_request_var_post("tree_item_id"));
/* ==================================================== */

api_tree_item_save(0, $_POST["tree_id"], TREE_ITEM_TYPE_HOST, $_POST["tree_item_id"], "", 0, read_graph_config_option("default_rra_id"), $selected_items[$i], 0, 0, false);
}
}

header("Location: host.php");
exit;
}

/* setup some variables */
$host_list = ""; $i = 0;

/* loop through each of the host templates selected on the previous page and get more info about them */
while (list($var,$val) = each($_POST)) {
if (ereg("^chk_([0-9]+)$", $var, $matches)) {
/* ================= input validation ================= */
input_validate_input_number($matches[1]);
/* ==================================================== */

$host_list .= "<li>" . db_fetch_cell("select description from host where id=" . $matches[1]) . "<br>";
$host_array[$i] = $matches[1];
}

$i++;
}

include_once("./include/top_header.php");

/* add a list of tree names to the actions dropdown */
add_tree_names_to_actions_array();

html_start_box("<strong>" . $device_actions{$_POST["drp_action"]} . "</strong>", "60%", $colors["header_panel"], "3", "center", "");

print "<form action='host.php' method='post'>\n";

if ($_POST["drp_action"] == "2") { /* Enable Devices */
print " <tr>
<td colspan='2' class='textArea' bgcolor='#" . $colors["form_alternate1"]. "'>
<p>To enable the following devices, press the \"yes\" button below.</p>
<p>$host_list</p>
</td>
</tr>";
}elseif ($_POST["drp_action"] == "3") { /* Disable Devices */
print " <tr>
<td colspan='2' class='textArea' bgcolor='#" . $colors["form_alternate1"]. "'>
<p>To disable the following devices, press the \"yes\" button below.</p>
<p>$host_list</p>
</td>
</tr>";
}elseif ($_POST["drp_action"] == "4") { /* change snmp options */
print " <tr>
<td colspan='2' class='textArea' bgcolor='#" . $colors["form_alternate1"]. "'>
<p>To change SNMP parameters for the following devices, check the box next to the fields
you want to update, fill in the new value, and click Save.</p>
<p>$host_list</p>
</td>
</tr>";
$form_array = array();
while (list($field_name, $field_array) = each($fields_host_edit)) {
if (ereg("^snmp_", $field_name)) {
$form_array += array($field_name => $fields_host_edit[$field_name]);

$form_array[$field_name]["value"] = "";
$form_array[$field_name]["description"] = "";
$form_array[$field_name]["form_id"] = 0;
$form_array[$field_name]["sub_checkbox"] = array(
"name" => "t_" . $field_name,
"friendly_name" => "Update this Field",
"value" => ""
);
}
}

draw_edit_form(
array(
"config" => array("no_form_tag" => true),
"fields" => $form_array
)
);
}elseif ($_POST["drp_action"] == "5") { /* Clear Statisitics for Selected Devices */
print " <tr>
<td colspan='2' class='textArea' bgcolor='#" . $colors["form_alternate1"]. "'>
<p>To clear the counters for the following devices, press the \"yes\" button below.</p>
<p>$host_list</p>
</td>
</tr>";
}elseif ($_POST["drp_action"] == "1") { /* delete */
print " <tr>
<td class='textArea' bgcolor='#" . $colors["form_alternate1"]. "'>
<p>Are you sure you want to delete the following devices?</p>
<p>$host_list</p>";
form_radio_button("delete_type", "2", "1", "Leave all graphs and data sources untouched. Data sources will be disabled however.", "1"); print "<br>";
form_radio_button("delete_type", "2", "2", "Delete all associated <strong>graphs</strong> and <strong>data sources</strong>.", "1"); print "<br>";
print "</td></tr>
</td>
</tr>\n
";
}elseif (ereg("^tr_([0-9]+)$", $_POST["drp_action"], $matches)) { /* place on tree */
print " <tr>
<td class='textArea' bgcolor='#" . $colors["form_alternate1"]. "'>
<p>When you click save, the following hosts will be placed under the branch selected
below.</p>
<p>$host_list</p>
<p><strong>Destination Branch:</strong><br>"; grow_dropdown_tree($matches[1], "tree_item_id", "0"); print "</p>
</td>
</tr>\n
<input type='hidden' name='tree_id' value='" . $matches[1] . "'>\n
";
}

if (!isset($host_array)) {
print "<tr><td bgcolor='#" . $colors["form_alternate1"]. "'><span class='textError'>You must select at least one device.</span></td></tr>\n";
$save_html = "";
}else{
$save_html = "<input type='image' src='images/button_yes.gif' alt='Save' align='absmiddle'>";
}

print " <tr>
<td colspan='2' align='right' bgcolor='#eaeaea'>
<input type='hidden' name='action' value='actions'>
<input type='hidden' name='selected_items' value='" . (isset($host_array) ? serialize($host_array) : '') . "'>
<input type='hidden' name='drp_action' value='" . $_POST["drp_action"] . "'>
<a href='host.php'><img src='images/button_no.gif' alt='Cancel' align='absmiddle' border='0'></a>
$save_html
</td>
</tr>
";

html_end_box();

include_once("./include/bottom_footer.php");
}

/* -------------------
Data Query Functions
------------------- */

function host_reload_query() {
/* ================= input validation ================= */
input_validate_input_number(get_request_var("id"));
input_validate_input_number(get_request_var("host_id"));
/* ==================================================== */

run_data_query($_GET["host_id"], $_GET["id"]);
}

function host_remove_query() {
/* ================= input validation ================= */
input_validate_input_number(get_request_var("id"));
input_validate_input_number(get_request_var("host_id"));
/* ==================================================== */

api_device_dq_remove($_GET["host_id"], $_GET["id"]);
}

function host_remove_gt() {
/* ================= input validation ================= */
input_validate_input_number(get_request_var("id"));
input_validate_input_number(get_request_var("host_id"));
/* ==================================================== */

api_device_gt_remove($_GET["host_id"], $_GET["id"]);
}

/* ---------------------
Host Functions
--------------------- */

function host_remove() {
global $config;

/* ================= input validation ================= */
input_validate_input_number(get_request_var("id"));
/* ==================================================== */

if ((read_config_option("remove_verification") == "on") && (!isset($_GET["confirm"]))) {
include("./include/top_header.php");
form_confirm("Are You Sure?", "Are you sure you want to delete the host <strong>'" . db_fetch_cell("select description from host where id=" . $_GET["id"]) . "'</strong>?", "host.php", "host.php?action=remove&id=" . $_GET["id"]);
include("./include/bottom_footer.php");
exit;
}

if ((read_config_option("remove_verification") == "") || (isset($_GET["confirm"]))) {
api_device_remove($_GET["id"]);
}
}

function host_edit() {
global $colors, $fields_host_edit, $reindex_types;

/* ================= input validation ================= */
input_validate_input_number(get_request_var("id"));
/* ==================================================== */

display_output_messages();

if (!empty($_GET["id"])) {
$host = db_fetch_row("select * from host where id=" . $_GET["id"]);
$header_label = "[edit: " . $host["description"] . "]";
}else{
$header_label = "[new]";
}

if (!empty($host["id"])) {
?>
<table width="98%" align="center">
<tr>
<td class="textInfo" colspan="2">
<?php print $host["description"];?> (<?php print $host["hostname"];?>)
</td>
</tr>
<tr>
<td class="textHeader">
SNMP Information<br>

<span style="font-size: 10px; font-weight: normal; font-family: monospace;">
<?php
if (($host["snmp_community"] == "") && ($host["snmp_username"] == "")) {
print "<span style='color: #ab3f1e; font-weight: bold;'>SNMP not in use</span>\n";
}else{
$snmp_system = cacti_snmp_get($host["hostname"], $host["snmp_community"], ".1.3.6.1.2.1.1.1.0", $host["snmp_version"], $host["snmp_username"], $host["snmp_password"], $host["snmp_port"], $host["snmp_timeout"], SNMP_WEBUI);

if ($snmp_system == "") {
print "<span style='color: #ff0000; font-weight: bold;'>SNMP error</span>\n";
}else{
$snmp_uptime = cacti_snmp_get($host["hostname"], $host["snmp_community"], ".1.3.6.1.2.1.1.3.0", $host["snmp_version"], $host["snmp_username"], $host["snmp_password"], $host["snmp_port"], $host["snmp_timeout"], SNMP_WEBUI);
$snmp_hostname = cacti_snmp_get($host["hostname"], $host["snmp_community"], ".1.3.6.1.2.1.1.5.0", $host["snmp_version"], $host["snmp_username"], $host["snmp_password"], $host["snmp_port"], $host["snmp_timeout"], SNMP_WEBUI);
$snmp_location = cacti_snmp_get($host["hostname"], $host["snmp_community"], ".1.3.6.1.2.1.1.6.0", $host["snmp_version"], $host["snmp_username"], $host["snmp_password"], $host["snmp_port"], $host["snmp_timeout"], SNMP_WEBUI);
$snmp_contact = cacti_snmp_get($host["hostname"], $host["snmp_community"], ".1.3.6.1.2.1.1.4.0", $host["snmp_version"], $host["snmp_username"], $host["snmp_password"], $host["snmp_port"], $host["snmp_timeout"], SNMP_WEBUI);


print "<strong>System:</strong> $snmp_system<br>\n";
print "<strong>Uptime:</strong> $snmp_uptime<br>\n";
print "<strong>Hostname:</strong> $snmp_hostname<br>\n";
print "<strong>Location:</strong> $snmp_location<br>\n";
print "<strong>Contact:</strong> $snmp_contact<br>\n";
}
}
?>
</span>
</td>
<td class="textInfo" valign="top">
<span style="color: #c16921;">*</span><a href="graphs_new.php?host_id=<?php print $host["id"];?>">Create Graphs for this Host</a>
</td>
</tr>
</table>
<br>
<?php
}

html_start_box("<strong>Devices</strong> $header_label", "98%", $colors["header"], "3", "center", "");

/* preserve the host template id if passed in via a GET variable */
if (!empty($_GET["host_template_id"])) {
$fields_host_edit["host_template_id"]["value"] = $_GET["host_template_id"];
}

draw_edit_form(array(
"config" => array("form_name" => "chk"),
"fields" => inject_form_variables($fields_host_edit, (isset($host) ? $host : array()))
));

html_end_box();

if ((isset($_GET["display_dq_details"])) && (isset($_SESSION["debug_log"]["data_query"]))) {
html_start_box("<strong>Data Query Debug Information</strong>", "98%", $colors["header"], "3", "center", "");

print "<tr><td><span style='font-family: monospace;'>" . debug_log_return("data_query") . "</span></td></tr>";

html_end_box();
}

if (!empty($host["id"])) {
html_start_box("<strong>Associated Graph Templates</strong>", "98%", $colors["header"], "3", "center", "");

html_header(array("Graph Template Name", "Status"), 2);

$selected_graph_templates = db_fetch_assoc("select
graph_templates.id,
graph_templates.name
from (graph_templates,host_graph)
where graph_templates.id=host_graph.graph_template_id
and host_graph.host_id=" . $_GET["id"] . "
order by graph_templates.name");

$available_graph_templates = db_fetch_assoc("SELECT
graph_templates.id, graph_templates.name
FROM snmp_query_graph RIGHT JOIN graph_templates
ON (snmp_query_graph.graph_template_id = graph_templates.id)
WHERE (((snmp_query_graph.name) Is Null)) ORDER BY graph_templates.name");

$i = 0;
if (sizeof($selected_graph_templates) > 0) {
foreach ($selected_graph_templates as $item) {
$i++;

/* get status information for this graph template */
$is_being_graphed = (sizeof(db_fetch_assoc("select id from graph_local where graph_template_id=" . $item["id"] . " and host_id=" . $_GET["id"])) > 0) ? true : false;

?>
<tr>
<td style="padding: 4px;">
<strong><?php print $i;?>)</strong> <?php print $item["name"];?>
</td>
<td>
<?php print (($is_being_graphed == true) ? "<span style='color: green;'>Is Being Graphed</span> (<a href='graphs.php?action=graph_edit&id=" . db_fetch_cell("select id from graph_local where graph_template_id=" . $item["id"] . " and host_id=" . $_GET["id"] . " limit 0,1") . "'>Edit</a>)" : "<span style='color: #484848;'>Not Being Graphed</span>");?>
</td>
<td align='right' nowrap>
<a href='host.php?action=gt_remove&id=<?php print $item["id"];?>&host_id=<?php print $_GET["id"];?>'><img src='images/delete_icon_large.gif' alt='Delete Graph Template Association' border='0' align='absmiddle'></a>
</td>
</tr>
<?php
}
}else{ print "<tr><td><em>No associated graph templates.</em></td></tr>"; }

?>
<tr bgcolor="#<?php print $colors["form_alternate1"];?>">
<td colspan="4">
<table cellspacing="0" cellpadding="1" width="100%">
<td nowrap>Add Graph Template: 
<?php form_dropdown("graph_template_id",$available_graph_templates,"name","id","","","");?>
</td>
<td align="right">
 <input type="image" src="images/button_add.gif" alt="Add" name="add_gt" align="absmiddle">
</td>
</table>
</td>
</tr>

<?php
html_end_box();

html_start_box("<strong>Associated Data Queries</strong>", "98%", $colors["header"], "3", "center", "");

html_header(array("Data Query Name", "Debugging", "Re-Index Method", "Status"), 2);

$selected_data_queries = db_fetch_assoc("select
snmp_query.id,
snmp_query.name,
host_snmp_query.reindex_method
from (snmp_query,host_snmp_query)
where snmp_query.id=host_snmp_query.snmp_query_id
and host_snmp_query.host_id=" . $_GET["id"] . "
order by snmp_query.name");

$available_data_queries = db_fetch_assoc("select
snmp_query.id,
snmp_query.name
from snmp_query
order by snmp_query.name");

$keeper = array();
foreach ($available_data_queries as $item) {
if (sizeof(db_fetch_assoc("SELECT snmp_query_id FROM host_snmp_query " .
" WHERE ((host_id=" . $_GET["id"] . ")" .
" and (snmp_query_id=" . $item["id"] ."))")) > 0) {
/* do nothing */
} else {
array_push($keeper, $item);
}
}

$available_data_queries = $keeper;

$i = 0;
if (sizeof($selected_data_queries) > 0) {
foreach ($selected_data_queries as $item) {
$i++;

/* get status information for this data query */
$num_dq_items = sizeof(db_fetch_assoc("select snmp_index from host_snmp_cache where host_id=" . $_GET["id"] . " and snmp_query_id=" . $item["id"]));
$num_dq_rows = sizeof(db_fetch_assoc("select snmp_index from host_snmp_cache where host_id=" . $_GET["id"] . " and snmp_query_id=" . $item["id"] . " group by snmp_index"));

$status = "success";

?>
<tr>
<td style="padding: 4px;">
<strong><?php print $i;?>)</strong> <?php print $item["name"];?>
</td>
<td>
(<a href="host.php?action=query_verbose&id=<?php print $item["id"];?>&host_id=<?php print $_GET["id"];?>">Verbose Query</a>)
</td>
<td>
<?php print $reindex_types{$item["reindex_method"]};?>
</td>
<td>
<?php print (($status == "success") ? "<span style='color: green;'>Success</span>" : "<span style='color: green;'>Fail</span>");?> [<?php print $num_dq_items;?> Item<?php print ($num_dq_items == 1 ? "" : "s");?>, <?php print $num_dq_rows;?> Row<?php print ($num_dq_rows == 1 ? "" : "s");?>]
</td>
<td align='right' nowrap>
<a href='host.php?action=query_reload&id=<?php print $item["id"];?>&host_id=<?php print $_GET["id"];?>'><img src='images/reload_icon_small.gif' alt='Reload Data Query' border='0' align='absmiddle'></a> 
<a href='host.php?action=query_remove&id=<?php print $item["id"];?>&host_id=<?php print $_GET["id"];?>'><img src='images/delete_icon_large.gif' alt='Delete Data Query Association' border='0' align='absmiddle'></a>
</td>
</tr>
<?php
}
}else{ print "<tr><td><em>No associated data queries.</em></td></tr>"; }

?>
<tr bgcolor="#<?php print $colors["form_alternate1"];?>">
<td colspan="5">
<table cellspacing="0" cellpadding="1" width="100%">
<td nowrap>Add Data Query: 
<?php form_dropdown("snmp_query_id",$available_data_queries,"name","id","","","");?>
</td>
<td nowrap>Re-Index Method: 
<?php form_dropdown("reindex_method",$reindex_types,"","","1","","");?>
</td>
<td align="right">
 <input type="image" src="images/button_add.gif" alt="Add" name="add_dq" align="absmiddle">
</td>
</table>
</td>
</tr>

<?php
html_end_box();
}

form_save_button("host.php");
}

function host() {
global $colors, $device_actions;

/* ================= input validation ================= */
input_validate_input_number(get_request_var_request("host_template_id"));
input_validate_input_number(get_request_var_request("page"));
input_validate_input_number(get_request_var_request("host_status"));
/* ==================================================== */

/* clean up search string */
if (isset($_REQUEST["filter"])) {
$_REQUEST["filter"] = sanitize_search_string(get_request_var("filter"));
}

/* if the user pushed the 'clear' button */
if (isset($_REQUEST["clear_x"])) {
kill_session_var("sess_device_current_page");
kill_session_var("sess_device_filter");
kill_session_var("sess_device_host_template_id");
kill_session_var("sess_host_status");

unset($_REQUEST["page"]);
unset($_REQUEST["filter"]);
unset($_REQUEST["host_template_id"]);
unset($_REQUEST["host_status"]);
}

if (!empty($_SESSION["sess_host_status"])) {
if ($_SESSION["sess_host_status"] != $_REQUEST["host_status"]) {
$_REQUEST["page"] = 1;
}
}

/* remember these search fields in session vars so we don't have to keep passing them around */
load_current_session_value("page", "sess_device_current_page", "1");
load_current_session_value("filter", "sess_device_filter", "");
load_current_session_value("host_template_id", "sess_device_host_template_id", "-1");
load_current_session_value("host_status", "sess_host_status", "-1");

html_start_box("<strong>Devices</strong>", "98%", $colors["header"], "3", "center", "host.php?action=edit&host_template_id=" . $_REQUEST["host_template_id"] . "&host_status=" . $_REQUEST["host_status"]);

include("./include/html/inc_device_filter_table.php");

html_end_box();

/* form the 'where' clause for our main sql query */
$sql_where = "where (host.hostname like '%%" . $_REQUEST["filter"] . "%%' OR host.description like '%%" . $_REQUEST["filter"] . "%%')";

if ($_REQUEST["host_status"] == "-1") {
/* Show all items */
}elseif ($_REQUEST["host_status"] == "-2") {
$sql_where .= " and host.disabled='on'";
}else {
$sql_where .= " and (host.status=" . $_REQUEST["host_status"] . " AND host.disabled = '')";
}

if ($_REQUEST["host_template_id"] == "-1") {
/* Show all items */
}elseif ($_REQUEST["host_template_id"] == "0") {
$sql_where .= " and host.host_template_id=0";
}elseif (!empty($_REQUEST["host_template_id"])) {
$sql_where .= " and host.host_template_id=" . $_REQUEST["host_template_id"];
}

html_start_box("", "98%", $colors["header"], "3", "center", "");

$total_rows = db_fetch_cell("select
COUNT(host.id)
from host
$sql_where");

$hosts = db_fetch_assoc("select
host.id,
host.disabled,
host.status,
host.hostname,
host.description,
host.min_time,
host.max_time,
host.cur_time,
host.avg_time,
host.availability
from host
$sql_where
order by host.description
limit " . (read_config_option("num_rows_device")*($_REQUEST["page"]-1)) . "," . read_config_option("num_rows_device"));

/* generate page list */
$url_page_select = get_page_list($_REQUEST["page"], MAX_DISPLAY_PAGES, read_config_option("num_rows_device"), $total_rows, "host.php?filter=" . $_REQUEST["filter"] . "&host_template_id=" . $_REQUEST["host_template_id"] . "&host_status=" . $_REQUEST["host_status"]);

$nav = "<tr bgcolor='#" . $colors["header"] . "'>
<td colspan='7'>
<table width='100%' cellspacing='0' cellpadding='0' border='0'>
<tr>
<td align='left' class='textHeaderDark'>
<strong><< "; if ($_REQUEST["page"] > 1) { $nav .= "<a class='linkOverDark' href='host.php?filter=" . $_REQUEST["filter"] . "&host_template_id=" . $_REQUEST["host_template_id"] . "&host_status=" . $_REQUEST["host_status"] . "&page=" . ($_REQUEST["page"]-1) . "'>"; } $nav .= "Previous"; if ($_REQUEST["page"] > 1) { $nav .= "</a>"; } $nav .= "</strong>
</td>\n
<td align='center' class='textHeaderDark'>
Showing Rows " . ((read_config_option("num_rows_device")*($_REQUEST["page"]-1))+1) . " to " . ((($total_rows < read_config_option("num_rows_device")) || ($total_rows < (read_config_option("num_rows_device")*$_REQUEST["page"]))) ? $total_rows : (read_config_option("num_rows_device")*$_REQUEST["page"])) . " of $total_rows [$url_page_select]
</td>\n
<td align='right' class='textHeaderDark'>
<strong>"; if (($_REQUEST["page"] * read_config_option("num_rows_device")) < $total_rows) { $nav .= "<a class='linkOverDark' href='host.php?filter=" . $_REQUEST["filter"] . "&host_template_id=" . $_REQUEST["host_template_id"] . "&host_status=" . $_REQUEST["host_status"] . "&page=" . ($_REQUEST["page"]+1) . "'>"; } $nav .= "Next"; if (($_REQUEST["page"] * read_config_option("num_rows_device")) < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong>
</td>\n
</tr>
</table>
</td>
</tr>\n";

print $nav;

html_header_checkbox(array("Description", "Status", "Hostname", "Current (ms)", "Average (ms)", "Availability"));

$i = 0;
if (sizeof($hosts) > 0) {
foreach ($hosts as $host) {
form_alternate_row_color($colors["alternate"],$colors["light"],$i); $i++;
?>
<td width=250>
<a class="linkEditMain" href="host.php?action=edit&id=<?php print $host["id"];?>"><?php print eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $host["description"]);?></a>
</td>
<td><?php print get_colored_device_status(($host["disabled"] == "on" ? true : false), $host["status"]);?></td>
<td><?php print eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", $host["hostname"]);?></td>
<td><?php print round(($host["cur_time"]), 2);?></td>
<td><?php print round(($host["avg_time"]), 2);?></td>
<td><?php print round($host["availability"], 2);?>%</td>
<td style="<?php print get_checkbox_style();?>" width="1%" align="right">
<input type='checkbox' style='margin: 0px;' name='chk_<?php print $host["id"];?>' title="<?php print $host["description"];?>">
</td>
</tr>
<?php
}

/* put the nav bar on the bottom as well */
print $nav;
}else{
print "<tr><td><em>No Hosts</em></td></tr>";
}
html_end_box(false);

/* add a list of tree names to the actions dropdown */
add_tree_names_to_actions_array();

/* draw the dropdown containing a list of available actions for this form */
draw_actions_dropdown($device_actions);
}

?>


Et la configuration de mon patch fix_search_session_clear_issue.patch est :

--- cacti-0.8.6h/host.php 2006-01-03 21:08:30.000000000 -0600
+++ cacti-fixed/host.php 2006-01-06 22:45:51.630701318 -0600
@@ -726,18 +726,18 @@
unset($_REQUEST["host_status"]);
}

- if (!empty($_SESSION["sess_host_status"])) {
- if ($_SESSION["sess_host_status"] != $_REQUEST["host_status"]) {
- $_REQUEST["page"] = 1;
- }
- }
-
/* remember these search fields in session vars so we don't have to keep passing them around */
load_current_session_value("page", "sess_device_current_page", "1");
load_current_session_value("filter", "sess_device_filter", "");
load_current_session_value("host_template_id", "sess_device_host_template_id", "-1");
load_current_session_value("host_status", "sess_host_status", "-1");

+ if (!empty($_SESSION["sess_host_status"])) {
+ if ($_SESSION["sess_host_status"] != $_REQUEST["host_status"]) {
+ $_REQUEST["page"] = 1;
+ }
+ }
+
html_start_box("<strong>Devices</strong>", "98%", $colors["header"], "3", "center", "host.php?action=edit&host_template_id=" . $_REQUEST["host_template_id"] . "&host_status=" . $_REQUEST["host_status"]);

include("./include/html/inc_device_filter_table.php");







Quelqu'un peut m'aider s'il vous plait j'en ai marre :'(
A voir également:

2 réponses

Dimitrii Messages postés 686 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 24 août 2013 21
5 févr. 2009 à 15:22
up :( please :'(
0
Dimitrii Messages postés 686 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 24 août 2013 21
6 févr. 2009 à 11:01
personne ? :(
0
Salut Dimitri,

je sais pas si tu a réussi à t'en sortir, mais j'ai eu le même problème.

En fait il faut que tu vérifie que tu ais bien la même version pour les patch que tu télécharge et pour cacti.

J'ai télécharger la version cacti-0.8.6h car c'est celle qui correspond au patch qui sont à télécharger et cela fonctionne à présent.

Voila

Bon courage
0