nagios_webbed_log 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|