11
11
12
12
const std::string docker::DOCKER_SOCKET_FILE = " /var/run/docker.sock" ;
13
13
14
- docker::docker (const std::string& url,
14
+ docker::docker (std::string url,
15
15
const std::string& path,
16
16
const std::string& http_version,
17
17
int timeout_ms,
18
18
bool is_captured,
19
19
bool verbose,
20
20
event_filter_ptr_t event_filter): m_id(" docker" ),
21
21
#ifdef HAS_CAPTURE
22
- m_url (!url.empty() ? url : std::string(scap_get_host_root()) + DOCKER_SOCKET_FILE),
23
22
m_collector (false ),
24
23
#endif // HAS_CAPTURE
25
24
m_timeout_ms (timeout_ms),
@@ -33,6 +32,46 @@ docker::docker(const std::string& url,
33
32
m_image_events{" delete" , " import" , " pull" , " push" , " tag" , " untag" },
34
33
m_volume_events{" create" , " mount" , " unmount" , " destroy" },
35
34
m_network_events{" create" , " connect" , " disconnect" , " destroy" },
35
+ m_severity_map
36
+ {
37
+ // container
38
+ { " attach" , sinsp_logger::SEV_EVT_INFORMATION },
39
+ { " commit" , sinsp_logger::SEV_EVT_INFORMATION },
40
+ { " copy" , sinsp_logger::SEV_EVT_INFORMATION },
41
+ { " create" , sinsp_logger::SEV_EVT_INFORMATION },
42
+ { " destroy" , sinsp_logger::SEV_EVT_WARNING },
43
+ { " die" , sinsp_logger::SEV_EVT_WARNING },
44
+ { " exec_create" , sinsp_logger::SEV_EVT_INFORMATION },
45
+ { " exec_start" , sinsp_logger::SEV_EVT_INFORMATION },
46
+ { " export" , sinsp_logger::SEV_EVT_INFORMATION },
47
+ { " kill" , sinsp_logger::SEV_EVT_WARNING },
48
+ { " oom" , sinsp_logger::SEV_EVT_WARNING },
49
+ { " pause" , sinsp_logger::SEV_EVT_INFORMATION },
50
+ { " rename" , sinsp_logger::SEV_EVT_INFORMATION },
51
+ { " resize" , sinsp_logger::SEV_EVT_INFORMATION },
52
+ { " restart" , sinsp_logger::SEV_EVT_WARNING },
53
+ { " start" , sinsp_logger::SEV_EVT_INFORMATION },
54
+ { " stop" , sinsp_logger::SEV_EVT_INFORMATION },
55
+ { " top" , sinsp_logger::SEV_EVT_INFORMATION },
56
+ { " unpause" , sinsp_logger::SEV_EVT_INFORMATION },
57
+ { " update" , sinsp_logger::SEV_EVT_INFORMATION },
58
+
59
+ // image
60
+ { " delete" , sinsp_logger::SEV_EVT_INFORMATION },
61
+ { " import" , sinsp_logger::SEV_EVT_INFORMATION },
62
+ { " pull" , sinsp_logger::SEV_EVT_INFORMATION },
63
+ { " push" , sinsp_logger::SEV_EVT_INFORMATION },
64
+ { " tag" , sinsp_logger::SEV_EVT_INFORMATION },
65
+ { " untag" , sinsp_logger::SEV_EVT_INFORMATION },
66
+
67
+ // volume
68
+ { " mount" , sinsp_logger::SEV_EVT_INFORMATION },
69
+ { " unmount" , sinsp_logger::SEV_EVT_INFORMATION },
70
+
71
+ // network
72
+ { " connect" , sinsp_logger::SEV_EVT_INFORMATION },
73
+ { " disconnect" , sinsp_logger::SEV_EVT_INFORMATION }
74
+ },
36
75
m_name_translation
37
76
{
38
77
// Container
@@ -78,54 +117,19 @@ docker::docker(const std::string& url,
78
117
// { "destroy" "Destroyed" } duplicate
79
118
}
80
119
{
81
- #ifdef HAS_CAPTURE
82
120
g_logger.log (std::string (" Creating Docker object for " +
83
- (m_url .empty () ? std::string (" capture replay" ) : m_url )),
121
+ (url .empty () ? std::string (" capture replay" ) : url )),
84
122
sinsp_logger::SEV_DEBUG);
85
-
86
- m_event_http = std::make_shared<handler_t >(*this , " events" , m_url, path, http_version, timeout_ms);
123
+ #ifdef HAS_CAPTURE
124
+ if (url.empty ())
125
+ {
126
+ url = std::string (" file://" ).append (scap_get_host_root ()).append (DOCKER_SOCKET_FILE);
127
+ }
128
+ m_event_http = std::make_shared<handler_t >(*this , " docker" , url, path, http_version, timeout_ms);
87
129
m_event_http->set_json_callback (&docker::set_event_json);
88
130
m_event_http->set_json_end (" }\n " );
89
131
m_collector.add (m_event_http);
90
132
send_data_request ();
91
-
92
- // container
93
- m_severity_map[" attach" ] = sinsp_logger::SEV_EVT_INFORMATION;
94
- m_severity_map[" commit" ] = sinsp_logger::SEV_EVT_INFORMATION;
95
- m_severity_map[" copy" ] = sinsp_logger::SEV_EVT_INFORMATION;
96
- m_severity_map[" create" ] = sinsp_logger::SEV_EVT_INFORMATION;
97
- m_severity_map[" destroy" ] = sinsp_logger::SEV_EVT_WARNING;
98
- m_severity_map[" die" ] = sinsp_logger::SEV_EVT_WARNING;
99
- m_severity_map[" exec_create" ] = sinsp_logger::SEV_EVT_INFORMATION;
100
- m_severity_map[" exec_start" ] = sinsp_logger::SEV_EVT_INFORMATION;
101
- m_severity_map[" export" ] = sinsp_logger::SEV_EVT_INFORMATION;
102
- m_severity_map[" kill" ] = sinsp_logger::SEV_EVT_WARNING;
103
- m_severity_map[" oom" ] = sinsp_logger::SEV_EVT_WARNING;
104
- m_severity_map[" pause" ] = sinsp_logger::SEV_EVT_INFORMATION;
105
- m_severity_map[" rename" ] = sinsp_logger::SEV_EVT_INFORMATION;
106
- m_severity_map[" resize" ] = sinsp_logger::SEV_EVT_INFORMATION;
107
- m_severity_map[" restart" ] = sinsp_logger::SEV_EVT_WARNING;
108
- m_severity_map[" start" ] = sinsp_logger::SEV_EVT_INFORMATION;
109
- m_severity_map[" stop" ] = sinsp_logger::SEV_EVT_INFORMATION;
110
- m_severity_map[" top" ] = sinsp_logger::SEV_EVT_INFORMATION;
111
- m_severity_map[" unpause" ] = sinsp_logger::SEV_EVT_INFORMATION;
112
- m_severity_map[" update" ] = sinsp_logger::SEV_EVT_INFORMATION;
113
-
114
- // image
115
- m_severity_map[" delete" ] = sinsp_logger::SEV_EVT_INFORMATION;
116
- m_severity_map[" import" ] = sinsp_logger::SEV_EVT_INFORMATION;
117
- m_severity_map[" pull" ] = sinsp_logger::SEV_EVT_INFORMATION;
118
- m_severity_map[" push" ] = sinsp_logger::SEV_EVT_INFORMATION;
119
- m_severity_map[" tag" ] = sinsp_logger::SEV_EVT_INFORMATION;
120
- m_severity_map[" untag" ] = sinsp_logger::SEV_EVT_INFORMATION;
121
-
122
- // volume
123
- m_severity_map[" mount" ] = sinsp_logger::SEV_EVT_INFORMATION;
124
- m_severity_map[" unmount" ] = sinsp_logger::SEV_EVT_INFORMATION;
125
-
126
- // network
127
- m_severity_map[" connect" ] = sinsp_logger::SEV_EVT_INFORMATION;
128
- m_severity_map[" disconnect" ] = sinsp_logger::SEV_EVT_INFORMATION;
129
133
#endif
130
134
}
131
135
@@ -389,4 +393,23 @@ void docker::handle_event(Json::Value&& root)
389
393
}
390
394
}
391
395
396
+ std::string docker::get_socket_file ()
397
+ {
398
+ string sock_file = scap_get_host_root ();
399
+ std::string::size_type len = sock_file.length ();
400
+ if (len && sock_file[len - 1 ] == ' /' )
401
+ {
402
+ if ((len - 1 ) > 0 )
403
+ {
404
+ sock_file = sock_file.substr (0 , len - 1 );
405
+ }
406
+ else
407
+ {
408
+ sock_file.clear ();
409
+ }
410
+ }
411
+ sock_file.append (DOCKER_SOCKET_FILE);
412
+ return sock_file;
413
+ }
414
+
392
415
#endif // __linux__
0 commit comments