zabbix-ruby-client 0.0.20 → 0.0.21
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.
- checksums.yaml +7 -0
- data/.gitignore +2 -1
- data/.ruby-version +1 -0
- data/CHANGELOG.md +10 -1
- data/README.md +7 -2
- data/lib/zabbix-ruby-client/plugin_base.rb +28 -0
- data/lib/zabbix-ruby-client/plugins/ovpn.rb +55 -0
- data/lib/zabbix-ruby-client/plugins/postgres.rb +45 -0
- data/lib/zabbix-ruby-client/runner.rb +11 -1
- data/lib/zabbix-ruby-client/version.rb +1 -1
- data/spec/files/system/net_dev +1 -1
- data/spec/lib/cli_spec.rb +7 -7
- data/spec/lib/data_spec.rb +5 -5
- data/spec/lib/plugin_base_spec.rb +6 -6
- data/spec/lib/plugins/apache_spec.rb +1 -1
- data/spec/lib/plugins/apt_spec.rb +5 -5
- data/spec/lib/plugins/cpu_spec.rb +3 -3
- data/spec/lib/plugins/disk_spec.rb +40 -40
- data/spec/lib/plugins/load_spec.rb +5 -5
- data/spec/lib/plugins/memory_spec.rb +52 -52
- data/spec/lib/plugins/network_spec.rb +28 -29
- data/spec/lib/runner_spec.rb +21 -8
- data/zabbix-templates/apache_tpl.xml +115 -46
- data/zabbix-templates/apt_tpl.xml +13 -4
- data/zabbix-templates/cisco_tpl.xml +2089 -0
- data/zabbix-templates/cpu_tpl.xml +116 -53
- data/zabbix-templates/disk_tpl.xml +75 -29
- data/zabbix-templates/load_tpl.xml +21 -9
- data/zabbix-templates/memory_tpl.xml +52 -28
- data/zabbix-templates/mysql_tpl.xml +70 -28
- data/zabbix-templates/network_tpl.xml +40 -96
- data/zabbix-templates/nginx_tpl.xml +37 -16
- data/zabbix-templates/openvpn_tpl.xml +312 -0
- data/zabbix-templates/postgres_tpl.xml +891 -8
- data/zabbix-templates/redis_tpl.xml +46 -19
- data/zabbix-templates/sysinfo_tpl.xml +21 -3
- data/zabbix-templates/system_tpl.xml +339 -3
- metadata +26 -42
| @@ -6,7 +6,7 @@ ZabbixRubyClient::Plugins.scan_dirs ["zabbix-ruby-client/plugins"] | |
| 6 6 | 
             
            require "zabbix-ruby-client/plugins/memory"
         | 
| 7 7 |  | 
| 8 8 | 
             
            describe ZabbixRubyClient::Plugins::Memory do
         | 
| 9 | 
            -
             | 
| 9 | 
            +
             | 
| 10 10 |  | 
| 11 11 | 
             
              before :all do
         | 
| 12 12 | 
             
                @logfile = File.expand_path("../../files/logs/spec.log", __FILE__)
         | 
| @@ -24,71 +24,71 @@ describe ZabbixRubyClient::Plugins::Memory do | |
| 24 24 |  | 
| 25 25 | 
             
              it "prepare data to be usable" do
         | 
