logstash-output-zabbix 1.0.0 → 2.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 76bcbc8561c38df609e886626472e7e37b204b68
4
- data.tar.gz: 6516cac2c9a4a122a4b81e7bc3b293d627d55ed4
3
+ metadata.gz: 4f335e6edeefc3b732deae8543f1a88070d4b243
4
+ data.tar.gz: 841ef0e1a70580884bde00cfabf7b883813a3179
5
5
  SHA512:
6
- metadata.gz: 5ee793abccbf94ceca9f562b9b4a165633d9d6493180bcb51dc30ff1a07c64224b410f5102eb79e2e6102ef64175bfaa2f0f015fdfaf780f9f4f95e06379fac7
7
- data.tar.gz: ffbcc57435de0c6abd6ee51e7d941a77a6b2dcb2c3e2e59f72215dfb5a16ce8651146ffa246e9772ebe88031655025a2e5391f3a86c152161bb0628cc80ae9c7
6
+ metadata.gz: 8619695947f1058e2556cbf49ac134d2dd0dfe60e108a7766844028b21fe0804f18d577f243e7de163f3aff8938c1ea368490f75ae6b58d36ec8d4bd7c147780
7
+ data.tar.gz: 19ccda7d3fd84468fb51e8c665130700fe9847d0927087ac887c53bfc225c2bd99ced5c2a692e66660133cdcae1398cfce156d348c4c7704629135a5a349032f
@@ -0,0 +1,6 @@
1
+ ## 2.0.0
2
+ - Plugins were updated to follow the new shutdown semantic, this mainly allows Logstash to instruct input plugins to terminate gracefully,
3
+ instead of using Thread.raise on the plugins' threads. Ref: https://github.com/elastic/logstash/pull/3895
4
+ - Dependency on logstash-core update to 2.0
5
+ - Update to allow semicolons (or not, e.g. Zabbix 2.0). #6 (davmrtl)
6
+ - Update to prevent Logstash from crashing when the Zabbix server becomes unavailable while the plugin is sending data. #9 (dkanbier)
@@ -0,0 +1,5 @@
1
+ Elasticsearch
2
+ Copyright 2012-2015 Elasticsearch
3
+
4
+ This product includes software developed by The Apache Software
5
+ Foundation (http://www.apache.org/).
@@ -174,8 +174,8 @@ class LogStash::Outputs::Zabbix < LogStash::Outputs::Base
174
174
  return false
175
175
  end
176
176
  # Prune the semicolons, then turn it into an array
177
- info = (data["info"].delete! ';').split()
178
- # ["processed", "0", "Failed", ";", "Total", "1", "seconds", "spent:", "0.000018"]
177
+ info = data["info"].tr(';', '').split()
178
+ # ["processed", "0", "Failed", "1", "Total", "1", "seconds", "spent:", "0.000018"]
179
179
  failed = info[3].to_i
180
180
  total = info[5].to_i
181
181
  if failed == total
@@ -208,7 +208,7 @@ class LogStash::Outputs::Zabbix < LogStash::Outputs::Base
208
208
  # Did the message get received by Zabbix?
209
209
  response_check(event, resp)
210
210
  end
211
- rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
211
+ rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNRESET
212
212
  @logger.error("Connection error. Unable to connect to Zabbix server",
213
213
  :server => @zabbix_server_host,
214
214
  :port => @zabbix_server_port.to_s
@@ -234,7 +234,7 @@ class LogStash::Outputs::Zabbix < LogStash::Outputs::Base
234
234
 
235
235
  public
236
236
  def receive(event)
237
- return unless output?(event)
237
+
238
238
  return unless field_check(event, @zabbix_host)
239
239
  send_to_zabbix(event)
240
240
  end # def event
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-output-zabbix'
3
- s.version = "1.0.0"
3
+ s.version = "2.0.0"
4
4
  s.licenses = ["Apache License (2.0)"]
5
5
  s.summary = "This output sends key/value pairs to a Zabbix server."
6
6
  s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.require_paths = ["lib"]
11
11
 
12
12
  # Files
13
- s.files = `git ls-files`.split($\)
13
+ s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT']
14
14
  # Tests
15
15
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
16
16
 
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" }
19
19
 
20
20
  # Gem dependencies
21
- s.add_runtime_dependency "logstash-core", ">= 1.4.0", "< 2.0.0"
21
+ s.add_runtime_dependency "logstash-core", ">= 2.0.0.beta2", "< 3.0.0"
22
22
  s.add_runtime_dependency "zabbix_protocol"
23
23
  s.add_runtime_dependency "logstash-codec-plain"
24
24
  s.add_development_dependency "logstash-devutils", ">= 0.0.12"
metadata CHANGED
@@ -1,125 +1,118 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-zabbix
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-17 00:00:00.000000000 Z
11
+ date: 2015-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: logstash-core
15
- version_requirements: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: 1.4.0
20
- - - <
21
- - !ruby/object:Gem::Version
22
- version: 2.0.0
23
14
  requirement: !ruby/object:Gem::Requirement
24
15
  requirements:
25
16
  - - '>='
26
17
  - !ruby/object:Gem::Version
27
- version: 1.4.0
18
+ version: 2.0.0.beta2
28
19
  - - <
29
20
  - !ruby/object:Gem::Version
30
- version: 2.0.0
21
+ version: 3.0.0
22
+ name: logstash-core
31
23
  prerelease: false
32
24
  type: :runtime
33
- - !ruby/object:Gem::Dependency
34
- name: zabbix_protocol
35
25
  version_requirements: !ruby/object:Gem::Requirement
36
26
  requirements:
37
27
  - - '>='
38
28
  - !ruby/object:Gem::Version
39
- version: '0'
29
+ version: 2.0.0.beta2
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: 3.0.0
33
+ - !ruby/object:Gem::Dependency
40
34
  requirement: !ruby/object:Gem::Requirement
41
35
  requirements:
42
36
  - - '>='
43
37
  - !ruby/object:Gem::Version
44
38
  version: '0'
39
+ name: zabbix_protocol
45
40
  prerelease: false
46
41
  type: :runtime
47
- - !ruby/object:Gem::Dependency
48
- name: logstash-codec-plain
49
42
  version_requirements: !ruby/object:Gem::Requirement
50
43
  requirements:
51
44
  - - '>='
52
45
  - !ruby/object:Gem::Version
53
46
  version: '0'
47
+ - !ruby/object:Gem::Dependency
54
48
  requirement: !ruby/object:Gem::Requirement
55
49
  requirements:
56
50
  - - '>='
57
51
  - !ruby/object:Gem::Version
58
52
  version: '0'
53
+ name: logstash-codec-plain
59
54
  prerelease: false
60
55
  type: :runtime
61
- - !ruby/object:Gem::Dependency
62
- name: logstash-devutils
63
56
  version_requirements: !ruby/object:Gem::Requirement
64
57
  requirements:
65
58
  - - '>='
66
59
  - !ruby/object:Gem::Version
67
- version: 0.0.12
60
+ version: '0'
61
+ - !ruby/object:Gem::Dependency
68
62
  requirement: !ruby/object:Gem::Requirement
69
63
  requirements:
70
64
  - - '>='
71
65
  - !ruby/object:Gem::Version
72
66
  version: 0.0.12
67
+ name: logstash-devutils
73
68
  prerelease: false
74
69
  type: :development
75
- - !ruby/object:Gem::Dependency
76
- name: logstash-filter-mutate
77
70
  version_requirements: !ruby/object:Gem::Requirement
78
71
  requirements:
79
72
  - - '>='
80
73
  - !ruby/object:Gem::Version
81
- version: '0'
74
+ version: 0.0.12
75
+ - !ruby/object:Gem::Dependency
82
76
  requirement: !ruby/object:Gem::Requirement
83
77
  requirements:
84
78
  - - '>='
85
79
  - !ruby/object:Gem::Version
86
80
  version: '0'
81
+ name: logstash-filter-mutate
87
82
  prerelease: false
88
83
  type: :development
89
- - !ruby/object:Gem::Dependency
90
- name: longshoreman
91
84
  version_requirements: !ruby/object:Gem::Requirement
92
85
  requirements:
93
86
  - - '>='
94
87
  - !ruby/object:Gem::Version
95
88
  version: '0'
89
+ - !ruby/object:Gem::Dependency
96
90
  requirement: !ruby/object:Gem::Requirement
97
91
  requirements:
98
92
  - - '>='
99
93
  - !ruby/object:Gem::Version
100
94
  version: '0'
95
+ name: longshoreman
101
96
  prerelease: false
102
97
  type: :development
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
103
  description: This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program
104
104
  email: info@elastic.co
105
105
  executables: []
106
106
  extensions: []
107
107
  extra_rdoc_files: []
108
108
  files:
109
- - .gitignore
110
109
  - CHANGELOG.md
111
110
  - CONTRIBUTORS
112
111
  - DEVELOPER.md
113
112
  - Gemfile
114
113
  - LICENSE
114
+ - NOTICE.TXT
115
115
  - README.md
116
- - Rakefile
117
- - docker/Dockerfile
118
- - docker/README.md
119
- - docker/build_db.sh
120
- - docker/run.sh
121
- - docker/zabbix.conf.php
122
- - docker/zabbix.sql
123
116
  - lib/logstash/outputs/zabbix.rb
124
117
  - logstash-output-zabbix.gemspec
125
118
  - spec/helpers/zabbix_helper.rb
@@ -146,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
139
  version: '0'
147
140
  requirements: []
148
141
  rubyforge_project:
149
- rubygems_version: 2.1.9
142
+ rubygems_version: 2.4.8
150
143
  signing_key:
151
144
  specification_version: 4
152
145
  summary: This output sends key/value pairs to a Zabbix server.
data/.gitignore DELETED
@@ -1,5 +0,0 @@
1
- *.gem
2
- Gemfile.lock
3
- Gemfile.bak
4
- .bundle
5
- vendor
data/Rakefile DELETED
@@ -1,7 +0,0 @@
1
- @files=[]
2
-
3
- task :default do
4
- system("rake -T")
5
- end
6
-
7
- require "logstash/devutils/rake"
@@ -1,48 +0,0 @@
1
- FROM ubuntu:14.04
2
-
3
- MAINTAINER Aaron Mildenstein <aaron@mildensteins.com>
4
-
5
- RUN apt-get -qq update
6
- RUN DEBIAN_FRONTEND=noninteractive apt-get -yqq install mysql-server
7
- #RUN apt-get -yqq install php5-mysql zabbix-frontend-php
8
- RUN apt-get -yqq install zabbix-server-mysql
9
-
10
- # Change PHP setup
11
- #RUN sed -i -e 's/^post_max_size =.*/post_max_size = 16M/' -e 's/^max_execution_time.*/max_execution_time = 300/' \
12
- # -e 's/^max_input_time.*/max_input_time = 300/' -e 's/;date.timezone.*/date.timezone = America\/Denver/' /etc/php5/apache2/php.ini
13
-
14
- # Setup Apache
15
- #RUN cp /usr/share/doc/zabbix-frontend-php/examples/apache.conf /etc/apache2/conf-available/zabbix.conf
16
- #RUN ln -s /etc/apache2/conf-available/zabbix.conf /etc/apache2/conf-enabled/zabbix.conf
17
- #COPY zabbix.conf.php /etc/zabbix/zabbix.conf.php
18
-
19
- # Set to allow Zabbix to run
20
- RUN sed -i s/START=no/START=yes/g /etc/default/zabbix-server
21
-
22
- # Create this dir and change permissions (the package doesn't, for some reason)
23
- RUN mkdir -p /var/run/zabbix
24
- RUN chown zabbix:zabbix /var/run/zabbix
25
-
26
- # Configure zabbix_server.conf
27
- RUN sed -i -e 's/^# StartPollers=5/StartPollers=1/' \
28
- -e 's/^# StartPollersUnreachable=1/StartPollersUnreachable=0/' \
29
- -e 's/^# StartTrappers=5/StartTrappers=1/' \
30
- -e 's/^# StartPingers=1/StartPingers=0/' \
31
- -e 's/^# StartDiscoverers=1/StartDiscoverers=0/' \
32
- -e 's/^# StartHTTPPollers=1/StartHTTPPollers=0/' \
33
- -e 's/^# StartDBSyncers=4/StartDBSyncers=2/' \
34
- -e 's/^DBUser=zabbix/DBUser=root/' \
35
- -e 's/^# DBSocket=\/tmp\/mysql.sock/DBSocket=\/var\/run\/mysqld\/mysqld.sock/' \
36
- -e 's/^# StartProxyPollers=1/StartProxyPollers=0/' /etc/zabbix/zabbix_server.conf
37
-
38
- # Expose the Ports used by
39
- # * Zabbix services
40
- # * Apache with Zabbix UI (Add port 80 below)
41
-
42
- EXPOSE 10051
43
-
44
- COPY build_db.sh /
45
- COPY run.sh /
46
- COPY zabbix.sql /
47
- RUN ln -s /run.sh /usr/bin/run
48
-
@@ -1,89 +0,0 @@
1
- # Docker Image For Testing This Plugin
2
-
3
- The current image tag is: `latest`
4
-
5
- ## Docker Hub
6
-
7
- The completed image is hosted at https://registry.hub.docker.com/u/untergeek/logstash_output_zabbix_rspec/
8
-
9
- You can manually pull it to your Docker installation by running
10
-
11
- docker pull untergeek/logstash_output_zabbix_rspec:latest
12
-
13
- Learn more about Docker at http://docs.docker.com
14
-
15
- ## How the image was created
16
-
17
- **Prerequisite: Database SQL file creation**
18
-
19
- This image is currently built using a multi-stage process. Because creating
20
- items either requires the API or SQL access, I opted to first build an image
21
- with Apache & PHP so it would have a front-end. After building a successful
22
- Zabbix installation, I created items and dumped the MySQL of the full db into
23
- `zabbix.sql`. The vestiges of this remain commented in the `Dockerfile`.
24
-
25
- ### Building the image
26
-
27
- A new Zabbix Server image had to be built based on the database from the previous
28
- step. The `Dockerfile` is what built this with these steps:
29
-
30
- #### 1. Build the initial image:
31
- * `docker build .`
32
- * Get the docker image id from this step and use in the next step
33
-
34
- #### 2. Create the database on the initial image:
35
- **Run the image from step 1 in an interactive shell:**
36
-
37
- * Run `docker run -i -t IMAGE_ID /bin/bash` from the container host
38
- * Run `/build_db.sh` from the resulting shell.
39
-
40
- **Do NOT exit the shellwhen this is done.**
41
-
42
- #### 3. Commit the changes to a new image:
43
- From another shell on the container host, commit the changes (the populated
44
- database) from the initial image into a _new_ image:
45
-
46
- ```
47
- docker commit \
48
- --author="Aaron Mildenstein <aaron@mildensteins.com>" \
49
- --message="Populated the database" \
50
- IMAGE_ID \
51
- untergeek/logstash_output_zabbix_rspec:latest
52
- ```
53
-
54
- #### 4. Push the image to Docker Hub:
55
-
56
- The image is then pushed to the Docker Hub:
57
-
58
- docker push untergeek/logstash_output_zabbix_rspec:latest
59
-
60
- ### Running the image
61
-
62
- While the RSpec test handles creating a container from this image, and then
63
- deletes it when done, you can manually run the image, if needed:
64
-
65
- docker run -i --name="logstash_zabbix_rspec" -t -d -p 10051:10051 untergeek/logstash_output_zabbix_rspec:latest run
66
-
67
- This command ensures that port 10051 is forwarded from the container to the
68
- container host. The `run` command at the end runs `run.sh` as in this directory.
69
-
70
- #### Manual/interactive container use
71
-
72
- You can also run Zabbix interactively, as though you were on the server:
73
-
74
- docker run -i -t -p 10051:10051 untergeek/logstash_output_zabbix_rspec:latest /bin/bash
75
-
76
- At this point, you'd need to run `service mysql start` and `service zabbix-server start`
77
- to fully initialize the server, but you have the ability to see the logs, or
78
- query the MySQL directly. Exiting the shell will close and delete the container.
79
-
80
- ### Stopping the image
81
-
82
- If you ran a container in detached (`-d`) mode, you can stop the running image
83
- by running:
84
-
85
- docker stop logstash_zabbix_rspec
86
-
87
- This will only work if you included `--name="logstash_zabbix_rspec"` in your
88
- `docker run` command-line. You will otherwise have to run `docker ps` and find
89
- the container id.
@@ -1,29 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Start MySQL
4
- /etc/init.d/mysql start
5
-
6
- # Build the Zabbix Database
7
- /etc/init.d/mysql start
8
-
9
- # Build the Zabbix Database
10
- mysql < /zabbix.sql
11
-
12
- # Flush tables and logs
13
- mysqladmin refresh
14
-
15
- # Stop it again afterwards
16
- /etc/init.d/mysql stop
17
-
18
- ### Instructions for building the original db
19
-
20
- #echo 'create database zabbix character set utf8 collate utf8_bin' > /create.sql
21
- #mysql < /create.sql
22
-
23
- #cd /usr/share/zabbix-server-mysql/
24
- #for file in $(ls *.gz); do gunzip $file; done
25
- #mysql zabbix < schema.sql
26
- #mysql zabbix < images.sql
27
- #mysql zabbix < data.sql
28
-
29
- ### Run Zabbix, create your items, then mysqldump to zabbix.sql
@@ -1,10 +0,0 @@
1
- #!/bin/bash
2
-
3
-
4
- # Start MySQL
5
- /etc/init.d/mysql start
6
-
7
- # Start Zabbix
8
- /etc/init.d/zabbix-server start
9
-
10
- bash
@@ -1,20 +0,0 @@
1
- <?php
2
- // Zabbix GUI configuration file
3
- global $DB;
4
-
5
- $DB['TYPE'] = 'MYSQL';
6
- $DB['SERVER'] = 'localhost';
7
- $DB['PORT'] = '0';
8
- $DB['DATABASE'] = 'zabbix';
9
- $DB['USER'] = 'root';
10
- $DB['PASSWORD'] = '';
11
-
12
- // SCHEMA is relevant only for IBM_DB2 database
13
- $DB['SCHEMA'] = '';
14
-
15
- $ZBX_SERVER = 'localhost';
16
- $ZBX_SERVER_PORT = '10051';
17
- $ZBX_SERVER_NAME = '';
18
-
19
- $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
20
- ?>