zabbix_pusher 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md ADDED
@@ -0,0 +1,99 @@
1
+ # Zabbix Pusher
2
+
3
+ * Source: [http://github.com/iteh/zabbix_pusher](http://github.com/iteh/zabbix_pusher)
4
+
5
+ Zabbix Pusher is a gem with a set of binaries to push data to a zabbix server
6
+
7
+ The current package provides a implementation for querying jmx data with
8
+ [jolokia](http://www.jolokia.org/) from tomcat and a predefined tomcat_template.xml to import in zabbix.
9
+ You must deploy the jolkia.war to your tomcat instance.
10
+
11
+ ## Quick Start
12
+
13
+ Install the gem with.
14
+
15
+ gem install zabbix_pusher
16
+
17
+ import the examples/tomcat_template.xml into your zabbix server
18
+
19
+ zabbix_pusher -z 192.168.1.40 -s vagrantup.com -v
20
+
21
+ sample output:
22
+
23
+ {
24
+ "jmx[java.lang:type=OperatingSystem;OpenFileDescriptorCount;]" => 46,
25
+ "jmx[Catalina:name=http-8080,type=GlobalRequestProcessor;errorCount;]" => 1,
26
+ "jmx[java.lang:type=ClassLoading;TotalLoadedClassCount;]" => 1918,
27
+ "jmx[java.lang:type=OperatingSystem;MaxFileDescriptorCount;]" => 1024,
28
+ "jmx[java.lang:type=Runtime;Uptime;]" => 4807550,
29
+ "jmx[java.lang:type=ClassLoading;LoadedClassCount;]" => 1916,
30
+ "jmx[Catalina:name=http-8080,type=ThreadPool;maxThreads;]" => 200,
31
+ "jmx[java.lang:type=Compilation;TotalCompilationTime;]" => 852,
32
+ "jmx[java.lang:type=Runtime;VmVersion;]" => "19.1-b02",
33
+ "jmx[java.lang:name=CMS Perm Gen,type=MemoryPool;Usage;max]" => 67108864,
34
+ "jmx[Catalina:type=Server;serverInfo;]" => "Apache Tomcat/6.0.24",
35
+ "jmx[Catalina:name=http-8080,type=GlobalRequestProcessor;bytesReceived;]" => 616016,
36
+ "jmx[java.lang:type=Compilation;Name;]" => "HotSpot Client Compiler",
37
+ "jmx[java.lang:name=Copy,type=GarbageCollector;CollectionTime;]" => 114,
38
+ "jmx[java.lang:name=CMS Perm Gen,type=MemoryPool;Usage;used]" => 10244896,
39
+ "jmx[java.lang:type=Threading;DaemonThreadCount;]" => 13,
40
+ "jmx[java.lang:name=CMS Old Gen,type=MemoryPool;Usage;committed]" => 50331648,
41
+ "jmx[java.lang:name=Code Cache,type=MemoryPool;Usage;used]" => 2310528,
42
+ "jmx[Catalina:name=http-8080,type=GlobalRequestProcessor;requestCount;]" => 173,
43
+ "jmx[Catalina:name=http-8080,type=GlobalRequestProcessor;processingTime;]" => 1992,
44
+ "jmx[Catalina:name=http-8080,type=ThreadPool;currentThreadsBusy;]" => 1,
45
+ "jmx[java.lang:type=Threading;ThreadCount;]" => 14,
46
+ "jmx[java.lang:name=ConcurrentMarkSweep,type=GarbageCollector;CollectionCount;]" => 4,
47
+ "jmx[java.lang:name=Code Cache,type=MemoryPool;Usage;committed]" => 2326528,
48
+ "jmx[java.lang:name=Code Cache,type=MemoryPool;Usage;max]" => 33554432,
49
+ "jmx[Catalina:name=http-8080,type=GlobalRequestProcessor;bytesSent;]" => 9622082,
50
+ "jmx[Catalina:name=http-8080,type=ThreadPool;currentThreadCount;]" => 1,
51
+ "jmx[java.lang:type=Threading;PeakThreadCount;]" => 14,
52
+ "jmx[java.lang:name=CMS Old Gen,type=MemoryPool;Usage;max]" => 83886080,
53
+ "jmx[java.lang:name=CMS Old Gen,type=MemoryPool;Usage;used]" => 3707304,
54
+ "jmx[java.lang:name=ConcurrentMarkSweep,type=GarbageCollector;CollectionTime;]" => 0,
55
+ "jmx[java.lang:name=CMS Perm Gen,type=MemoryPool;Usage;committed]" => 17063936,
56
+ "jmx[java.lang:type=ClassLoading;UnloadedClassCount;]" => 2,
57
+ "jmx[java.lang:type=Memory;ObjectPendingFinalizationCount;]" => 0,
58
+ "jmx[java.lang:type=Threading;TotalStartedThreadCount;]" => 14,
59
+ "jmx[java.lang:name=Copy,type=GarbageCollector;CollectionCount;]" => 49,
60
+ "jmx[Catalina:port=8080,type=ProtocolHandler;compression;]" => "off"
61
+ }
62
+
63
+ will push the data to a zabbix server running on port 10051. The -v option will print out what gets send to the server.
64
+
65
+ ## Options
66
+
67
+ zabbix_pusher -h
68
+ Usage: zabbix_pusher (options)
69
+ -c, --config CONFIG The configuration file to use
70
+ --jmx_base_uri uri The jmx base uri
71
+ -l, --log_level LEVEL Set the log level (debug, info, warn, error, fatal)
72
+ -s, --host HOSTNAME Specify host name. Host IP address and DNS name will not work.
73
+ -v, --show_send_values shows what values got send to zabbix
74
+ -t, --template FILE The template file(s) to use, can be a file a comma separated list of files or a directory
75
+ -z, --zabbix-server SERVER Hostname or IP address of Zabbix Server
76
+ -p, --port SERVER PORT Specify port number of server trapper running on the server. Default is 10051
77
+ -h, --help Show this message
78
+
79
+ ## Additional Command zabbix_pusher_jmx
80
+
81
+ Can be used to explore all the options of your jmx data.
82
+
83
+ $ zabbix_pusher_jmx -h
84
+ Usage: /usr/bin/zabbix_pusher_jmx (options)
85
+ -a, --attribute attribute The name of the action e.g. HeapMemoryUsage (needed for read command)
86
+ -b, --base_uri uri The jmx base uri
87
+ -o, --command action The command to perform
88
+ -m, --mbean mbean The name of the mbean e.g. java.lang:type=Memory (needed for read command)
89
+ -p, --path path The name of the path e.g. used (needed for read and list command)
90
+ -h, --help Show this message
91
+
92
+ Examples:
93
+
94
+ zabbix_pusher_jmx --command search -m "Catalina:*"
95
+ zabbix_pusher_jmx --command read -m "Catalina:host=localhost,path=/,type=Manager"
96
+ zabbix_pusher_jmx --command read -m "Catalina:name=http-8080,type=GlobalRequestProcessor" -a bytesReceived
97
+ zabbix_pusher_jmx --command list -m Catalina:host=localhost,path=/,resourcetype=Context,type=NamingResources
98
+
99
+ See [http://www.jolokia.org/reference/html/protocol.html](http://www.jolokia.org/reference/html/protocol.html) for details
@@ -54,7 +54,7 @@ module ZabbixPusher
54
54
  payload["path"] = path if path
55
55
  payload["config"] = config if config.length > 0
56
56
  ap payload.to_json
57
- self.class.post('/jolokia', :body => payload.to_json)
57
+ self.class.post('/jolokia', :body => payload.to_json, :timeout => 5)
58
58
  end
59
59
 
60
60
  def version
@@ -62,9 +62,9 @@ module ZabbixPusher
62
62
  end
63
63
 
64
64
  def processed_items
65
- data = self.class.post('/jolokia', :body => @payload.to_json)
65
+ data = self.class.post('/jolokia', :body => @payload.to_json, :timeout => 5) rescue nil
66
66
  result = Hash.new
67
- data.each{|datum| result[result_key(datum)] = datum['value'] if datum['request']}
67
+ data.each{|datum| result[result_key(datum)] = datum['value'] if datum['request']} if data
68
68
  result
69
69
  end
70
70
 
@@ -16,5 +16,5 @@
16
16
  # limitations under the License.
17
17
 
18
18
  module ZabbixPusher
19
- VERSION = "0.0.6"
19
+ VERSION = "0.1.0"
20
20
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zabbix_pusher
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 6
10
- version: 0.0.6
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Edmund Haselwanter
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-06-17 00:00:00 +02:00
18
+ date: 2011-06-18 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -192,6 +192,7 @@ files:
192
192
  - .gitignore
193
193
  - Gemfile
194
194
  - LICENSE
195
+ - README.md
195
196
  - Rakefile
196
197
  - bin/zabbix_pusher
197
198
  - bin/zabbix_pusher_jmx