| 26 26 | 
             
                expected = {
         | 
| 27 | 
            -
                  "MemTotal"=>4229570560, | 
| 28 | 
            -
                  "MemFree"=>685416448, | 
| 29 | 
            -
                  "Buffers"=>59116, | 
| 30 | 
            -
                  "Cached"=>385776, | 
| 31 | 
            -
                  "SwapCached"=>204968, | 
| 32 | 
            -
                  "Active"=>2664148, | 
| 33 | 
            -
                  "Inactive"=>883200, | 
| 34 | 
            -
                  "Unevictable"=>212, | 
| 35 | 
            -
                  "Mlocked"=>212, | 
| 36 | 
            -
                  "HighTotal"=>3280520, | 
| 37 | 
            -
                  "HighFree"=>41136, | 
| 38 | 
            -
                  "LowTotal"=>849920, | 
| 39 | 
            -
                  "LowFree"=>183324, | 
| 40 | 
            -
                  "SwapTotal"=>5999050752, | 
| 41 | 
            -
                  "SwapFree"=>3666022400, | 
| 42 | 
            -
                  "Dirty"=>532, | 
| 43 | 
            -
                  "Writeback"=>0, | 
| 44 | 
            -
                  "AnonPages"=>3002480, | 
| 45 | 
            -
                  "Mapped"=>278560, | 
| 46 | 
            -
                  "Shmem"=>110636, | 
| 47 | 
            -
                  "Slab"=>92716, | 
| 48 | 
            -
                  "SReclaimable"=>60300, | 
| 49 | 
            -
                  "SUnreclaim"=>32416, | 
| 50 | 
            -
                  "KernelStack"=>7752, | 
| 51 | 
            -
                  "PageTables"=>49584, | 
| 52 | 
            -
                  "NFS_Unstable"=>0, | 
| 53 | 
            -
                  "Bounce"=>0, | 
| 54 | 
            -
                  "WritebackTmp"=>0, | 
| 55 | 
            -
                  "CommitLimit"=>7923668, | 
| 56 | 
            -
                  "Committed_AS"=>15878488, | 
| 57 | 
            -
                  "VmallocTotal"=>122880, | 
| 58 | 
            -
                  "VmallocUsed"=>49400, | 
| 59 | 
            -
                  "VmallocChunk"=>66212, | 
| 60 | 
            -
                  "HardwareCorrupted"=>0, | 
| 61 | 
            -
                  "AnonHugePages"=>0, | 
| 62 | 
            -
                  "Hugepagesize"=>2048, | 
| 63 | 
            -
                  "DirectMap4k"=>851960, | 
| 64 | 
            -
                  "DirectMap2M"=>61440, | 
| 65 | 
            -
                  "MemUsed"=>3544154112, | 
| 66 | 
            -
                  "MemPercent"=>83, | 
| 67 | 
            -
                  "SwapUsed"=>2333028352, | 
| 27 | 
            +
                  "MemTotal"=>4229570560,
         | 
| 28 | 
            +
                  "MemFree"=>685416448,
         | 
| 29 | 
            +
                  "Buffers"=>59116,
         | 
| 30 | 
            +
                  "Cached"=>385776,
         | 
| 31 | 
            +
                  "SwapCached"=>204968,
         | 
| 32 | 
            +
                  "Active"=>2664148,
         | 
| 33 | 
            +
                  "Inactive"=>883200,
         | 
| 34 | 
            +
                  "Unevictable"=>212,
         | 
| 35 | 
            +
                  "Mlocked"=>212,
         | 
| 36 | 
            +
                  "HighTotal"=>3280520,
         | 
| 37 | 
            +
                  "HighFree"=>41136,
         | 
| 38 | 
            +
                  "LowTotal"=>849920,
         | 
| 39 | 
            +
                  "LowFree"=>183324,
         | 
| 40 | 
            +
                  "SwapTotal"=>5999050752,
         | 
| 41 | 
            +
                  "SwapFree"=>3666022400,
         | 
| 42 | 
            +
                  "Dirty"=>532,
         | 
| 43 | 
            +
                  "Writeback"=>0,
         | 
| 44 | 
            +
                  "AnonPages"=>3002480,
         | 
| 45 | 
            +
                  "Mapped"=>278560,
         | 
| 46 | 
            +
                  "Shmem"=>110636,
         | 
| 47 | 
            +
                  "Slab"=>92716,
         | 
| 48 | 
            +
                  "SReclaimable"=>60300,
         | 
| 49 | 
            +
                  "SUnreclaim"=>32416,
         | 
| 50 | 
            +
                  "KernelStack"=>7752,
         | 
| 51 | 
            +
                  "PageTables"=>49584,
         | 
| 52 | 
            +
                  "NFS_Unstable"=>0,
         | 
| 53 | 
            +
                  "Bounce"=>0,
         | 
| 54 | 
            +
                  "WritebackTmp"=>0,
         | 
| 55 | 
            +
                  "CommitLimit"=>7923668,
         | 
| 56 | 
            +
                  "Committed_AS"=>15878488,
         | 
| 57 | 
            +
                  "VmallocTotal"=>122880,
         | 
| 58 | 
            +
                  "VmallocUsed"=>49400,
         | 
| 59 | 
            +
                  "VmallocChunk"=>66212,
         | 
| 60 | 
            +
                  "HardwareCorrupted"=>0,
         | 
| 61 | 
            +
                  "AnonHugePages"=>0,
         | 
| 62 | 
            +
                  "Hugepagesize"=>2048,
         | 
| 63 | 
            +
                  "DirectMap4k"=>851960,
         | 
| 64 | 
            +
                  "DirectMap2M"=>61440,
         | 
| 65 | 
            +
                  "MemUsed"=>3544154112,
         | 
| 66 | 
            +
                  "MemPercent"=>83,
         | 
| 67 | 
            +
                  "SwapUsed"=>2333028352,
         | 
| 68 68 | 
             
                  "SwapPercent"=>38
         | 
| 69 69 | 
             
                }
         | 
