Hi,I've been fighting against pfstatd for some days now and I'm afraid I'm loosing the battle. I've got a series of OpenBSD heavily loaded servers so I need a light process to produce statistic graphics. pfstatd sounded perfect. I first tried it with pfstatd running on a local server and pfstat collecting the data thought the loopback interface. It worked perfectly, so I deployed. However when I deployed pfstat will not produce graphs for interface data (only global data). I telnet my servers to pfstatd port and I do see all the information just like when I tried with the loopback.
There is one different variable in my client - server setup. My remote servers use em0 interfaces, while the computer runing pfstat have sk0 interface. Is there a known bug that prevents the use of pfstatd + pfstat when servers have different hardware ?
This is my pfstat.conf file
collect 1 = interface lo0 pass bytes in ipv4 diff
collect 2 = interface "em0" pass packets out ipv4 diff
image "/var/www/htdocs/pfstat/adam.bandwidth.jpg" {
from 1 days to now
width 1000 height 400
left
graph 1 "pass in" "packets/s" color 0 192 0 filled
right
graph 2 "pass out" "packets/s" color 0 0 255
}
I collect with /usr/local/bin/pfstat -q -r myip:port -d /var/db/adam.db
and produce graphics with /usr/local/bin/pfstat -c /etc/
pfstat.adam.conf -d /var/db/adam.db -p
when ran with -v I get this output: # /usr/local/bin/pfstat -v -q -r myip:port -d /var/db/adam.db querying values querying remote myip:port trying myip:port... connected to myip:port storing values in databasedata_put_value(since 1186644953, ts 1186732003, unit 1, val 0.00, diff 1)
get_last(unit 1) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 1, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 1, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 1, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 2, val 0.00, diff 1)
get_last(unit 2) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 2, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 2, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 2, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 3, val 0.00, diff 0) put_value_internal(unit 3, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 3, level 1) returning ts 1186731482put_value_internal(unit 3, level 1, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 3, level 2) returning ts 1186728242data_put_value(since 1186644953, ts 1186732003, unit 4, val 0.00, diff 1)
get_last(unit 4) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 4, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 4, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 4, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 5, val 0.00, diff 1)
get_last(unit 5) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 5, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 5, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 5, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 6, val 0.00, diff 1)
get_last(unit 6) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 6, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 6, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 6, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 7, val 0.00, diff 1)
get_last(unit 7) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 7, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 7, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 7, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 8, val 0.00, diff 1)
get_last(unit 8) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 8, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 8, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 8, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 9, val 0.00, diff 1)
get_last(unit 9) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 9, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 9, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 9, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 10, val 680011.00, diff 1)
get_last(unit 10) returns since 1186644953, ts 1186731962, val 679820.00 put_last(unit 10, since 1186644953, ts 1186732003, val 680011.00)put_value_internal(unit 10, level 0, ts 1186732003, min 4.66, avg 4.66, max 4.66)
find_highest_ts(unit 10, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 11, val 0.00, diff 1)
get_last(unit 11) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 11, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 11, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 11, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 12, val 0.00, diff 1)
get_last(unit 12) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 12, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 12, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 12, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 13, val 0.00, diff 1)
get_last(unit 13) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 13, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 13, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 13, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 14, val 0.00, diff 1)
get_last(unit 14) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 14, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 14, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 14, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 15, val 680011.00, diff 1)
get_last(unit 15) returns since 1186644953, ts 1186731962, val 679820.00 put_last(unit 15, since 1186644953, ts 1186732003, val 680011.00)put_value_internal(unit 15, level 0, ts 1186732003, min 4.66, avg 4.66, max 4.66)
find_highest_ts(unit 15, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 16, val 0.00, diff 1)
get_last(unit 16) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 16, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 16, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 16, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 17, val 0.00, diff 1)
get_last(unit 17) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 17, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 17, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 17, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 18, val 0.00, diff 1)
get_last(unit 18) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 18, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 18, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 18, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 19, val 0.00, diff 1)
get_last(unit 19) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 19, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 19, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 19, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 20, val 0.00, diff 1)
get_last(unit 20) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 20, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 20, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 20, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 21, val 0.00, diff 1)
get_last(unit 21) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 21, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 21, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 21, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 22, val 0.00, diff 1)
get_last(unit 22) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 22, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 22, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 22, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 23, val 0.00, diff 1)
get_last(unit 23) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 23, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 23, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 23, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 24, val 0.00, diff 1)
get_last(unit 24) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 24, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 24, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 24, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 25, val 0.00, diff 1)
get_last(unit 25) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 25, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 25, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 25, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 26, val 0.00, diff 1)
get_last(unit 26) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 26, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 26, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 26, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 27, val 0.00, diff 1)
get_last(unit 27) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 27, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 27, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 27, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 28, val 0.00, diff 1)
get_last(unit 28) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 28, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 28, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 28, level 1) returning ts 1186731602data_put_value(since 1186644953, ts 1186732003, unit 29, val 0.00, diff 1)
get_last(unit 29) returns since 1186644953, ts 1186731962, val 0.00 put_last(unit 29, since 1186644953, ts 1186732003, val 0.00)put_value_internal(unit 29, level 0, ts 1186732003, min 0.00, avg 0.00, max 0.00)
find_highest_ts(unit 29, level 1) returning ts 1186731602 but when I try to create the graphic:# /usr/local/bin/pfstat -v -c /etc/pfstat.adam.conf -d /var/db/ adam.db -p
generating images fetching values for unit 1 from database find_highest_level(unit 1) returning level 3 get_values_find_level: highest level overall is 3 get_values_find_level: trying level 3 get_values_find_level: found 2 entries for level 3 get_values_find_level: trying level 2 get_values_find_level: found 18 entries for level 2 get_values_find_level: trying level 1 get_values_find_level: found 161 entries for level 1get_values_find_level(unit 1, beg 1186645726, end 1186732126, siz 867) returning level 0
get_values: end of sequence get_values: maximum (867 values) 0.00 fetching values for unit 2 from database find_highest_level(unit 2) returning level 3 get_values_find_level: highest level overall is 3 get_values_find_level: trying level 3 get_values_find_level: found 2 entries for level 3 get_values_find_level: trying level 2 get_values_find_level: found 18 entries for level 2 get_values_find_level: trying level 1 get_values_find_level: found 161 entries for level 1get_values_find_level(unit 2, beg 1186645726, end 1186732126, siz 867) returning level 0
get_values: end of sequence get_values: maximum (867 values) 0.00 drawing and writing imagesgraph_generate_images: generating file /var/www/htdocs/pfstat/ adam.bandwidth.jpg
graph_generate_images: maximum left 0.00 graph_generate_images: maximum right 0.00 this is the result of a telnet myip:port Escape character is '^]'. -1 - 0 1186644953 0 - 0 0 0 - 1 681284 0 - 2 0 0 - 3 0 0 - 4 681284 0 - 5 0 0 - 6 0 0 - 7 0 0 - 8 0 0 - 9 0 0 - 10 0 0 - 11 0 0 - 12 0 0 - 13 0 0 - 14 0 0 - 15 0 0 - 16 0 0 - 17 0 0 - 18 0 1 all 0 0 1 all 1 0 1 all 2 0 1 all 3 0 1 all 4 0 1 all 5 0 1 all 6 0 1 all 7 0 1 all 8 0 1 all 9 0 1 all 10 0 1 all 11 0 1 all 12 0 1 all 13 0 1 all 14 0 1 all 15 0 1 carp 0 0 1 carp 1 0 1 carp 2 0 1 carp 3 0 1 carp 4 0 1 carp 5 0 1 carp 6 0 1 carp 7 0 1 carp 8 0 1 carp 9 0 1 carp 10 0 1 carp 11 0 1 carp 12 0 1 carp 13 0 1 carp 14 0 1 carp 15 0 1 egress 0 0 1 egress 1 0 1 egress 2 0 1 egress 3 0 1 egress 4 0 1 egress 5 0 1 egress 6 0 1 egress 7 0 1 egress 8 0 1 egress 9 0 1 egress 10 0 1 egress 11 0 1 egress 12 0 1 egress 13 0 1 egress 14 0 1 egress 15 0 1 em0 0 0 1 em0 1 0 1 em0 2 0 1 em0 3 0 1 em0 4 0 1 em0 5 0 1 em0 6 0 1 em0 7 0 1 em0 8 0 1 em0 9 295702314 1 em0 10 0 1 em0 11 16679549 1 em0 12 0 1 em0 13 281482 1 em0 14 0 1 em0 15 204190 1 em1 0 0 1 em1 1 0 1 em1 2 0 1 em1 3 0 1 em1 4 0 1 em1 5 0 1 em1 6 0 1 em1 7 0 1 em1 8 0 1 em1 9 0 1 em1 10 0 1 em1 11 20892194 1 em1 12 0 1 em1 13 0 1 em1 14 0 1 em1 15 195358 1 enc0 0 0 1 enc0 1 0 1 enc0 2 0 1 enc0 3 0 1 enc0 4 0 1 enc0 5 0 1 enc0 6 0 1 enc0 7 0 1 enc0 8 0 1 enc0 9 0 1 enc0 10 0 1 enc0 11 0 1 enc0 12 0 1 enc0 13 0 1 enc0 14 0 1 enc0 15 0 1 lo 0 0 1 lo 1 0 1 lo 2 0 1 lo 3 0 1 lo 4 0 1 lo 5 0 1 lo 6 0 1 lo 7 0 1 lo 8 0 1 lo 9 0 1 lo 10 0 1 lo 11 0 1 lo 12 0 1 lo 13 0 1 lo 14 0 1 lo 15 0 1 lo0 0 0 1 lo0 1 0 1 lo0 2 0 1 lo0 3 0 1 lo0 4 0 1 lo0 5 0 1 lo0 6 0 1 lo0 7 0 1 lo0 8 0 1 lo0 9 14755 1 lo0 10 0 1 lo0 11 14755 1 lo0 12 0 1 lo0 13 127 1 lo0 14 0 1 lo0 15 127 1 pflog0 0 0 1 pflog0 1 0 1 pflog0 2 0 1 pflog0 3 0 1 pflog0 4 0 1 pflog0 5 0 1 pflog0 6 0 1 pflog0 7 0 1 pflog0 8 0 1 pflog0 9 0 1 pflog0 10 0 1 pflog0 11 0 1 pflog0 12 0 1 pflog0 13 0 1 pflog0 14 0 1 pflog0 15 0 1 pfsync0 0 0 1 pfsync0 1 0 1 pfsync0 2 0 1 pfsync0 3 0 1 pfsync0 4 0 1 pfsync0 5 0 1 pfsync0 6 0 1 pfsync0 7 0 1 pfsync0 8 0 1 pfsync0 9 0 1 pfsync0 10 0 1 pfsync0 11 0 1 pfsync0 12 0 1 pfsync0 13 0 1 pfsync0 14 0 1 pfsync0 15 0 Connection closed by foreign host.
