Commit 1b31d6c445dbf7a3c2ab9ee455313c6fcec128f1
1 parent
1b19e6ce
Added new threshold modes
Showing
32 changed files
with
82 additions
and
54 deletions
CMakeLists.txt
100755 → 100644
check_csgo/README.md
100755 → 100644
check_csgo/auxiliar.cpp
100755 → 100644
check_csgo/auxiliar.h
100755 → 100644
check_csgo/check_csgo.cpp
100755 → 100644
check_csgo/check_csgo.h
100755 → 100644
check_memfree/auxiliar.cpp
100755 → 100644
check_memfree/auxiliar.h
100755 → 100644
check_memfree/check_memfree.cpp
100755 → 100644
check_memfree/check_memfree.h
100755 → 100644
check_memfree/range.h
100755 → 100644
check_memfree_freebsd/auxiliar.cpp
100755 → 100644
check_memfree_freebsd/auxiliar.h
100755 → 100644
check_memfree_freebsd/check_memfree.h
100755 → 100644
check_memfree_freebsd/range.h
100755 → 100644
check_openvpn/README.md
100755 → 100644
check_openvpn/auxiliar.cpp
100755 → 100644
check_openvpn/auxiliar.h
100755 → 100644
check_openvpn/check_openvpn.cpp
100755 → 100644
check_openvpn/check_openvpn.h
100755 → 100644
check_smart/auxiliar.cpp
100755 → 100644
check_smart/auxiliar.h
100755 → 100644
check_smart/check_smart.cpp
@@ -49,62 +49,19 @@ int checkDriveType(const char* disk) { | @@ -49,62 +49,19 @@ int checkDriveType(const char* disk) { | ||
49 | 49 | ||
50 | map<int,SMARTAttr> prepareAttrMap(int driveType) { | 50 | map<int,SMARTAttr> prepareAttrMap(int driveType) { |
51 | map<int,SMARTAttr> map; | 51 | map<int,SMARTAttr> map; |
52 | - | ||
53 | - SMARTAttr realloc; | ||
54 | - realloc.name = "Reallocated_Sector_Ct"; | ||
55 | - realloc.value = -1; | ||
56 | - realloc.severity = WARN; | ||
57 | - realloc.optional = false; | ||
58 | - map[REALLOC_SEC_COUNT_ID] = realloc; | ||
59 | - | ||
60 | - SMARTAttr pending; | ||
61 | - SMARTAttr off_uncorrect; | ||
62 | - SMARTAttr wear; | ||
63 | - SMARTAttr wearout; | ||
64 | - SMARTAttr badblocks; | ||
65 | - SMARTAttr rep_uncorrect; | 52 | + map[REALLOC_SEC_COUNT_ID] = reallocated; |
53 | + map[REP_UNCORRECT_ID] = rep_uncorrect; | ||
66 | 54 | ||
67 | switch(driveType) { | 55 | switch(driveType) { |
68 | case HDD: | 56 | case HDD: |
69 | - pending.name = "Current_Pending_Sector"; | ||
70 | - pending.value = -1; | ||
71 | - pending.severity = CRIT; | ||
72 | - pending.optional = false; | ||
73 | map[CURRENT_PENDING_SEC_ID] = pending; | 57 | map[CURRENT_PENDING_SEC_ID] = pending; |
74 | - | ||
75 | - off_uncorrect.name = "Offline_Uncorrectable"; | ||
76 | - off_uncorrect.value = -1; | ||
77 | - off_uncorrect.severity = CRIT; | ||
78 | - off_uncorrect.optional = false; | ||
79 | map[OFFLINE_UNCORRECT_ID] = off_uncorrect; | 58 | map[OFFLINE_UNCORRECT_ID] = off_uncorrect; |
80 | - | ||
81 | - break; | 59 | + break; |
82 | case SSD: | 60 | case SSD: |
83 | - wear.name = "Wear_Leveling_Count"; | ||
84 | - wear.value = -1; | ||
85 | - wear.severity = WARN; | ||
86 | - wear.optional = true; | ||
87 | map[WEAR_COUNT_ID] = wear; | 61 | map[WEAR_COUNT_ID] = wear; |
88 | - | ||
89 | - wearout.name = "Media_Wearout_Indicator"; | ||
90 | - wearout.value = -1; | ||
91 | - wearout.severity = WARN; | ||
92 | - wearout.optional = true; | ||
93 | - map[WEAR_COUNT_ID] = wearout; | ||
94 | - | ||
95 | - badblocks.name = "Runtime_Bad_Block"; | ||
96 | - badblocks.value = -1; | ||
97 | - badblocks.severity = CRIT; | ||
98 | - badblocks.optional = false; | ||
99 | - map[RUNTIME_BAD_BLOCKS_IDD] = badblocks; | ||
100 | - | ||
101 | - rep_uncorrect.name = "Reported_Uncorrect"; | ||
102 | - rep_uncorrect.value = -1; | ||
103 | - rep_uncorrect.severity = CRIT; | ||
104 | - rep_uncorrect.optional = false; | ||
105 | - map[REP_UNCORRECT_ID] = rep_uncorrect; | ||
106 | - | ||
107 | - break; | 62 | + map[MEDIA_WEAROUT_ID] = wearout; |
63 | + map[RUNTIME_BAD_BLOCKS_ID] = badblocks; | ||
64 | + break; | ||
108 | } | 65 | } |
109 | return map; | 66 | return map; |
110 | } | 67 | } |
@@ -148,10 +105,15 @@ int evalStatus(const char* disk, int driveType, string *status) { | @@ -148,10 +105,15 @@ int evalStatus(const char* disk, int driveType, string *status) { | ||
148 | *status = string(disk) + " status UNKNOWN"; | 105 | *status = string(disk) + " status UNKNOWN"; |
149 | return UNKN; | 106 | return UNKN; |
150 | } | 107 | } |
108 | + | ||
151 | int veredict = 0; | 109 | int veredict = 0; |
152 | - if(attr.value) { | ||
153 | - veredict = attr.severity; | 110 | + if(attr.value > attr.threshold_warn) { |
111 | + veredict = WARN; | ||
154 | } | 112 | } |
113 | + if(attr.threshold_crit != -1 && attr.value > attr.threshold_crit) { | ||
114 | + veredict = CRIT; | ||
115 | + } | ||
116 | + | ||
155 | switch(veredict) { | 117 | switch(veredict) { |
156 | case OK: | 118 | case OK: |
157 | break; | 119 | break; |
check_smart/check_smart.h
100755 → 100644
@@ -31,8 +31,8 @@ | @@ -31,8 +31,8 @@ | ||
31 | #define CURRENT_PENDING_SEC_ID 197 | 31 | #define CURRENT_PENDING_SEC_ID 197 |
32 | #define OFFLINE_UNCORRECT_ID 198 | 32 | #define OFFLINE_UNCORRECT_ID 198 |
33 | #define WEAR_COUNT_ID 177 | 33 | #define WEAR_COUNT_ID 177 |
34 | -#define MEDIA_WEAROUT_INDICATOR 233 | ||
35 | -#define RUNTIME_BAD_BLOCKS_IDD 183 | 34 | +#define MEDIA_WEAROUT_ID 233 |
35 | +#define RUNTIME_BAD_BLOCKS_ID 183 | ||
36 | #define REP_UNCORRECT_ID 187 | 36 | #define REP_UNCORRECT_ID 187 |
37 | 37 | ||
38 | #define HDD 0 | 38 | #define HDD 0 |
@@ -42,13 +42,79 @@ using namespace std; | @@ -42,13 +42,79 @@ using namespace std; | ||
42 | 42 | ||
43 | struct SMARTAttr | 43 | struct SMARTAttr |
44 | { | 44 | { |
45 | + int id; | ||
45 | string name; | 46 | string name; |
46 | int value; | 47 | int value; |
47 | - int severity; | 48 | + int threshold_warn; |
49 | + int threshold_crit; | ||
48 | bool optional; | 50 | bool optional; |
49 | }; typedef struct SMARTAttr SMARTAttr; | 51 | }; typedef struct SMARTAttr SMARTAttr; |
50 | 52 | ||
51 | 53 | ||
54 | +// Attribute definitions | ||
55 | +SMARTAttr reallocated = { | ||
56 | + .id = REALLOC_SEC_COUNT_ID, | ||
57 | + .name = "Reallocated_Sector_Ct", | ||
58 | + .value = -1, | ||
59 | + .threshold_warn = 0, | ||
60 | + .threshold_crit = -1, | ||
61 | + .optional = false, | ||
62 | +}; | ||
63 | + | ||
64 | +SMARTAttr pending = { | ||
65 | + .id = CURRENT_PENDING_SEC_ID, | ||
66 | + .name = "Current_Pending_Sector", | ||
67 | + .value = -1, | ||
68 | + .threshold_warn = 0, | ||
69 | + .threshold_crit = -1, | ||
70 | + .optional = false, | ||
71 | +}; | ||
72 | + | ||
73 | +SMARTAttr off_uncorrect = { | ||
74 | + .id = OFFLINE_UNCORRECT_ID, | ||
75 | + .name = "Offline_Uncorrectable", | ||
76 | + .value = -1, | ||
77 | + .threshold_warn = 0, | ||
78 | + .threshold_crit = 0, | ||
79 | + .optional = false, | ||
80 | +}; | ||
81 | + | ||
82 | +SMARTAttr wear = { | ||
83 | + .id = WEAR_COUNT_ID, | ||
84 | + .name = "Wear_Leveling_Count", | ||
85 | + .value = -1, | ||
86 | + .threshold_warn = 80, | ||
87 | + .threshold_crit = 90, | ||
88 | + .optional = true, | ||
89 | +}; | ||
90 | + | ||
91 | +SMARTAttr wearout = { | ||
92 | + .id = MEDIA_WEAROUT_ID, | ||
93 | + .name = "Media_Wearout_Indicator", | ||
94 | + .value = -1, | ||
95 | + .threshold_warn = 80, | ||
96 | + .threshold_crit = 90, | ||
97 | + .optional = true, | ||
98 | +}; | ||
99 | + | ||
100 | +SMARTAttr badblocks = { | ||
101 | + .id = RUNTIME_BAD_BLOCKS_ID, | ||
102 | + .name = "Runtime_Bad_Block", | ||
103 | + .value = -1, | ||
104 | + .threshold_warn = 0, | ||
105 | + .threshold_crit = 0, | ||
106 | + .optional = false, | ||
107 | +}; | ||
108 | + | ||
109 | +SMARTAttr rep_uncorrect = { | ||
110 | + .id = REP_UNCORRECT_ID, | ||
111 | + .name = "Reported_Uncorrect", | ||
112 | + .value = -1, | ||
113 | + .threshold_warn = 0, | ||
114 | + .threshold_crit = 0, | ||
115 | + .optional = false, | ||
116 | +}; | ||
117 | + | ||
52 | map<int,SMARTAttr> prepareAttrMap(int driveType); | 118 | map<int,SMARTAttr> prepareAttrMap(int driveType); |
53 | int getSmartAttrValue(string line); | 119 | int getSmartAttrValue(string line); |
54 | int getSmartAttrID(string line); | 120 | int getSmartAttrID(string line); |
check_tftp/auxiliar.cpp
100755 → 100644
check_tftp/auxiliar.h
100755 → 100644
check_tftp/check_tftp.h
100755 → 100644
check_upnp/README.md
100755 → 100644
check_upnp/auxiliar.cpp
100755 → 100644
check_upnp/auxiliar.h
100755 → 100644
check_upnp/check_upnp.cpp
100755 → 100644
check_upnp/check_upnp.h
100755 → 100644