| 70 70 | 
             
                stubfile = File.expand_path('../../../../spec/files/system/meminfo', __FILE__)
         | 
| 71 | 
            -
                ZabbixRubyClient::Plugins::Memory. | 
| 71 | 
            +
                allow(ZabbixRubyClient::Plugins::Memory).to receive(:meminfo).and_return(File.read(stubfile))
         | 
| 72 72 | 
             
                data = ZabbixRubyClient::Plugins::Memory.send(:get_info)
         | 
| 73 73 | 
             
                expect(data).to eq expected
         | 
| 74 74 | 
             
              end
         | 
| 75 75 |  | 
| 76 76 | 
             
              it "populate a hash with extracted data" do
         | 
| 77 77 | 
             
                expected = [
         | 
| 78 | 
            -
                  "local memory[total] 123456789 4229570560", | 
| 78 | 
            +
                  "local memory[total] 123456789 4229570560",
         | 
| 79 79 | 
             
                  "local memory[free] 123456789 685416448",
         | 
| 80 | 
            -
                  "local memory[used] 123456789 3544154112", | 
| 81 | 
            -
                  "local memory[percent_used] 123456789 83", | 
| 82 | 
            -
                  "local memory[swap_total] 123456789 5999050752", | 
| 83 | 
            -
                  "local memory[swap_free] 123456789 3666022400", | 
| 84 | 
            -
                  "local memory[swap_used] 123456789 2333028352", | 
| 80 | 
            +
                  "local memory[used] 123456789 3544154112",
         | 
| 81 | 
            +
                  "local memory[percent_used] 123456789 83",
         | 
| 82 | 
            +
                  "local memory[swap_total] 123456789 5999050752",
         | 
| 83 | 
            +
                  "local memory[swap_free] 123456789 3666022400",
         | 
| 84 | 
            +
                  "local memory[swap_used] 123456789 2333028352",
         | 
| 85 85 | 
             
                  "local memory[swap_percent_used] 123456789 38"
         | 
| 86 86 | 
             
                ]
         | 
| 87 87 | 
             
                stubfile = File.expand_path('../../../../spec/files/system/meminfo', __FILE__)
         | 
| 88 | 
            -
                ZabbixRubyClient::Plugins::Memory. | 
| 89 | 
            -
                Time. | 
| 88 | 
            +
                allow(ZabbixRubyClient::Plugins::Memory).to receive(:meminfo).and_return(File.read(stubfile))
         | 
| 89 | 
            +
                allow(Time).to receive(:now).and_return("123456789")
         | 
| 90 90 | 
             
                data = ZabbixRubyClient::Plugins::Memory.send(:collect, 'local')
         | 
| 91 91 | 
             
                expect(data).to eq expected
         | 
| 92 92 | 
             
              end
         | 
| 93 93 |  | 
| 94 | 
            -
            end
         | 
| 94 | 
            +
            end
         | 
| @@ -6,7 +6,7 @@ ZabbixRubyClient::Plugins.scan_dirs ["zabbix-ruby-client/plugins"] | |
| 6 6 | 
             
            require "zabbix-ruby-client/plugins/network"
         | 
| 7 7 |  | 
| 8 8 | 
             
            describe ZabbixRubyClient::Plugins::Network do
         | 
| 9 | 
            -
             | 
| 9 | 
            +
             | 
| 10 10 |  | 
| 11 11 | 
             
              before :all do
         | 
| 12 12 | 
             
                @logfile = File.expand_path("../../files/logs/spec.log", __FILE__)
         | 
