nagios_webbed_log 0.3.1 → 0.4.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.
- data/VERSION +1 -1
- data/lib/nagios_logger.rb +0 -11
- data/lib/nagios_webbed_log.rb +19 -0
- data/nagios_webbed_log.gemspec +1 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/lib/nagios_logger.rb
CHANGED
@@ -1,16 +1,5 @@
|
|
1
1
|
#coding: UTF-8
|
2
2
|
module NagiosLogger
|
3
|
-
=begin
|
4
|
-
CPU on remaccess Рабочий сервер
|
5
|
-
CPU on ra Тестовый сервер
|
6
|
-
HTTP УРМ
|
7
|
-
HTTP-work СОД
|
8
|
-
HTTP-lesson Тестовый СОД
|
9
|
-
Соответствие уровней оповещений в логе выводимым в таблице:
|
10
|
-
|
11
|
-
CRITICAL Ошибка
|
12
|
-
WARNING Предупреждение
|
13
|
-
=end
|
14
3
|
SERVICE_LUT = {
|
15
4
|
"CPU on ra" => "Тестовый сервер",
|
16
5
|
"CPU on remaccess" => "Рабочий сервер",
|
data/lib/nagios_webbed_log.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'sinatra/base'
|
3
|
+
require 'csv'
|
3
4
|
require File.expand_path(File.join(File.dirname(__FILE__), 'nagios_logger'))
|
4
5
|
include NagiosLogger
|
5
6
|
class NagiosWebbedLog < Sinatra::Base
|
@@ -7,6 +8,12 @@ class NagiosWebbedLog < Sinatra::Base
|
|
7
8
|
# This can display a nice status message.
|
8
9
|
#
|
9
10
|
get "/:year/:month/:day.csv" do
|
11
|
+
get_params
|
12
|
+
load_dates
|
13
|
+
@events = load_events
|
14
|
+
response.headers['content_type'] = "application/csv"
|
15
|
+
attachment("failures-#{@year}-#{@month}-#{@day}.csv")
|
16
|
+
response.write to_csv(@events)
|
10
17
|
end
|
11
18
|
|
12
19
|
get "/:year/:month/:day" do
|
@@ -79,4 +86,16 @@ class NagiosWebbedLog < Sinatra::Base
|
|
79
86
|
@days = @names_list.map{|n| n.split("-") }.map{|n| n[2] }.uniq
|
80
87
|
@months = @names_list.map{|n| n.split("-") }.map{|n| n[1] }.uniq
|
81
88
|
end
|
89
|
+
def to_csv(data)
|
90
|
+
levs = %w(OK WARNING CRITICAL UNKNOWN)
|
91
|
+
out = CSV.generate( {:col_sep => ";"}) do |csv|
|
92
|
+
#csv << hdr
|
93
|
+
data.each do |evt|
|
94
|
+
lvl = evt.map{|it| levs.index(it[:level]) || 3 }.max
|
95
|
+
ll = evt.detect{|it| not levs.include?(it[:level]) }
|
96
|
+
csv << [evt.first[:stamp].strftime("%Y-%m-%d"), evt.first[:stamp].strftime("%H:%M:%S"), evt.last[:stamp] - evt.first[:stamp], evt.first[:service], NagiosLogger::LEVEL_LUT[levs[lvl]]]
|
97
|
+
end
|
98
|
+
end
|
99
|
+
out.force_encoding('UTF-8').encode('Windows-1251')
|
100
|
+
end
|
82
101
|
end
|
data/nagios_webbed_log.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nagios_webbed_log
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -341,7 +341,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
341
341
|
version: '0'
|
342
342
|
segments:
|
343
343
|
- 0
|
344
|
-
hash:
|
344
|
+
hash: 513454063
|
345
345
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
346
346
|
none: false
|
347
347
|
requirements:
|