Blank graphs

I recently resurrected my LibreNMS server. I hadn’t used it in months because I had trouble upgrading to the new php version required a while back. I was able to get php and librenms upgraded, and the web page loads just fine. However, new data is not being plotted in graphs for existing devices. I know it is able to communicate via SNMP, because the uptime, etc. is correct. But graphs are blank. I also added a few new devices, and those devices show “Error Drawing Graph.”

Validate:
$ ./validate.php

Component Version
LibreNMS 1.70.1
DB Schema 2020_11_02_164331_add_powerstate_enum_to_vminfo (191)
PHP 7.4.13
Python 3.6.9
MySQL 5.7.32-0ubuntu0.18.04.1
RRDTool 1.7.0
SNMP NET-SNMP 5.7.3
OpenSSL

====================================

[OK] Composer Version: 2.0.8
[OK] Dependencies up-to-date.
[OK] Database connection successful
[OK] Database schema correct
$

RRD Command from existing device with blank graph:
rrdtool graph /tmp/DYwXrpODATEvu4FF -g -l 0 -u 100 -E --start 1609336800 --end 1609423200 --width 1565 --height 628 -c BACK#EEEEEE00 -c SHADEA#EEEEEE00 -c SHADEB#EEEEEE00 -c CANVAS#FFFFFF00 -c GRID#a5a5a5 -c MGRID#FF9999 -c FRAME#5e5e5e -c ARROW#5e5e5e -R normal -c FONT#000000 --font LEGEND:8:DejaVuSansMono --font AXIS:7:DejaVuSansMono --font-render-mode normal COMMENT:‘Load % Now Min Max Avg\l’ DEF:usage0=/opt/librenms/rrd/camsrv/processor-hr-5.rrd:usage:AVERAGE DEF:usage0min=/opt/librenms/rrd/camsrv/processor-hr-5.rrd:usage:MIN DEF:usage0max=/opt/librenms/rrd/camsrv/processor-hr-5.rrd:usage:MAX CDEF:usage_cdef0=usage0,6,/ CDEF:usage_cdef0min=usage0min,6,/ CDEF:usage_cdef0max=usage0max,6,/ AREA:usage_cdef0#E43C00:‘Processor ’ GPRINT:usage0:LAST:%5.2lf%s GPRINT:usage0min:MIN:%5.2lf%s GPRINT:usage0max:MAX:%5.2lf%s GPRINT:usage0:AVERAGE:’%5.2lf%s\n’ COMMENT:’\n’ DEF:usage1=/opt/librenms/rrd/camsrv/processor-hr-6.rrd:usage:AVERAGE DEF:usage1min=/opt/librenms/rrd/camsrv/processor-hr-6.rrd:usage:MIN DEF:usage1max=/opt/librenms/rrd/camsrv/processor-hr-6.rrd:usage:MAX CDEF:usage_cdef1=usage1,6,/ CDEF:usage_cdef1min=usage1min,6,/ CDEF:usage_cdef1max=usage1max,6,/ AREA:usage_cdef1#E74B00:‘Processor ‘:STACK GPRINT:usage1:LAST:%5.2lf%s GPRINT:usage1min:MIN:%5.2lf%s GPRINT:usage1max:MAX:%5.2lf%s GPRINT:usage1:AVERAGE:’%5.2lf%s\n’ COMMENT:’\n’ DEF:usage2=/opt/librenms/rrd/camsrv/processor-hr-7.rrd:usage:AVERAGE DEF:usage2min=/opt/librenms/rrd/camsrv/processor-hr-7.rrd:usage:MIN DEF:usage2max=/opt/librenms/rrd/camsrv/processor-hr-7.rrd:usage:MAX CDEF:usage_cdef2=usage2,6,/ CDEF:usage_cdef2min=usage2min,6,/ CDEF:usage_cdef2max=usage2max,6,/ AREA:usage_cdef2#EB5B00:‘Processor ‘:STACK GPRINT:usage2:LAST:%5.2lf%s GPRINT:usage2min:MIN:%5.2lf%s GPRINT:usage2max:MAX:%5.2lf%s GPRINT:usage2:AVERAGE:’%5.2lf%s\n’ COMMENT:’\n’ DEF:usage3=/opt/librenms/rrd/camsrv/processor-hr-8.rrd:usage:AVERAGE DEF:usage3min=/opt/librenms/rrd/camsrv/processor-hr-8.rrd:usage:MIN DEF:usage3max=/opt/librenms/rrd/camsrv/processor-hr-8.rrd:usage:MAX CDEF:usage_cdef3=usage3,6,/ CDEF:usage_cdef3min=usage3min,6,/ CDEF:usage_cdef3max=usage3max,6,/ AREA:usage_cdef3#EF6A00:‘Processor ‘:STACK GPRINT:usage3:LAST:%5.2lf%s GPRINT:usage3min:MIN:%5.2lf%s GPRINT:usage3max:MAX:%5.2lf%s GPRINT:usage3:AVERAGE:’%5.2lf%s\n’ COMMENT:’\n’ DEF:usage4=/opt/librenms/rrd/camsrv/processor-hr-9.rrd:usage:AVERAGE DEF:usage4min=/opt/librenms/rrd/camsrv/processor-hr-9.rrd:usage:MIN DEF:usage4max=/opt/librenms/rrd/camsrv/processor-hr-9.rrd:usage:MAX CDEF:usage_cdef4=usage4,6,/ CDEF:usage_cdef4min=usage4min,6,/ CDEF:usage_cdef4max=usage4max,6,/ AREA:usage_cdef4#F37900:‘Processor ‘:STACK GPRINT:usage4:LAST:%5.2lf%s GPRINT:usage4min:MIN:%5.2lf%s GPRINT:usage4max:MAX:%5.2lf%s GPRINT:usage4:AVERAGE:’%5.2lf%s\n’ COMMENT:’\n’ DEF:usage5=/opt/librenms/rrd/camsrv/processor-hr-10.rrd:usage:AVERAGE DEF:usage5min=/opt/librenms/rrd/camsrv/processor-hr-10.rrd:usage:MIN DEF:usage5max=/opt/librenms/rrd/camsrv/processor-hr-10.rrd:usage:MAX CDEF:usage_cdef5=usage5,6,/ CDEF:usage_cdef5min=usage5min,6,/ CDEF:usage_cdef5max=usage5max,6,/ AREA:usage_cdef5#F78800:‘Processor ‘:STACK GPRINT:usage5:LAST:%5.2lf%s GPRINT:usage5min:MIN:%5.2lf%s GPRINT:usage5max:MAX:%5.2lf%s GPRINT:usage5:AVERAGE:’%5.2lf%s\n’ COMMENT:’\n’