| @@ -19,45 +19,44 @@ describe ZabbixRubyClient::Plugins::Network do | |
| 19 19 |  | 
| 20 20 | 
             
              it "prepare data to be usable" do
         | 
| 21 21 | 
             
                expected = [
         | 
| 22 | 
            -
                  "", | 
| 23 | 
            -
                  " | 
| 24 | 
            -
                  " | 
| 25 | 
            -
                  " | 
| 26 | 
            -
                  "0", | 
| 27 | 
            -
                  "0", | 
| 28 | 
            -
                  "0", | 
| 29 | 
            -
                  "0", | 
| 30 | 
            -
                  " | 
| 31 | 
            -
                  " | 
| 32 | 
            -
                  " | 
| 33 | 
            -
                  " | 
| 34 | 
            -
                  "0", | 
| 35 | 
            -
                  "0", | 
| 36 | 
            -
                  "0", | 
| 37 | 
            -
                  "0", | 
| 38 | 
            -
                  "0", 
         | 
| 22 | 
            +
                  "eth0:",
         | 
| 23 | 
            +
                  "8523363858",
         | 
| 24 | 
            +
                  "17554648",
         | 
| 25 | 
            +
                  "0",
         | 
| 26 | 
            +
                  "0",
         | 
| 27 | 
            +
                  "0",
         | 
| 28 | 
            +
                  "0",
         | 
| 29 | 
            +
                  "0",
         | 
| 30 | 
            +
                  "589997",
         | 
| 31 | 
            +
                  "2479556217",
         | 
| 32 | 
            +
                  "15780062",
         | 
| 33 | 
            +
                  "0",
         | 
| 34 | 
            +
                  "0",
         | 
| 35 | 
            +
                  "0",
         | 
| 36 | 
            +
                  "0",
         | 
| 37 | 
            +
                  "0",
         | 
| 39 38 | 
             
                  "0"
         | 
| 40 39 | 
             
                ]
         | 
| 41 40 | 
             
                stubfile = File.expand_path('../../../../spec/files/system/net_dev', __FILE__)
         | 
| 42 | 
            -
                ZabbixRubyClient::Plugins::Network. | 
| 41 | 
            +
                allow(ZabbixRubyClient::Plugins::Network).to receive(:getline).and_return(File.read(stubfile))
         | 
| 43 42 | 
             
                data = ZabbixRubyClient::Plugins::Network.send(:get_info, 'eth0')
         | 
| 44 43 | 
             
                expect(data).to eq expected
         | 
| 45 44 | 
             
              end
         | 
| 46 45 |  | 
| 47 46 | 
             
              it "populate a hash with extracted data" do
         | 
| 48 47 | 
             
                expected = [
         | 
| 49 | 
            -
                  "local net.rx_ok[eth0] 123456789 8523363858", | 
| 50 | 
            -
                  "local net.rx_packets[eth0] 123456789 17554648", | 
| 51 | 
            -
                  "local net.rx_err[eth0] 123456789 0", | 
| 52 | 
            -
                  "local net.rx_drop[eth0] 123456789 0", | 
| 53 | 
            -
                  "local net.tx_ok[eth0] 123456789 2479556217", | 
| 54 | 
            -
                  "local net.tx_packets[eth0] 123456789 15780062", | 
| 55 | 
            -
                  "local net.tx_err[eth0] 123456789 0", | 
| 48 | 
            +
                  "local net.rx_ok[eth0] 123456789 8523363858",
         | 
| 49 | 
            +
                  "local net.rx_packets[eth0] 123456789 17554648",
         | 
| 50 | 
            +
                  "local net.rx_err[eth0] 123456789 0",
         | 
| 51 | 
            +
                  "local net.rx_drop[eth0] 123456789 0",
         | 
| 52 | 
            +
                  "local net.tx_ok[eth0] 123456789 2479556217",
         | 
| 53 | 
            +
                  "local net.tx_packets[eth0] 123456789 15780062",
         | 
| 54 | 
            +
                  "local net.tx_err[eth0] 123456789 0",
         | 
| 56 55 | 
             
                  "local net.tx_drop[eth0] 123456789 0"
         | 
| 57 56 | 
             
                ]
         | 
| 58 57 | 
             
                stubfile = File.expand_path('../../../../spec/files/system/net_dev', __FILE__)
         | 
| 59 | 
            -
                ZabbixRubyClient::Plugins::Network. | 
