Monitor Windows Service stats from Linux
Moderators: Developers, Moderators
-
- Posts: 11
- Joined: Wed Nov 08, 2006 9:51 pm
Hmmmm, Well here is an interesting development. I deleted the host that was not graphing the win services. The I waited three polling cycles, recreated the host only this time I completely change the host name. When I created the graphs I created just one win services to start. Waited for it to poll and as soon as I saw it was graphing I created the rest in one step and saved them. RRD issue maybe? Feedback?
-
- Posts: 11
- Joined: Wed Nov 08, 2006 9:51 pm
-
- Posts: 11
- Joined: Wed Nov 08, 2006 9:51 pm
I think I got it now.. I'm running CactiEZ V2, I downloaded the source from this thread, Here is what appears to be happening. Cigamit fixed the DB table sytax, but the PHP script still has the wrong text. Which if you hit it just right (it uses the 2nd sub set call) it will execute the query and start graphing. Change the call to this (which is posted in the thread as well).
" if (substr($return_arr[$i]['oid'],0,4) == "SNMP")
print substr($return_arr[$i]['oid'],36) . "\n";
else
print substr($return_arr[$i]['oid'],26) . "\n";
-----
i changed the values 36 and 26 to 35 and 25 in both occurences, recreated some graphs and they are working now. "
This works really well and ties in niceely with the manage plugin.
" if (substr($return_arr[$i]['oid'],0,4) == "SNMP")
print substr($return_arr[$i]['oid'],36) . "\n";
else
print substr($return_arr[$i]['oid'],26) . "\n";
-----
i changed the values 36 and 26 to 35 and 25 in both occurences, recreated some graphs and they are working now. "
This works really well and ties in niceely with the manage plugin.
Can this be forced to whole numbers?
Hello,
I just installed this and got it working (after correcting the known bug) and it seems to be working well. The one thing I would like to change is that the graph seems to be averaging the values to some extent. Instead of just 1 and 0 I get .380 or .880 when going down or coming back up. Since my THOLD values are set to alarm if below 1 it takes longer to reset. Is there a way to force everything to whole numbers? I changed the graph template to "exact numbers" and that seems to have changed the legend display but not the graph itself (and what THOLD looks at).
Thanks!
I just installed this and got it working (after correcting the known bug) and it seems to be working well. The one thing I would like to change is that the graph seems to be averaging the values to some extent. Instead of just 1 and 0 I get .380 or .880 when going down or coming back up. Since my THOLD values are set to alarm if below 1 it takes longer to reset. Is there a way to force everything to whole numbers? I changed the graph template to "exact numbers" and that seems to have changed the legend display but not the graph itself (and what THOLD looks at).
Thanks!
Scipio wrote: So here is the fix:
In the table poller_item, the field arg1 is a varchar(250). I changed it to TEXT. Then in cacti I cleared the poller cache. Then It was working
I dont know if this fix generate some troubles with the rest of cacti but I saw nothing wrong for the moment.
How do I do this?
i import this file on cacti webInterface
cacti_data_query_win_services.xml
and i copy this file on .../cacti/resource/script_server/win_services.xml
and i copy the files win_services.php in .../cacti/scripts/
cacti_data_query_win_services.xml
Code: Select all
<cacti>
<hash_04001231620ded0790e4d6691449abb74174ac>
<name>Win Services</name>
<description>Windows services</description>
<xml_path><path_cacti>/resource/script_server/win_services.xml</xml_path>
<data_input_id>hash_030012332111d8b54ac8ce939af87a7eac0c06</data_input_id>
<graphs>
<hash_110012930f753aa55efa573212ec8c3f018622>
<name>Win Services</name>
<graph_template_id>hash_0000121dd684d6e77e7276e7e27c37b3d2f8b8</graph_template_id>
<rrd>
<item_000>
<snmp_field_name>ServiceState</snmp_field_name>
<data_template_id>hash_010012ce5e522013999d902afcbd1c93e9afa6</data_template_id>
<data_template_rrd_id>hash_0800127176219b3a0b0a51487bba2019acd230</data_template_rrd_id>
</item_000>
</rrd>
<sv_graph>
<hash_12001228ab9b8eb5aeb08369f84205221fbecc>
<field_name>title</field_name>
<sequence>4</sequence>
<text>|host_description| - Service State - |query_ServiceIndex|</text>
</hash_12001228ab9b8eb5aeb08369f84205221fbecc>
</sv_graph>
<sv_data_source>
<hash_130012584ef22294307be9a29d9a3aefc04b77>
<field_name>name</field_name>
<data_template_id>hash_010012ce5e522013999d902afcbd1c93e9afa6</data_template_id>
<sequence>4</sequence>
<text>|host_description| - Service State - |query_ServiceIndex|</text>
</hash_130012584ef22294307be9a29d9a3aefc04b77>
</sv_data_source>
</hash_110012930f753aa55efa573212ec8c3f018622>
</graphs>
</hash_04001231620ded0790e4d6691449abb74174ac>
<hash_030012332111d8b54ac8ce939af87a7eac0c06>
<name>Get Script Server Data (Indexed)</name>
<type_id>6</type_id>
<input_string></input_string>
<fields>
<hash_070012172b4b0eacee4948c6479f587b62e512>
<name>Index Type</name>
<update_rra></update_rra>
<regexp_match></regexp_match>
<allow_nulls></allow_nulls>
<type_code>index_type</type_code>
<input_output>in</input_output>
<data_name>index_type</data_name>
</hash_070012172b4b0eacee4948c6479f587b62e512>
<hash_07001230fb5d5bcf3d66bb5abe88596f357c26>
<name>Index Value</name>
<update_rra></update_rra>
<regexp_match></regexp_match>
<allow_nulls></allow_nulls>
<type_code>index_value</type_code>
<input_output>in</input_output>
<data_name>index_value</data_name>
</hash_07001230fb5d5bcf3d66bb5abe88596f357c26>
<hash_07001231112c85ae4ff821d3b288336288818c>
<name>Output Type ID</name>
<update_rra></update_rra>
<regexp_match></regexp_match>
<allow_nulls></allow_nulls>
<type_code>output_type</type_code>
<input_output>in</input_output>
<data_name>output_type</data_name>
</hash_07001231112c85ae4ff821d3b288336288818c>
<hash_0700125be8fa85472d89c621790b43510b5043>
<name>Output Value</name>
<update_rra>on</update_rra>
<regexp_match></regexp_match>
<allow_nulls></allow_nulls>
<type_code></type_code>
<input_output>out</input_output>
<data_name>output</data_name>
</hash_0700125be8fa85472d89c621790b43510b5043>
</fields>
</hash_030012332111d8b54ac8ce939af87a7eac0c06>
<hash_0000121dd684d6e77e7276e7e27c37b3d2f8b8>
<name>Win Services</name>
<graph>
<t_title>on</t_title>
<title>|host_description| - Services -</title>
<t_image_format_id></t_image_format_id>
<image_format_id>1</image_format_id>
<t_height></t_height>
<height>120</height>
<t_width></t_width>
<width>500</width>
<t_auto_scale></t_auto_scale>
<auto_scale>on</auto_scale>
<t_auto_scale_opts></t_auto_scale_opts>
<auto_scale_opts>2</auto_scale_opts>
<t_auto_scale_log></t_auto_scale_log>
<auto_scale_log></auto_scale_log>
<t_auto_scale_rigid></t_auto_scale_rigid>
<auto_scale_rigid></auto_scale_rigid>
<t_auto_padding></t_auto_padding>
<auto_padding>on</auto_padding>
<t_export></t_export>
<export>on</export>
<t_upper_limit></t_upper_limit>
<upper_limit>1</upper_limit>
<t_lower_limit></t_lower_limit>
<lower_limit>0</lower_limit>
<t_base_value></t_base_value>
<base_value>1000</base_value>
<t_unit_value></t_unit_value>
<unit_value></unit_value>
<t_unit_exponent_value></t_unit_exponent_value>
<unit_exponent_value></unit_exponent_value>
<t_vertical_label></t_vertical_label>
<vertical_label></vertical_label>
</graph>
<items>
<hash_100012d381f8cf89b1311eb18241194a63e952>
<task_item_id>hash_0800127176219b3a0b0a51487bba2019acd230</task_item_id>
<color_id>EA8F00</color_id>
<graph_type_id>7</graph_type_id>
<consolidation_function_id>4</consolidation_function_id>
<cdef_id>0</cdef_id>
<value></value>
<gprint_id>hash_060012e9c43831e54eca8069317a2ce8c6f751</gprint_id>
<text_format>Service State</text_format>
<hard_return></hard_return>
<sequence>1</sequence>
</hash_100012d381f8cf89b1311eb18241194a63e952>
<hash_100012c102315246fd0cf354aeeed4ac59e384>
<task_item_id>hash_0800127176219b3a0b0a51487bba2019acd230</task_item_id>
<color_id>0</color_id>
<graph_type_id>9</graph_type_id>
<consolidation_function_id>4</consolidation_function_id>
<cdef_id>0</cdef_id>
<value></value>
<gprint_id>hash_06001219414480d6897c8731c7dc6c5310653e</gprint_id>
<text_format></text_format>
<hard_return>on</hard_return>
<sequence>2</sequence>
</hash_100012c102315246fd0cf354aeeed4ac59e384>
<hash_100012ed51402ff26042a819d9339a4906f3ec>
<task_item_id>0</task_item_id>
<color_id>0</color_id>
<graph_type_id>1</graph_type_id>
<consolidation_function_id>1</consolidation_function_id>
<cdef_id>0</cdef_id>
<value></value>
<gprint_id>hash_060012e9c43831e54eca8069317a2ce8c6f751</gprint_id>
<text_format>(1 = Running, 0 = Stopped)</text_format>
<hard_return></hard_return>
<sequence>3</sequence>
</hash_100012ed51402ff26042a819d9339a4906f3ec>
</items>
<inputs>
<hash_090012998365f537fc20c18617a9e6d092cbef>
<name>Data Source [service_state]</name>
<description>show service state</description>
<column_name>task_item_id</column_name>
<items>hash_000012d381f8cf89b1311eb18241194a63e952|hash_000012c102315246fd0cf354aeeed4ac59e384</items>
</hash_090012998365f537fc20c18617a9e6d092cbef>
</inputs>
</hash_0000121dd684d6e77e7276e7e27c37b3d2f8b8>
<hash_010012ce5e522013999d902afcbd1c93e9afa6>
<name>Win Services</name>
<ds>
<t_name>on</t_name>
<name>|host_description| - Services</name>
<data_input_id>hash_030012332111d8b54ac8ce939af87a7eac0c06</data_input_id>
<t_rra_id></t_rra_id>
<t_rrd_step></t_rrd_step>
<rrd_step>300</rrd_step>
<t_active></t_active>
<active>on</active>
<rra_items>hash_150012c21df5178e5c955013591239eb0afd46|hash_1500120d9c0af8b8acdc7807943937b3208e29|hash_1500126fc2d038fb42950138b0ce3e9874cc60|hash_150012e36f3adb9f152adfa5dc50fd2b23337e</rra_items>
</ds>
<items>
<hash_0800127176219b3a0b0a51487bba2019acd230>
<t_data_source_name></t_data_source_name>
<data_source_name>service_state</data_source_name>
<t_rrd_minimum></t_rrd_minimum>
<rrd_minimum>0</rrd_minimum>
<t_rrd_maximum></t_rrd_maximum>
<rrd_maximum>0</rrd_maximum>
<t_data_source_type_id></t_data_source_type_id>
<data_source_type_id>1</data_source_type_id>
<t_rrd_heartbeat></t_rrd_heartbeat>
<rrd_heartbeat>600</rrd_heartbeat>
<t_data_input_field_id></t_data_input_field_id>
<data_input_field_id>0</data_input_field_id>
</hash_0800127176219b3a0b0a51487bba2019acd230>
</items>
<data>
<item_000>
<data_input_field_id>hash_070012172b4b0eacee4948c6479f587b62e512</data_input_field_id>
<t_value>on</t_value>
<value></value>
</item_000>
<item_001>
<data_input_field_id>hash_07001230fb5d5bcf3d66bb5abe88596f357c26</data_input_field_id>
<t_value>on</t_value>
<value></value>
</item_001>
<item_002>
<data_input_field_id>hash_07001231112c85ae4ff821d3b288336288818c</data_input_field_id>
<t_value>on</t_value>
<value></value>
</item_002>
</data>
</hash_010012ce5e522013999d902afcbd1c93e9afa6>
<hash_150012c21df5178e5c955013591239eb0afd46>
<name>Daily (5 Minute Average)</name>
<x_files_factor>0.5</x_files_factor>
<steps>1</steps>
<rows>25920</rows>
<timespan>86400</timespan>
<cf_items>1|2|3|4</cf_items>
</hash_150012c21df5178e5c955013591239eb0afd46>
<hash_1500120d9c0af8b8acdc7807943937b3208e29>
<name>Weekly (30 Minute Average)</name>
<x_files_factor>0.5</x_files_factor>
<steps>6</steps>
<rows>9000</rows>
<timespan>604800</timespan>
<cf_items>1|2|3|4</cf_items>
</hash_1500120d9c0af8b8acdc7807943937b3208e29>
<hash_1500126fc2d038fb42950138b0ce3e9874cc60>
<name>Monthly (2 Hour Average)</name>
<x_files_factor>0.5</x_files_factor>
<steps>24</steps>
<rows>2250</rows>
<timespan>2592000</timespan>
<cf_items>1|2|3|4</cf_items>
</hash_1500126fc2d038fb42950138b0ce3e9874cc60>
<hash_150012e36f3adb9f152adfa5dc50fd2b23337e>
<name>Yearly (1 Day Average)</name>
<x_files_factor>0.5</x_files_factor>
<steps>288</steps>
<rows>797</rows>
<timespan>33053184</timespan>
<cf_items>1|2|3|4</cf_items>
</hash_150012e36f3adb9f152adfa5dc50fd2b23337e>
<hash_060012e9c43831e54eca8069317a2ce8c6f751>
<name>Normal</name>
<gprint_text>%8.2lf %s</gprint_text>
</hash_060012e9c43831e54eca8069317a2ce8c6f751>
<hash_06001219414480d6897c8731c7dc6c5310653e>
<name>Exact Numbers</name>
<gprint_text>%8.0lf</gprint_text>
</hash_06001219414480d6897c8731c7dc6c5310653e>
</cacti>
Code: Select all
<interface>
<name>Get Host MIB Partitions</name>
<script_path>|path_cacti|/scripts/win_services.php</script_path>
<script_function>win_services</script_function>
<script_server>php</script_server>
<arg_prepend>|host_hostname| |host_snmp_community| |host_snmp_version| |host_id|</arg_prepend>
<arg_index>index</arg_index>
<arg_query>query</arg_query>
<arg_get>get</arg_get>
<output_delimeter>!</output_delimeter>
<index_order>ServiceIndex</index_order>
<index_order_type>alphabetic</index_order_type>
<index_title_format>|chosen_order_field|</index_title_format>
<fields>
<ServiceIndex>
<name>Index</name>
<direction>input</direction>
<query_name>index</query_name>
</ServiceIndex>
<ServiceState>
<name>Service State</name>
<direction>output</direction>
<query_name>servstate</query_name>
</ServiceState>
</fields>
</interface>
Code: Select all
<?php
$no_http_headers = true;
/* display No errors */
error_reporting(E_ERROR);
include_once(dirname(__FILE__) . "/../include/config.php");
include_once(dirname(__FILE__) . "/../lib/snmp.php");
if (!isset($called_by_script_server)) {
include_once(dirname(__FILE__) . "/../include/config.php");
array_shift($_SERVER["argv"]);
print call_user_func_array("win_services", $_SERVER["argv"]);
}
function win_services($hostname, $snmp_community, $snmp_version, $host_id, $cmd, $arg1 = "", $arg2 = "", $snmp_port = 161, $snmp_timeout = 500) {
$oids = array(
"index" => ".1.3.6.1.4.1.77.1.2.3.1.1",
"servstate" => ".1.3.6.1.4.1.77.1.2.3.1.2"
);
if ((func_num_args() <= "9") && (func_num_args() >= "5")) {
if ($cmd == "index") {
/* this is where it is pulling the index */
$return_arr = cacti_snmp_walk($hostname, $snmp_community, $oids["index"], $snmp_version, "", "", $snmp_port, $snmp_timeout, SNMP_POLLER);
for ($i=0; $i < sizeof($return_arr); $i++) {
if (substr($return_arr[$i]['oid'],0,4) == "SNMP")
print substr($return_arr[$i]['oid'],36) . "\n";
else
print substr($return_arr[$i]['oid'],26) . "\n";
}
}elseif ($cmd == "query") {
$arg = $arg1;
$arr_index2 = array();
$arr_index = cacti_snmp_walk($hostname, $snmp_community, $oids["index"], $snmp_version, "", "", $snmp_port, $snmp_timeout, SNMP_POLLER);
for ($i = 0; $i < sizeof($arr_index); $i++) {
if (substr($arr_index[$i]['oid'],0,4) == "SNMP")
$arr_index2[$i] = substr($arr_index[$i]['oid'],36);
else
$arr_index2[$i] = substr($arr_index[$i]['oid'],26);
}
$arr = win_services_reindex(cacti_snmp_walk($hostname, $snmp_community, $oids[$arg], $snmp_version, "", "", $snmp_port, $snmp_timeout, SNMP_POLLER));
for ($i = 0; $i < sizeof($arr_index2); $i++) {
print $arr_index2[$i] . " !" . $arr[$i] . "\n";
}
}elseif ($cmd == "get") {
$arg = $arg1;
$index = trim($arg2);
if ($arg == "servstate") {
$x = cacti_snmp_get($hostname, $snmp_community, $oids[$arg] . '.' . $index, $snmp_version, "", "", $snmp_port, $snmp_timeout, SNMP_POLLER);
if (trim($x) == '') $x = 0;
if ($x < 4) $x = 0;
if ($x == 4) $x = 1;
return $x;
}
}
} else {
return "ERROR: Invalid Parameters\n";
}
}
function win_services_reindex($arr) {
$return_arr = array();
for ($i=0;($i<sizeof($arr));$i++) {
$return_arr[$i] = $arr[$i]["value"];
}
return $return_arr;
}
?>
|Cacti Version - 0.8.6j||Plugin Architecture - 1.1||Poller Type - CMD.php|
|os - Red hat 4es | |Web Server - Apache/2.0.52 (Red Hat)|
|PHP - 4.3.9| |MySQL - 4.1.20| |RRDTool - 1.2.13||SNMP - 5.1.2|
|Plugins| Host Info (hostinfo - v0.1)
|os - Red hat 4es | |Web Server - Apache/2.0.52 (Red Hat)|
|PHP - 4.3.9| |MySQL - 4.1.20| |RRDTool - 1.2.13||SNMP - 5.1.2|
|Plugins| Host Info (hostinfo - v0.1)
- TheWitness
- Developer
- Posts: 17007
- Joined: Tue May 14, 2002 5:08 pm
- Location: MI, USA
- Contact:
What version of Cacti are you running?
TheWitness
TheWitness
True understanding begins only when we realize how little we truly understand...
Life is an adventure, let yours begin with Cacti!
Author of dozens of Cacti plugins and customization's. Advocate of LAMP, MariaDB, IBM Spectrum LSF and the world of batch. Creator of IBM Spectrum RTM, author of quite a bit of unpublished work and most of Cacti's bugs.
_________________
Official Cacti Documentation
GitHub Repository with Supported Plugins
Percona Device Packages (no support)
Interesting Device Packages
For those wondering, I'm still here, but lost in the shadows. Yearning for less bugs. Who want's a Cacti 1.3/2.0? Streams anyone?
Life is an adventure, let yours begin with Cacti!
Author of dozens of Cacti plugins and customization's. Advocate of LAMP, MariaDB, IBM Spectrum LSF and the world of batch. Creator of IBM Spectrum RTM, author of quite a bit of unpublished work and most of Cacti's bugs.
_________________
Official Cacti Documentation
GitHub Repository with Supported Plugins
Percona Device Packages (no support)
Interesting Device Packages
For those wondering, I'm still here, but lost in the shadows. Yearning for less bugs. Who want's a Cacti 1.3/2.0? Streams anyone?
Who is online
Users browsing this forum: No registered users and 2 guests