RRDTool Output

1646x667
OK u:0.11 s:0.01 r:0.11

RRD Command from new devices with “Error Drawing Graph”:
rrdtool graph /tmp/dBgN2b7Jnr61aaN8 -g --alt-autoscale-max --rigid -E --start 1609336800 --end 1609423200 --width 1565 --height 628 -c BACK#EEEEEE00 -c SHADEA#EEEEEE00 -c SHADEB#EEEEEE00 -c CANVAS#FFFFFF00 -c GRID#a5a5a5 -c MGRID#FF9999 -c FRAME#5e5e5e -c ARROW#5e5e5e -R normal -c FONT#000000 --font LEGEND:8:DejaVuSansMono --font AXIS:7:DejaVuSansMono --font-render-mode normal COMMENT:’ ’ COMMENT:’ Current’ COMMENT:’ Average’ COMMENT:’ Maximum’ COMMENT:’ Total’ COMMENT:’\n’ CDEF:inB= CDEF:outB= CDEF:octets=inB,outB,+ CDEF:doutB=outB,-1,* CDEF:inbits=inB,8,* CDEF:outbits=outB,8,* CDEF:bits=inbits,outbits,+ CDEF:doutbits=doutB,8,* VDEF:percentile_in=inbits,95,PERCENT VDEF:percentile_out=outbits,95,PERCENT CDEF:dpercentile_outn=doutbits,-1,* VDEF:dpercentile_outnp=dpercentile_outn,95,PERCENT CDEF:dpercentile_outnpn=doutbits,doutbits,-,dpercentile_outnp,-1,*,+ VDEF:dpercentile_out=dpercentile_outnpn,FIRST VDEF:totin=inB,TOTAL VDEF:avein=inbits,AVERAGE VDEF:totout=outB,TOTAL VDEF:aveout=outbits,AVERAGE VDEF:tot=octets,TOTAL COMMENT:’ \n’ HRULE:999999999999999#FFFFFF:‘Total In’ GPRINT:inbits:LAST:%6.2lf%sbps GPRINT:inbits:AVERAGE:%6.2lf%sbps GPRINT:inbits:MAX:%6.2lf%sbps GPRINT:totin:%6.2lf%sB COMMENT:’\n’ HRULE:999999999999990#FFFFFF:’ Out’ GPRINT:outbits:LAST:%6.2lf%sbps GPRINT:outbits:AVERAGE:%6.2lf%sbps GPRINT:outbits:MAX:%6.2lf%sbps GPRINT:totout:%6.2lf%sB COMMENT:’\n’ HRULE:999999999999990#FFFFFF:’ Agg’ GPRINT:bits:LAST:%6.2lf%sbps GPRINT:bits:AVERAGE:%6.2lf%sbps GPRINT:bits:MAX:%6.2lf%sbps GPRINT:tot:%6.2lf%sB COMMENT:’\n’ HRULE:0#999999

RRDTool Output

ERROR: can not parse an empty rpn expression