| 60 | 
            -
                Time. | 
| 58 | 
            +
                allow(ZabbixRubyClient::Plugins::Network).to receive(:getline).and_return(File.read(stubfile))
         | 
| 59 | 
            +
                allow(Time).to receive(:now).and_return("123456789")
         | 
| 61 60 | 
             
                data = ZabbixRubyClient::Plugins::Network.send(:collect, 'local', 'eth0')
         | 
| 62 61 | 
             
                expect(data).to eq expected
         | 
| 63 62 | 
             
              end
         | 
| @@ -68,4 +67,4 @@ describe ZabbixRubyClient::Plugins::Network do | |
| 68 67 | 
             
                expect(data).to eq expected
         | 
| 69 68 | 
             
              end
         | 
| 70 69 |  | 
| 71 | 
            -
            end
         | 
| 70 | 
            +
            end
         | 
    
        data/spec/lib/runner_spec.rb
    CHANGED
    
    | @@ -5,28 +5,41 @@ require "zabbix-ruby-client" | |
| 5 5 |  | 
| 6 6 | 
             
            describe ZabbixRubyClient::Runner do
         | 
| 7 7 |  | 
| 8 | 
            +
              let(:config) { {
         | 
| 9 | 
            +
                'datadir' => 'data',
         | 
| 10 | 
            +
                'logsdir' => 'logs',
         | 
| 11 | 
            +
                'plugindirs' => [ 'plugins' ],
         | 
| 12 | 
            +
                'keepdata' => false,
         | 
| 13 | 
            +
                'host' => 'localhost',
         | 
| 14 | 
            +
                'taskfile' => nil,
         | 
| 15 | 
            +
                'zabbix' => {
         | 
| 16 | 
            +
                  'host' => 'localhost',
         | 
| 17 | 
            +
                  'sender' => '/bin/true'
         | 
| 18 | 
            +
                }
         | 
| 19 | 
            +
              } }
         | 
| 20 | 
            +
              let(:tasks) { {
         | 
| 21 | 
            +
                'name' => 'sysinfo'
         | 
| 22 | 
            +
              } }
         | 
| 23 | 
            +
             | 
| 8 24 | 
             
              before :each do
         | 
| 9 25 | 
             
                @basedir = File.expand_path("../../files", __FILE__)
         | 
| 10 26 | 
             
                Dir.chdir @basedir
         | 
| 11 | 
            -
                config_file = File.join(@basedir, "config.yml")
         | 
| 12 | 
            -
                @config = YAML::load_file(config_file)
         | 
| 13 | 
            -
                task_file = File.join(@basedir, "task.yml")
         | 
| 14 | 
            -
                @tasks = YAML::load_file(task_file)
         | 
| 15 27 | 
             
              end
         | 
| 16 28 |  | 
| 17 29 | 
             
              after :each do
         | 
| 18 | 
            -
                logfile = File.join( | 
| 30 | 
            +
                logfile = File.join(config['logsdir'], "zrc.log")
         | 
| 19 31 | 
             
                File.unlink(logfile) if File.exists?(logfile)
         | 
| 32 | 
            +
                FileUtils.rmdir(config['logsdir']) if Dir.exists?(config['logsdir'])
         | 
| 20 33 | 
             
              end
         | 
| 21 34 |  | 
| 22 35 | 
             
              it "initialize the client object" do
         | 
| 23 | 
            -
                @zrc = ZabbixRubyClient::Runner.new( | 
| 36 | 
            +
                @zrc = ZabbixRubyClient::Runner.new(config, tasks)
         | 
| 24 37 | 
             
                expect(@zrc.instance_variable_get(:@config)['host']).to eq 'localhost'
         | 
| 25 38 | 
             
              end
         | 
| 26 39 |  | 
| 27 40 | 
             
              it "creates dirs if needed" do
         | 
| 28 | 
            -
                @zrc = ZabbixRubyClient::Runner.new( | 
| 29 | 
            -
                expect(Dir.exists? "logs").to  | 
| 41 | 
            +
                @zrc = ZabbixRubyClient::Runner.new(config, tasks)
         | 
| 42 | 
            +
                expect(Dir.exists? "logs").to be_truthy
         | 
| 30 43 | 
             
              end
         | 
| 31 44 |  | 
| 32 45 | 
             
              pending "loads list of plugins"
         |