Manual Offline Push PCAP

Prev Next

Generally push gets run in realtime, filtering, splitting and pushing data once it has been captured. Pushing historically captured data can be quite useful for many reasons

  • push_pcap.lua configuration file has changed

  • Testing and debugging

The system supports an “offline push” the steps are shown below

Step 1) Disable any realtime push

Temporarily disable any realtime push that is currently running. Usually this is done via the GUI on the Analytics Schedule page by disabling the push for all days.

Example shown below:

Step 2) Confirm push is not running

Confirm no push is actively by running the below on the bash prompt

ps aux | grep push_pcap

The expected output when no push pcap is running is shown below

fmadio@fmadio200v4-636:~$ ps aux | grep push_pcap
49628 fmadio   grep -s push_pcap
fmadio@fmadio200v4-636:~$

Step 3) Find the full capture name to process

Find the full capture name to process using FMADIOCLI Example command is shown below

fmadiocli "show capture list"

Example output shown below

fmadio@fmadio200v4-636:~$ fmadiocli  "show capture list"
fmad fmadlua Oct 18 2024 (/opt/fmadio/bin/fmadiolua --nocal /opt/fmadio/bin/fmadiocli show capture list )
Disable cycle calibration
[Wed Dec 25 13:23:06 2024] CmdLine [show capture list]
[Wed Dec 25 13:23:06 2024] Cmd [show capture list]
[Wed Dec 25 13:23:06 2024] Showing captures
[Wed Dec 25 13:23:06 2024] [asdf_20241217_1914                                                              ]      135,375,880,192 B (Tue . 23:59:59 . 17-12-2024)
[Wed Dec 25 13:23:06 2024] [asdf_20241217_1331                                                              ]      789,110,849,536 B (Tue . 16:58:10 . 17-12-2024)
[Wed Dec 25 13:23:06 2024] [wan0_20241217_1319                                                              ]       49,860,837,376 B (Tue . 04:15:29 . 17-12-2024)
[Wed Dec 25 13:23:06 2024] [asdf_20241216_1505                                                              ]       96,025,968,640 B (Mon . 15:05:53 . 16-12-2024)
[Wed Dec 25 13:23:06 2024] [asdf_20241216_1503                                                              ]       96,025,968,640 B (Mon . 15:03:43 . 16-12-2024)
[Wed Dec 25 13:23:06 2024] [asdf_20241216_1444                                                              ]       48,018,489,344 B (Mon . 14:45:34 . 16-12-2024)
[Wed Dec 25 13:23:06 2024] [asdf_20241122_2211_47                                                           ]      636,793,651,200 B (Thu . 07:31:47 . 01-01-1970)
done 0.090724Sec 0.001512Min
fmadio@fmadio200v4-636:~$

In this example we are using the wan0_20241217_1319 capture file.

Step 4) Run the offline push

Offline push is specified by manually running the push_pcap.lua script directly with the —offline <capture name> command line argument.

  • <capture name> is the full capture name found in step 2 above

sudo /opt/fmadio/analytics/push_pcap.lua --offline <capture name>

Example output shown below

fmadio@fmadio100v2-228U:~$ sudo /opt/fmadio/analytics/push_pcap.lua  --offline teleco_20241218_1922

