diff options
Diffstat (limited to 'docs/release/configguide/clovisor_config_guide.rst')
-rw-r--r-- | docs/release/configguide/clovisor_config_guide.rst | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/docs/release/configguide/clovisor_config_guide.rst b/docs/release/configguide/clovisor_config_guide.rst index 9b5f4a3..e486e3e 100644 --- a/docs/release/configguide/clovisor_config_guide.rst +++ b/docs/release/configguide/clovisor_config_guide.rst @@ -17,10 +17,10 @@ No Configuration ================ If redis server isn't running as service name **redis** in namespace -**clover-system** or there isn't any configuration related to Clovisor in that +**clovisor** or there isn't any configuration related to Clovisor in that redis service, then Clovisor would monitor all pods under the **default** namespace. The traces would be sent to **jaeger-collector** service under the -**clover-system** namespace +**clovisor** namespace Using redis-cli =============== @@ -29,7 +29,7 @@ Install ``redis-cli`` on the client machine, and look up redis IP address: .. code-block:: bash - $ kubectl get services -n clover-system + $ kubectl get services -n clovisor which one may get something like the following: @@ -51,13 +51,13 @@ plugin): and one can connect to redis via:: - redis-cli -h 10.244.0.187 -p 6379 + kubectl exec -n clovisor -it redis redis-cli Jaeger Collector Configuration ============================== Clovisor allows user to specify the Jaeger service for which Clovisor would send -the network traces to. This is configured via setting the values for +the network traces to, by default it is Jaegar service running in **clovisor** namespace. To change, user can configure via setting the values for keys **clovisor_jaeger_collector** and **clovisor_jaeger_agent**:: redis> SET clovisor_jaeger_collector "jaeger-collector.istio-system:14268" @@ -154,3 +154,26 @@ applied:: the command above will cause Clovisor to trace packets going out of pods under monitoring which have name starting with the string "proxy" that match destination TCP port 3456 + +Clovisor in Hunter release supports the ability to run user-defined protocol analyzer as a plugin library --- and the corresponding traces will be sent to Jaeger just like all the default Clovisor network tracing. User needs to implement the following interface (only golang is supported at this time):: + + type Parser interface { + Parse(session_key string, is_req bool, + data []byte)([]byte, map[string]string) + } + +and compile it with the following command:: + + go build --buildmode=plugin -o <something>.so <something>.go + +then, for Hunter, one needs to push the .so to each Clovisor instance:: + + kubectl cp <something>.so clovisor/clovisor-bnh2v:/proto/<something>.so + +do that for each Clovisor pods, and afterward, configure via:: + + redis> HSET clovisor_proto_cfg <protocol> "/proto/<something>.so" + (integer) 1 + redis> PUBLISH clovisor_proto_plugin_cfg_chan <protocol> + (integer) 6 + |