zabbix-rails 0.1.4 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a69c9d81af95b28fc20c815ff323a31cf0dd1c29dd54aab6829a2224ab8c485e
4
- data.tar.gz: 220e0328786170be774c8f835bab0ee15104fade5dd558ac840e47aed502fcd6
3
+ metadata.gz: aa818a8ba839cf3da0d79d2bd76a5bce34c9b153408320c57e87aa8c62c28700
4
+ data.tar.gz: bf33db9b88d475e5ebf71caa669efe7be39a5976a0f1a844978a157181a89a58
5
5
  SHA512:
6
- metadata.gz: e48aa2cc53f58fdec3b4dd97549a0e22b2dca70cc7806b635092dc2bd7df5697511f8cc370cf973e313c53e026da371288447cf6cccb1c9e5d13698cf20b7c20
7
- data.tar.gz: 34519f575756027d787b1a8cd110cf4702840522e3bbfe701f5f30d8f859165d34607c9a352ab8a28f142141d03a439923ca76f750324750c60d7676e4b03073
6
+ metadata.gz: 20114878297c5b7113f204881462c466b45e8512e500f5e3e6ede5a56ddc0869872bfdf7446142948133467c3a53e021f0a2b5a4d0d5aaf06a3e2574940448e4
7
+ data.tar.gz: 1d3a1613710a430c2485e2354776df1e6cf8121ce203241a980c51ecd24c7363c3cb92d78d635ecfe83531927c4a02ea5f90e1eefb7147d674cc2d71b1d5b16d
data/README.md CHANGED
@@ -1,10 +1,17 @@
1
- # Zabbix
2
- Short description and motivation.
1
+ # Zabbix-Rails
2
+ 主要实现 zabbix_connector 对象缓存,加速 API 交互效率。 依赖 zabbix_manager 作为后端请求模块
3
3
 
4
4
  ## Usage
5
- How to use my plugin.
5
+ ```
6
+ 1、include Zabbix::Connector 到模块或者类对象;
7
+ 2、调用 zabbix_connector 方法自动实现后端鉴权,当前前提是配置好 'zabbix_rails.rb in config/initializers'
8
+ 3、调用 Zabbix::HostMonitor 实现自动维护监控对象
9
+ 4、调用 Zabbix::ItemTrigger 实现自动维护触发器对象
10
+ 5、调用 Zabbix::Dns 实现自动维护 DNS 监控
11
+ ```
6
12
 
7
13
  ## Installation
14
+
8
15
  Add this line to your application's Gemfile:
9
16
 
10
17
  ```ruby
@@ -12,17 +19,30 @@ gem "zabbix-rails"
12
19
  ```
13
20
 
14
21
  And then execute:
22
+
15
23
  ```bash
16
24
  $ bundle
17
25
  ```
18
26
 
19
27
  Or install it yourself as:
28
+
20
29
  ```bash
21
30
  $ gem install zabbix-rails
22
31
  ```
23
32
 
33
+ add zabbix_rails.rb in config/initializers
34
+
35
+ ```
36
+ # Zabbix.configure do |config|
37
+ # c.url = Rails.application.credentials.zabbix.url
38
+ # c.user = Rails.application.credentials.zabbix.username
39
+ # c.password = Rails.application.credentials.zabbix.password
40
+ # c.debug = false
41
+ # end
42
+ ```
43
+
24
44
  ## Contributing
25
- Contribution directions go here.
26
45
 
27
46
  ## License
47
+
28
48
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # desc "Explaining what the task does"
2
3
  # task :zabbix-rails do
3
4
  # # Task goes here
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zabbix
4
+ class Config
5
+ class << self
6
+ attr_accessor :url, :user, :password, :debug
7
+
8
+ def configure
9
+ yield self
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,19 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/concern"
1
4
 
2
5
  module Zabbix
3
- extend ActiveSupport::Concern
6
+ extend ::ActiveSupport::Concern
4
7
 
5
8
  module Connector
6
9
  # 开发测试环境需要单独开启缓存功能:bin/rails dev:cache
7
10
  # 将鉴权后的 zabbix-rails 对象缓存到 Rails,减少不必要的认证动作加速执行
8
11
  # https://guides.rubyonrails.org/caching_with_rails.html
9
12
  def zabbix_connector
10
- url = "http://zabbix-rails.local/api_jsonrpc.php"
11
- user = "Admin"
12
- password = "zabbix-rails"
13
-
14
13
  Rails.cache.fetch("zabbix_connector", expires_in: 4.hours) do
