VMX-Capture Service Management
VMX-Capture services are controlled via the vmxadmin
command. This was covered earlier in Controlling VMX-Capture using the vmxadmin command , but this section covers the commands which are specific to VMX-Capture management. In particular, we focus on PMUX and Probe controls.
Service Control
The following commands can be used to control VMX-Capture services :
Example Command | Description |
---|---|
vmxadmin vmx status | Outputs the statuses of all processes, including process ID (PID) numbers if that process is running. |
vmxadmin -e fxdemo vmx-pmux stop | Stop all local PMUX in the fxdemo environment |
vmxadmin vmx-pmux start | Start all local PMUX. |
vmxadmin vmx-pmux my-instance status | Show the status of a specific PMUX (with id my-instance). |
vmxadmin vmx-p3 status | Show status of all local p3 instances. |
vmxadmin vmx-p3 TCP_RTT status | Show status of specific (TCP_RTT) p3 instance. |
Probe Control
Probes operate within PMUX processes and so the vmxadmin command syntax for controlling probes differs slightly from the syntax for controlling services. In the examples below, the probes that we are controlling are in a PMUX called capVP:
vmxadmin vmx-pmux capVP probe -args -c start -p adhoc_cap | Start a probe named adhoc_cap (tries to find adhoc_cap.stack.json first then adhoc_cap.capture.config) in the capVP PMUX instance. |
vmxadmin vmx-pmux capVP probe -args -c status | Checks status of all probes in the capVP PMUX instance. |
The status command is particularly useful as it provides the following information:
The time that the probe was added to the PMUX
The decoder library used (
probe.so
will be used for a Stack Probe,packcap_decoder
or a variation of that will be used for a Capture Probe)The configuration file or command line arguments that the probe is using.
Here's an example of these commands used in sequence:
[valentine]$ vmxadmin vmx-pmux status
valentine-vmx-pmux-VP (pid
1695193
) is running...
valentine-vmx-pmux-2VP (pid
1696773
) is running...
valentine-vmx-pmux-capVP (pid
1481145
) is running...
valentine-vmx-pmux-cap2VP (pid
1481404
) is running...
[valentine]$ vmxadmin vmx-pmux capVP probe -args status
doProbe vmx -e
"valentine"
vmx-pmux capVP probe -args status
Starting PMUX capVP
/opt/tsa/bin/libpcap_packet_decoder -p
8220
--max_packet_size_bytes
131072
--max_batch_size
1000
--pcap_buffer_size
100000
-i eth1
PROBE_TYPE none /vmx/install/valentine/server/config/agent/pmux/capVP/.capture.config
status
for
probes
Result:
Array of
1
items:
Index
0
Array of
1
items:
Index
0
Struct of
3
members:
Key: String:
'added_timestamp'
Value: Datetime:
2024.06
.
10
11
:
18
:
10.000000
Key: String:
'decoder'
Value: String:
'/opt/tsa/lib/packcap_decoder_367.so'
Key: String:
'identifier'
Value: String:
'config:name=capVP compression=gzip capture_file_type=pcapns output_dir=/data/capture file_prefix=capVP filter= rotate_period_seconds=10 retention_policy=24h influxdb_dsn=influxdb://vmxadmin:grafstats@localhost:8086/capture influxdb_measurement=pcap '
[valentine]$ vmxadmin vmx-pmux VP probe -args -c status
doProbe vmx -e
"valentine"
vmx-pmux VP probe -args -c status
Starting PMUX VP
/opt/tsa/bin/libpcap_packet_decoder -p
8210
--max_packet_size_bytes
131072
--max_batch_size
1000
--pcap_buffer_size
100000
-i eth1
PROBE_TYPE none /vmx/install/valentine/server/config/agent/pmux/VP/.capture.config
status
for
probes
Result:
Array of
1
items:
Index
0
Array of
2
items:
Index
0
Struct of
3
members:
Key: String:
'added_timestamp'
Value: Datetime:
2024.06
.
10
15
:
16
:
36.000000
Key: String:
'decoder'
Value: String:
'/opt/tsa/lib/probe.so'
Key: String:
'identifier'
Value: String:
'config:name=vmxbenchmarkstatistics filter="len=0" protocols=ethernet stat_collector=vmxbenchmarkstatistics'
Index
1
Struct of
3
members:
Key: String:
'added_timestamp'
Value: Datetime:
2024.06
.
10
15
:
16
:
38.000000
Key: String:
'decoder'
Value: String:
'/opt/tsa/lib/probe.so'
Key: String:
'identifier'
Value: String:
'json:/vmx/install/ps2testenv/server/config/agent/pmux/VP/Port1_UDP_ingress.stack.json'
Monitoring VMX-Capture PMUX health using the XMLRPC service
The XMLRPC is the interface for PMUX stats. These are useful for troubleshooting individual probe issues.
VMX-Explorer also uses XMLRPC calls to populate the System Health dashboards in VMX-Explorer.
The following commands are examples of how you can interrogate the XMLRPC service to find out information about the probes running in each PMUX:
Example Command | Description |
---|---|
vmxadmin vmx xmlrpc | Find all xmlxprc ports for all instance types. These are defined in the env-instances.sh file for each instance. XMLRPC ports just needs to be unique on the server; this port is used for process monitoring. |
vmxadmin vmx xmlrpc -args getStats | Get all stats available for VMX-Capture instances that support XMLRPC - useful for an overview of a system. The output of this command is suitable to feed into telegraf. |
vmxadmin vmx-pmux MYPMUX xmlrpc -args callMethod system.listMethods | Lists the different XMLRPC methods that you can use to interact with this PMUX (output in JSON format). |
vmxadmin vmx-pmux MYPMUX xmlrpc -args callMethod listDecoders | Lists the decoders running within this PMUX. You will be provided with the date that the probe was added to the PMUX, the decoder used (probe.so for a Stack Decoder), and the configuration file or command line arguments that the probe is using. |
vmxadmin vmx-pmux MYPMUX xmlrpc -args callMethod getStatistics | Provides CPU and packet count statistics (in JSON format) for all of the probes within the PMUX. |
vmxadmin vmx-pmux MYPMUX xmlrpc -args getStats | Provides CPU and packet count statistics (in CSV format) for all of the probes within the PMUX. This provides a slightly easier overview (for a human reader) compared to the JSON format. |