zabbix-monitor 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +5 -0
- data/CHANGELOG.md +14 -5
- data/README.md +29 -1
- data/TODO.md +4 -4
- data/lib/tasks/zabbix.rb +13 -4
- data/lib/zabbix/monitor.rb +1 -1
- data/spec/monitor_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -0
- data/zabbix-monitor.gemspec +3 -1
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12d1f8315102ff4b17ac77c9353c7f36118fa66c
|
4
|
+
data.tar.gz: fb155b2c351ef2637a8acc6e8bb2434c1cf0819a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b113b81926b4c51174a10223b849a5b823636c7ccfadb8a5b33bb97d7569a590eccc67c44fa3bf4f617a0465beab5447f6bab1ab0617e409b4a0a7ae506ab24
|
7
|
+
data.tar.gz: 766a16529f22c2d8097bd44cc82da091f8f45bb47889fea4974d24b49d995f296db54f1f19f74f1112929b8c71d765e855ce3e82ff12b7e8a7ce46b54c465e62
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,20 @@
|
|
1
1
|
# Zabbix Monitor Changelog
|
2
2
|
|
3
|
-
### TBA
|
4
|
-
|
5
|
-
-
|
3
|
+
### v0.0.3 (TBA)
|
4
|
+
|
5
|
+
- Added codeclimate coverage
|
6
|
+
|
7
|
+
### v0.0.2 (2014-04-24)
|
8
|
+
|
9
|
+
- Added :file mode
|
10
|
+
- Write monitoring data to `tmp/zabbix-stats.yml`
|
11
|
+
- Read values with `$ zabbix_reader test`
|
12
|
+
- Added specs
|
13
|
+
- Added documentation
|
6
14
|
- Added services:
|
7
|
-
|
8
|
-
|
15
|
+
- Travis CI
|
16
|
+
- Rdoc
|
9
17
|
|
10
18
|
### v0.0.1 (2014-04-17)
|
19
|
+
|
11
20
|
- Initial release
|
data/README.md
CHANGED
@@ -2,10 +2,12 @@
|
|
2
2
|
[![Gem Version](https://badge.fury.io/rb/zabbix-monitor.png)][gemversion]
|
3
3
|
[![Build Status](https://secure.travis-ci.org/sping/zabbix-monitor.png?branch=master)][travis]
|
4
4
|
[![Code Climate](https://codeclimate.com/github/sping/zabbix-monitor.png)][codeclimate]
|
5
|
+
[![Coverage](https://codeclimate.com/github/sping/zabbix-monitor/coverage.png)][coverage]
|
5
6
|
|
6
7
|
[gemversion]: http://badge.fury.io/rb/zabbix-monitor
|
7
8
|
[travis]: http://travis-ci.org/sping/zabbix-monitor
|
8
9
|
[codeclimate]: https://codeclimate.com/github/sping/zabbix-monitor
|
10
|
+
[coverage]: https://codeclimate.com/github/sping/zabbix-monitor
|
9
11
|
|
10
12
|
Zabbix monitoring for Ruby apps. Works with pushing and polling: push data to the agent server with zabbix_sender or collect data with the Zabbix agent.
|
11
13
|
|
@@ -38,6 +40,8 @@ To include the rake tasks in your application, add the following line to your Ra
|
|
38
40
|
Place your Zabbix Monitoring configuration in an initializer:
|
39
41
|
|
40
42
|
```ruby
|
43
|
+
require 'zabbix'
|
44
|
+
|
41
45
|
Zabbix.configure do |config|
|
42
46
|
config.config_file_path = '/etc/zabbix/zabbix_agentd.conf'
|
43
47
|
# optional, defaults to ./log/#{RACK_ENV}.log
|
@@ -58,7 +62,7 @@ Put the host name as configured in your Zabbix server config in `config.host_nam
|
|
58
62
|
Set the `config.mode` to one of the following options:
|
59
63
|
|
60
64
|
- `:push` uses the Zabbix agent to push the data to the Zabbix server
|
61
|
-
- `:file` writes the data to tmp/zabbix
|
65
|
+
- `:file` writes the data to tmp/zabbix-stats.yml
|
62
66
|
- `:stdout` writes the data to the stdout
|
63
67
|
|
64
68
|
Put your monitoring rules in `config.rules`. Each rule contains a Ruby command to be executed by the Zabbix Monitor and the key as configured on the Zabbix Server.
|
@@ -67,6 +71,30 @@ Start running your monitoring jobs with:
|
|
67
71
|
|
68
72
|
$ rake zabbix:collect_data
|
69
73
|
|
74
|
+
### File mode
|
75
|
+
|
76
|
+
In `:file` mode, monitoring var can be read from the monitoring file using `zabbix_reader` command.
|
77
|
+
Create a script that's been executed by the Zabbix daemon:
|
78
|
+
|
79
|
+
```bash
|
80
|
+
#! /bin/bash
|
81
|
+
cd /path/to/app/
|
82
|
+
echo $( RAILS_ENV=production bundle exec zabbix_reader $1 )
|
83
|
+
```
|
84
|
+
|
85
|
+
To speed up the reading of variables, you can also use awk to look for variables. Create the following script instead:
|
86
|
+
|
87
|
+
```bash
|
88
|
+
#! /bin/bash
|
89
|
+
cd /path/to/app/
|
90
|
+
|
91
|
+
if [ -f tmp/zabbix-stats.yml ]
|
92
|
+
then
|
93
|
+
echo $( awk -F: -v var=$1 '$0 ~ var {$1=""; print $0; exit}' tmp/zabbix-stats.yml )
|
94
|
+
else
|
95
|
+
echo Zabbix monitor file not found
|
96
|
+
fi
|
97
|
+
```
|
70
98
|
|
71
99
|
## Changelog
|
72
100
|
|
data/TODO.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# Todo
|
1
|
+
# Zabbix Monitor Todo
|
2
2
|
|
3
|
-
-
|
4
|
-
- Make
|
5
|
-
-
|
3
|
+
- Make Rufus Schedulere ActiveRecord independent
|
4
|
+
- Make schedule frequency configurable
|
5
|
+
- Capistrano integration / recipes
|
data/lib/tasks/zabbix.rb
CHANGED
@@ -1,15 +1,24 @@
|
|
1
1
|
require 'zabbix'
|
2
|
+
require 'dante'
|
2
3
|
|
3
4
|
namespace :zabbix do
|
4
5
|
desc 'Collect data for Zabbix'
|
5
|
-
task :
|
6
|
+
task :run_once => :environment do
|
6
7
|
Zabbix.logger.info "[Rake] executing #collect_once"
|
7
8
|
Zabbix::Monitor.new.collect_data
|
8
9
|
end
|
9
10
|
|
10
11
|
desc 'Collect data for Zabbix every minute'
|
11
|
-
task :
|
12
|
-
Zabbix.logger.info "[Rake] executing #
|
13
|
-
|
12
|
+
task :start => :environment do
|
13
|
+
Zabbix.logger.info "[Rake] executing #start, setting up Rufus"
|
14
|
+
Dante::Runner.new('zabbix-monitor').execute(:daemonize => true, :pid_path => 'tmp/zabbix-monitor.pid', :log_path => 'log/zabbix-monitor.log') do
|
15
|
+
Zabbix::Monitor.new.schedule
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'Stop collecting data for Zabbix'
|
20
|
+
task :stop => :environment do
|
21
|
+
Zabbix.logger.info "[Rake] executing #stop, stopping daemon"
|
22
|
+
Dante::Runner.new('zabbix-monitor').execute(:kill => true, :pid_path => 'tmp/zabbix-monitor.pid')
|
14
23
|
end
|
15
24
|
end
|
data/lib/zabbix/monitor.rb
CHANGED
data/spec/monitor_spec.rb
CHANGED
@@ -147,7 +147,7 @@ describe Zabbix::Monitor do
|
|
147
147
|
|
148
148
|
describe "#to_stdout" do
|
149
149
|
it 'receives the key and value as a puts command' do
|
150
|
-
expect(
|
150
|
+
expect(STDOUT).to receive(:puts).with('key: the value')
|
151
151
|
monitor.send(:to_stdout, 'key', 'the value')
|
152
152
|
end
|
153
153
|
end
|
data/spec/spec_helper.rb
CHANGED
data/zabbix-monitor.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'zabbix-monitor'
|
7
|
-
spec.version = '0.0.
|
7
|
+
spec.version = '0.0.3'
|
8
8
|
spec.authors = ['Robert Jan de Gelder', 'Manuel van Rijn']
|
9
9
|
spec.email = ['r.degelder@sping.nl', 'm.vanrijn@sping.nl']
|
10
10
|
spec.description = 'Zabbix application monitoring'
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.add_dependency 'rufus-scheduler', '~> 3.0'
|
21
21
|
spec.add_dependency 'yell', '~> 2.0'
|
22
|
+
spec.add_dependency 'dante', '~> 0.2.0'
|
22
23
|
|
23
24
|
spec.add_development_dependency 'rake'
|
24
25
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
@@ -27,4 +28,5 @@ Gem::Specification.new do |spec|
|
|
27
28
|
spec.add_development_dependency 'pry-nav'
|
28
29
|
spec.add_development_dependency 'yard'
|
29
30
|
spec.add_development_dependency 'simplecov'
|
31
|
+
spec.add_development_dependency 'codeclimate-test-reporter'
|
30
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zabbix-monitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Jan de Gelder
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-05-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rufus-scheduler
|
@@ -39,6 +39,20 @@ dependencies:
|
|
39
39
|
- - ~>
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '2.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: dante
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 0.2.0
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 0.2.0
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
57
|
name: rake
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,6 +151,20 @@ dependencies:
|
|
137
151
|
- - '>='
|
138
152
|
- !ruby/object:Gem::Version
|
139
153
|
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: codeclimate-test-reporter
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - '>='
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - '>='
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
140
168
|
description: Zabbix application monitoring
|
141
169
|
email:
|
142
170
|
- r.degelder@sping.nl
|