fmad fmadlua Dec 10 2024 (/opt/fmadio/bin/fmadiolua /opt/fmadio/analytics/push_pcap.lua --offline teleco_20241218_1922 )
Config name [push_pcap]
Wed Dec 25 13:27:05 2024|{"module":"push_pcap","subsystem":"event","event_type":"config","timestamp":1735104425,"ver":"10403","instance":"push_pcap"}
Offline TSStart {"Id":                  1396,"Name":                    "teleco_20241218_1922","StreamByte":    110280835072,"StreamByteStr":   "102GB","StreamBytePct":        0.981114,"PktCnt":              112632941,"PktByte":            108198091703,"TSBeginNS":               1696597672960768794,"TSBeginLocal":     "2023-10-06 21:07:52.960.768.794","TSBeginUTC":         "2023-10-06 13:07:52.960.768.794 UTC","TSEndNS":                1696597683174550272,"TSEndLocal":       "2023-10-06 21:08:03.174.550.272","TSEndUTC":           "2023-10-06 13:08:03.174.550.272 UTC","TSDurationNS":   10213781478,"PktAvgBps":                84746744923.849060,"PktAvgPps":                 11027545.894007,"PctComp":               0.000,"PctInv":                 0.000,"PctCap":                 0.000,"PctCache":               0.000,"PctDisk":                0.000,"PctDrop":                0.000,"zero":              0}
Push Config File [/opt/fmadio/etc/push_pcap.lua]
OpenCtrl [/opt/fmadio/status/analytics] (fSysAnalytics_t*) Length 1048576B
KillAll [push_pcap] StreamUID[nil] Search[push_pcap]
Cmd[sudo /opt/fmadio/bin/pipe_fwd --null --disable-cyclecal --ring-reset --ring /opt/fmadio/queue/pcap_HTTP]
cycle calibration disabled
RING reset
RING file [/opt/fmadio/queue/pcap_HTTP]
RING[/opt/fmadio/queue/pcap_HTTP                       ] Size missmatch 0 12595200
RING[/opt/fmadio/queue/pcap_HTTP                       ] Size   : 12595200 16777216
RING[/opt/fmadio/queue/pcap_HTTP                       ] Version:        0      100
RING[/opt/fmadio/queue/pcap_HTTP                       ] version wrong force reset
RING[/opt/fmadio/queue/pcap_HTTP                       ] Put:0 0 0x7f007b138000
RING[/opt/fmadio/queue/pcap_HTTP                       ] Get:0 0 0x7f007b139000
Cmd[sudo /bin/chmod uga+rw /opt/fmadio/queue/pcap_HTTP]
Cmd[mkdir -p /mnt/store0/pushpcap/]
sudo /opt/fmadio/bin/stream_cat --uid push_pcap_Z_1735104425791180032 teleco_20241218_1922  --decap --nop-truncate --ring-eof    --ring /opt/fmadio/queue/pcap_HTTP  --ring-filter-bpf /opt/fmadio/queue/pcap_HTTP "tcp and port 80"  --ring-filter-frame /opt/fmadio/queue/pcap_HTTP ""  > /mnt/store0/log/push_pcap_stream_20241225_1327 2>&1 &
Cmd[sudo /opt/fmadio/bin/stream_cat --uid push_pcap_Z_1735104425791180032 teleco_20241218_1922  --decap --nop-truncate --ring-eof    --ring /opt/fmadio/queue/pcap_HTTP  --ring-filter-bpf /opt/fmadio/queue/pcap_HTTP "tcp and port 80"  --ring-filter-frame /opt/fmadio/queue/pcap_HTTP ""  > /mnt/store0/log/push_pcap_stream_20241225_1327 2>&1 &]
Cmd[rm /mnt/store0/log/push_pcap_stream.cur]
Cmd[ln -s /mnt/store0/log/push_pcap_stream_20241225_1327 /mnt/store0/log/push_pcap_stream.cur]
/opt/fmadio/bin/pcap_split --uid push_pcap_Z_1735104425791180032_HTTP  --ring /opt/fmadio/queue/pcap_HTTP  --split-time 60000000000 --filename-tstr-HHMMSS --roll-period 3600000000000   --script-close "/opt/fmadio/analytics/push_pcap_close.lua"  -o /mnt/store0/pushpcap/  > /mnt/store0/log/push_pcap_HTTP_20241225_1327 2>&1 &
Cmd[/opt/fmadio/bin/pcap_split --uid push_pcap_Z_1735104425791180032_HTTP  --ring /opt/fmadio/queue/pcap_HTTP  --split-time 60000000000 --filename-tstr-HHMMSS --roll-period 3600000000000   --script-close "/opt/fmadio/analytics/push_pcap_close.lua"  -o /mnt/store0/pushpcap/  > /mnt/store0/log/push_pcap_HTTP_20241225_1327 2>&1 &]
Cmd[rm /mnt/store0/log/push_pcap_HTTP.cur]
rm: can't remove '/mnt/store0/log/push_pcap_HTTP.cur': No such file or directory
Cmd[ln -s /mnt/store0/log/push_pcap_HTTP_20241225_1327 /mnt/store0/log/push_pcap_HTTP.cur]
Wed Dec 25 13:27:05 2024|{"module":"push_pcap","subsystem":"event","event_type":"start","timestamp":1735104425,"instance":"push_pcap"}
Wed Dec 25 13:27:06 2024|{"module":"push_pcap","subsystem":"stream_cat","timestamp":1735104425,"ver":"10403","instance":"push_pcap","Process":"stream_cat                    ","IsUp":  true}
Wed Dec 25 13:27:06 2024|{"module":"push_pcap","subsystem":"status","timestamp":1735104425,"ver":"10403","instance":"push_pcap","Process":"HTTP                          ","IsUp":  true,"Splits":    0,"TotalByte":               0,"TotalPkt":               0,"TransferMbps":      0.00,"PCAPTS":0,"FilterBPF":"tcp and port 80","FilterFrame":"","Target":"/mnt/store0/pushpcap/"}
Wed Dec 25 13:27:07 2024|{"module":"push_pcap","subsystem":"stream_cat","timestamp":1735104427,"ver":"10403","instance":"push_pcap","Process":"stream_cat                    ","IsUp":  true}
Wed Dec 25 13:27:07 2024|{"module":"push_pcap","subsystem":"status","timestamp":1735104427,"ver":"10403","instance":"push_pcap","Process":"HTTP                          ","IsUp":  true,"Splits":    0,"TotalByte":               0,"TotalPkt":               0,"TransferMbps":      0.00,"PCAPTS":0,"FilterBPF":"tcp and port 80","FilterFrame":"","Target":"/mnt/store0/pushpcap/"}
Wed Dec 25 13:27:08 2024|{"module":"push_pcap","subsystem":"stream_cat","timestamp":1735104428,"ver":"10403","instance":"push_pcap","Process":"stream_cat                    ","IsUp":  true}
Wed Dec 25 13:27:08 2024|{"module":"push_pcap","subsystem":"status","timestamp":1735104428,"ver":"10403","instance":"push_pcap","Process":"HTTP                          ","IsUp":  true,"Splits":    0,"TotalByte":               0,"TotalPkt":               0,"TransferMbps":      0.00,"PCAPTS":0,"FilterBPF":"tcp and port 80","FilterFrame":"","Target":"/mnt/store0/pushpcap/"}
Wed Dec 25 13:27:09 2024|{"module":"push_pcap","subsystem":"stream_cat","timestamp":1735104429,"ver":"10403","instance":"push_pcap","Process":"stream_cat                    ","IsUp":  true}
Wed Dec 25 13:27:09 2024|{"module":"push_pcap","subsystem":"status","timestamp":1735104429,"ver":"10403","instance":"push_pcap","Process":"HTTP                          ","IsUp":  true,"Splits":    0,"TotalByte":               0,"TotalPkt":               0,"TransferMbps":      0.00,"PCAPTS":0,"FilterBPF":"tcp and port 80","FilterFrame":"","Target":"/mnt/store0/pushpcap/"}
.
.

Wed Dec 25 13:27:35 2024 stream cat existed
app:stream_cat false
app:pcap_split false
total: false
KillAll [push_pcap] StreamUID[push_pcap_Z_1735104425791180032] Search[push_pcap]
Wed Dec 25 13:27:35 2024|{"module":"push_pcap","subsystem":"event","event_type":"stop","timestamp":1735104455,"ver":"10403","instance":"push_pcap"}
Push shutting down
done 29.546377Sec 0.492440Min
fmadio@fmadio100v2-228U:~$

Step 5) Confirm PCAP file generation

Confirm the PCAP files are generated as expected in the specified PCAP directory