Logging Average CCQ and Wireless Clients Stats - MikroTik Script RouterOS

This simple little script logs the specified wireless interface's overall ccq, noise floor, and frequencies. Very useful if you set this up on a scheduler, say each minute and syslog it to a remote server for parsing/graphing etc. Also handy for remembering what your frequency was set at previously


/int wir monitor [find name=wlan1] once do {
:env; :log info ([/system identity get name] . "," . $clients . "," . $overall-tx-ccq . "," . $noise-floor . ","  
. $frequency .             "," . $current-tx-powers);
}
Sample output

Feb  8 11:53:40 64.114.36.194 script,info AP.Antar,32,62,-92,2412,1Mbps:18,2Mbps:18,5.5Mbps:18,11Mbps:18

This second script parses mac, last ip address, tx rates, uptime, last activity, snr etc... of each connected wireless client. Just be sure to change the interface= to your interface name. I usually set this one up on a 5 minute schedule. Good for matching IP/Mac Pairs

:foreach i in=[ /int wir reg find interface=wlan1] do={
:log info ([/system identity get name] . "," . [get $i  mac-address ]  . "," . [get $i last-ip] . "," . [get $i rx-rate] . "," .  
[get $i tx-rate] . "," . [get $i uptime] . "," . [get $i last-activity] . "," . [get $i signal-strength] . "," . [get $i signal- 
to-noise] . "," . [get $i tx-ccq] . "," . [get $i bytes] . "," . [get $i packets])
}
Sample Output

Feb  8 11:54:09 64.114.107.251 script,info AP.Grizz,00:02:6F:34:2E:1C,64.114.107.149,11Mbps,11Mbps,3w4d15:50:58,00:00:00.010,-   
56dBm@11Mbps,36,100,3485064358,828420047,3532238,2666063

Check all the client ( all wireless interface) with this

:foreach i in=[ /int wir reg find ap=no] do={
:log info ("Mikrotik " . [/system identity get name] . " AP: " . [int wir reg get $i interface] . "  MAC: " . [int wir reg get 
$i mac-address ] . " Last IP: " . [int wir reg get $i last-ip] . " RX: " .   [int wir reg get $i rx-rate] . " TX: " . [int wir  
reg get $i tx-rate] . " Uptime: " . [int wir reg get $i uptime] . " LastACT: " . [int wir reg get $i last-activity] . "  
SignalStrength: " . [int wir reg get $i signal-strength] . " SNR: " . [int wir reg get $i signal-to-noise] . " TX/RX-CCQ: " .  
[int wir reg get $i tx-ccq] . " / " . [int wir reg get $i rx-ccq] . " PThroughput: " . [int wir reg get $i  p-throughput] )
}
 /system scheduler
 add disabled=no interval=6h name=log_reg_table on-event=log_client start-time=startup
 /system script
 add name=log_client policy=ftp,reboot,read,write,policy,test,winbox,password,sniff source=":foreach i in=[ /int wir reg find ap=no] do={\r\
    :log info (\"Mikrotik \" . [/system identity get name] . \" AP: \" . [int wir reg get \$i interface] . \"  MAC: \" . [int wir reg get \$i mac-address ] . \" Last IP:\
     \" . [int wir reg get \$i last-ip] . \" RX: \" . [int wir reg get \$i rx-rate] . \" TX: \" . [int wir reg get \$i tx-rate] . \" Uptime: \" . [int wir reg get \$i upti\
    me] . \" LastACT: \" . [int wir reg get \$i last-activity] . \" SignalStrength: \" . [int wir reg get \$i signal-strength] . \" SNR: \" . [int wir reg get \$i signal-t\
    o-noise] . \" TX/RX-CCQ: \" . [int wir reg get \$i tx-ccq] . \" / \" . [int wir reg get \$i rx-ccq] . \" PThroughput: \" . [int wir reg get \$i  p-throughput] )\r\
    }"