15
14
  Rails.logger.warn("Zabbix 正在请求 API 鉴权")
16
- ZabbixManager.connect(url: url, user: user, password: password, debug: false)
15
+ ZabbixManager.connect(url: Config.url, user: Config.user, password: Config.password, debug: Config.debug)
17
16
  rescue => e
18
17
  Rails.logger.warn("登录 ZABBIX 异常,请检查网络或登录凭证。原始报错信息: #{e}")
19
18
  end
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support/concern"
4
+
3
5
  module Zabbix
4
- extend ActiveSupport::Concern
6
+ extend ::ActiveSupport::Concern
5
7
 
6
8
  module DnsMonitor
7
9
  include Zabbix::Connector
data/lib/zabbix/engine.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Zabbix
2
4
  class Engine < ::Rails::Engine
3
5
  isolate_namespace Zabbix
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support/concern"
4
+
3
5
  module Zabbix
4
- extend ActiveSupport::Concern
6
+ extend ::ActiveSupport::Concern
5
7
 
6
8
  module HostMonitor
7
9
  include Zabbix::Connector
@@ -42,6 +44,5 @@ module Zabbix
42
44
  rescue => e
43
45
  Rails.logger.warn("无法执行创建或更新监控主机: #{item.name} #{item.sn} #{e}")
44
46
  end
45
-
46
47
  end
47
48
  end
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support/concern"
4
+
3
5
  module Zabbix
4
- extend ActiveSupport::Concern
6
+ extend ::ActiveSupport::Concern
5
7
 
6
8
  module ItemTrigger
7
9
  include Zabbix::Connector
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Zabbix
2
- VERSION = "0.1.4"
4
+ VERSION = "0.1.9"
3
5
  end
data/lib/zabbix-rails.rb CHANGED
@@ -1,15 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "zabbix/version"
4
+ require "zabbix/config"
2
5
  require "zabbix/connector"
3
6
  require "zabbix/host_monitor"
4
7
  require "zabbix/item_trigger"
5
8
  require "zabbix/dns_monitor"
6
- require "zabbix/railtie"
7
9
 
8
10
  # 加载外部依赖
11
+ require "active_support/concern"
9
12
  require "zabbix_manager"
10
13
 
11
14
  module Zabbix
12
- extend ActiveSupport::Concern
15
+ extend ::ActiveSupport::Concern
13
16
 
14
17
  class << self
15
18
  attr_accessor :url, :user, :password, :debug
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zabbix-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - WENWU.YAN
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- description: Description of Zabbix-rails.
27
+ description: 借助 zabbix_manager 实现自动维护 zabbix 监控对象
28
28
  email:
29
29
  - careline@foxmail.com
30
30
  executables: []
@@ -35,17 +35,19 @@ files:
35
35
  - Rakefile
36
36
  - lib/tasks/zabbix_tasks.rake
37
37
  - lib/zabbix-rails.rb
38
+ - lib/zabbix/config.rb
38
39
  - lib/zabbix/connector.rb
39
40
  - lib/zabbix/dns_monitor.rb
40
41
  - lib/zabbix/engine.rb
41
42
  - lib/zabbix/host_monitor.rb
42
43
  - lib/zabbix/item_trigger.rb
43
- - lib/zabbix/railtie.rb
44
44
  - lib/zabbix/version.rb
45
- homepage: https://rubygem.org
45
+ homepage: https://github.com/ciscolive/zabbix-rails
46
46
  licenses: []
47
47
  metadata:
48
- homepage_uri: https://rubygem.org
48
+ homepage_uri: https://github.com/ciscolive/zabbix-rails
49
+ source_code_uri: https://github.com/ciscolive/zabbix-rails
50
+ changelog_uri: https://github.com/ciscolive/zabbix-rails/blob/main/README.md
49
51
  post_install_message:
50
52
  rdoc_options: []
51
53
  require_paths:
@@ -64,5 +66,5 @@ requirements: []
64
66
  rubygems_version: 3.3.3
65
67
  signing_key:
66
68
  specification_version: 4
67
- summary: Summary of Zabbix-rails.
69
+ summary: 主要实现 zabbix_connector 对象缓存,加速 API 交互效率
68
70
  test_files: []
@@ -1,4 +0,0 @@
1
- module Zabbix
2
- class Railtie < ::Rails::Railtie
3
- end
4
- end