capistrano-mon 0.0.2 → 0.0.3
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 +26 -8
- data/capistrano-mon.gemspec +2 -2
- data/lib/capistrano-mon.rb +50 -0
- data/lib/capistrano-mon/templates/mon.cf.erb +2 -2
- data/lib/capistrano-mon/version.rb +1 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -18,14 +18,32 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
This recipe will setup Mon during `deploy:setup` task.
|
22
|
+
|
23
|
+
To enable this recipe, add following in your `config/deploy.rb`.
|
24
|
+
|
25
|
+
# in "config/deploy.rb"
|
26
|
+
require "capistrano-mon"
|
27
|
+
set(:mon_services) {{
|
28
|
+
"ping" => {
|
29
|
+
:description => "Responses to ping",
|
30
|
+
:interval => "5m",
|
31
|
+
:monitor => "fping.monitor",
|
32
|
+
:period => "wd {Mon-Fri} hr {7am-10pm}",
|
33
|
+
:alert => "mail.alert root@localhost",
|
34
|
+
:alertevery => "1h",
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
Following options are available to configure your Mon.
|
39
|
+
|
40
|
+
* `:mon_path` - The base path of Mon configurations. Use `/etc/mon` by default.
|
41
|
+
* `:mon_services` - The key-value map of `service` definitions of Mon.
|
42
|
+
* `:mon_dependencies` - The packages of Mon.
|
43
|
+
* `:mon_plugins_path` - The installation path for custom plugins.
|
44
|
+
* `:mon_plugins` - The information of custom plugins.
|
45
|
+
* `:mon_configure_files` - The configuration files of Mon.
|
46
|
+
* `:mon_service_name` - The name of Mon service. Use `mon` by default.
|
29
47
|
|
30
48
|
## Contributing
|
31
49
|
|
data/capistrano-mon.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.version = Capistrano::Mon::VERSION
|
9
9
|
gem.authors = ["Yamashita Yuu"]
|
10
10
|
gem.email = ["yamashita@geishatokyo.com"]
|
11
|
-
gem.description = %q{a capistrano recipe to setup
|
12
|
-
gem.summary = %q{a capistrano recipe to setup
|
11
|
+
gem.description = %q{a capistrano recipe to setup Mon.}
|
12
|
+
gem.summary = %q{a capistrano recipe to setup Mon.}
|
13
13
|
gem.homepage = "https://github.com/yyuu/capistrano-mon"
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
data/lib/capistrano-mon.rb
CHANGED
@@ -11,6 +11,42 @@ module Capistrano
|
|
11
11
|
_cset(:mon_path, "/etc/mon")
|
12
12
|
_cset(:mon_lib_path, "/var/lib/mon")
|
13
13
|
_cset(:mon_log_path, "/var/log/mon")
|
14
|
+
_cset(:mon_hostgroup_name) { application }
|
15
|
+
_cset(:mon_hostgroup, %w(localhost))
|
16
|
+
_cset(:mon_services, {})
|
17
|
+
#
|
18
|
+
# Example:
|
19
|
+
#
|
20
|
+
# set(:mon_services) {{
|
21
|
+
# "ping" => {
|
22
|
+
# :description => "Responses to ping",
|
23
|
+
# :interval => "5m",
|
24
|
+
# :monitor => "fping.monitor",
|
25
|
+
# :period => "wd {Mon-Fri} hr {7am-10pm}",
|
26
|
+
# :alert => "mail.alert root@localhost",
|
27
|
+
# :alertevery => "1h",
|
28
|
+
# },
|
29
|
+
# "http" => {
|
30
|
+
# :description => "HTTP service",
|
31
|
+
# :interval => "10m",
|
32
|
+
# :monitor => "http.monitor",
|
33
|
+
# :period => "",
|
34
|
+
# :numalerts => 10,
|
35
|
+
# :alert => "mail.alert root@localhost",
|
36
|
+
# :upalert => "mail.alert root@localhost",
|
37
|
+
# },
|
38
|
+
# "smtp" => {
|
39
|
+
# :description => "SMTP service",
|
40
|
+
# :interval => "10m",
|
41
|
+
# :monitor => "smtp.monitor -t 60",
|
42
|
+
# :period => "",
|
43
|
+
# :numalerts => 10,
|
44
|
+
# :alert => "mail.alert root@localhost",
|
45
|
+
# :upalert => "mail.alert root@localhost",
|
46
|
+
# },
|
47
|
+
# }}
|
48
|
+
#
|
49
|
+
|
14
50
|
desc("Setup mon.")
|
15
51
|
task(:setup, :roles => :app, :except => { :no_release => true }) {
|
16
52
|
transaction {
|
@@ -85,6 +121,20 @@ module Capistrano
|
|
85
121
|
|
86
122
|
_cset(:mon_plugins_path, "/usr/local/lib/mon")
|
87
123
|
_cset(:mon_plugins, [])
|
124
|
+
#
|
125
|
+
# Example:
|
126
|
+
#
|
127
|
+
# ## simple definition
|
128
|
+
# set(:mon_plugins, %w(
|
129
|
+
# https://example.com/foo.alert
|
130
|
+
# https://example.com/bar.monitor
|
131
|
+
# ))
|
132
|
+
#
|
133
|
+
# ## use custom plugin name
|
134
|
+
# set(:mon_plugins) {{
|
135
|
+
# "https://gist.github.com/raw/2321002/pyhttp.monitor.py" => "pyhttp.monitor",
|
136
|
+
# }}
|
137
|
+
#
|
88
138
|
task(:update_plugins, :roles => :app, :except => { :no_release => true }) {
|
89
139
|
srcs = mon_plugins.map { |uri, name| uri }
|
90
140
|
tmps = mon_plugins.map { |uri, name| tempfile('capistrano-mon') }
|
@@ -21,12 +21,12 @@ dtlogfile = <%= fetch(:mon_dtlogfile, "dtlog") %>
|
|
21
21
|
#
|
22
22
|
# Define groups of hosts to monitor
|
23
23
|
#
|
24
|
-
hostgroup
|
24
|
+
hostgroup <%= mon_hostgroup_name %> <%= mon_hostgroup.join(' ') %>
|
25
25
|
|
26
26
|
#
|
27
27
|
# Define watches
|
28
28
|
#
|
29
|
-
watch
|
29
|
+
watch <%= mon_hostgroup_name %><% fetch(:mon_services, {}).each { |service_name, service_defs| %>
|
30
30
|
service <%= service_name %><% service_defs.each { |monitor_name, monitor_def| %><% if Array === monitor_def %><% monitor_def.each { |d| %>
|
31
31
|
<%= monitor_name %> <%= d %><% } %><% else %>
|
32
32
|
<%= monitor_name %> <%= monitor_def %><% end %><% } %><% } %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-mon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
@@ -27,7 +27,7 @@ dependencies:
|
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
|
-
description: a capistrano recipe to setup
|
30
|
+
description: a capistrano recipe to setup Mon.
|
31
31
|
email:
|
32
32
|
- yamashita@geishatokyo.com
|
33
33
|
executables: []
|
@@ -67,5 +67,5 @@ rubyforge_project:
|
|
67
67
|
rubygems_version: 1.8.23
|
68
68
|
signing_key:
|
69
69
|
specification_version: 3
|
70
|
-
summary: a capistrano recipe to setup
|
70
|
+
summary: a capistrano recipe to setup Mon.
|
71
71
|
test_files: []
|