RPIMonitor

I created a file in the /etc/rpimonitor/template folder, called avionics.conf. Then I copied this info from @mikkyo’s post, and pasted it into my new file:

#######################################################################
# Extract information about Opened Port
#  Page: 1
#  Information               Status
#  - dump1090-fa port (8080)           - yes      - no
#  - Flightradar24 Feeder/Decoder port (8754)  - yes      - no
#  - FlightAware port (30104)          - yes      - no
#  - PlaneFinder port (30053)        - yes      - no
#  - Virtual Radar Server port (8081) - yes - no
#  - ModeSMixer2 port (8787) - yes - no
#  - lighttpd port (80) - yes - no
#  - collectd status - active - inactive|failed|activating|deactivating
#  - dump978-fa port (30978) -yes -no
#  - RadarBox status - active - inactive|failed|activating|deactivating
########################################################################
dynamic.1.name=dump1090
dynamic.1.source=netstat -nlt
dynamic.1.regexp=tcp .*:(8080).*LISTEN

dynamic.2.name=fr24
dynamic.2.source=netstat -nlt
dynamic.2.regexp=tcp .*:(8754).*LISTEN

dynamic.3.name=piware
dynamic.3.source=netstat -nlt
dynamic.3.regexp=tcp .*:(30104).*LISTEN

dynamic.4.name=finder
dynamic.4.source=netstat -nlt
dynamic.4.regexp=tcp .*:(30053).*LISTEN

dynamic.5.name=vrs
dynamic.5.source=netstat -nlt
dynamic.5.regexp=tcp .*:(8081).*LISTEN

dynamic.6.name=modesmixer2
dynamic.6.source=netstat -nlt
dynamic.6.regexp=tcp .*:(8787).*LISTEN

dynamic.7.name=lighttpd
dynamic.7.source=netstat -nlt
dynamic.7.regexp=tcp .*:(80).*LISTEN

dynamic.8.name=collectd
dynamic.8.source=service collectd status
dynamic.8.regexp=Active: (.*) \(

dynamic.9.name=dump978
dynamic.9.source=netstat -nlt
dynamic.9.regexp=tcp .*:(30978).*LISTEN

dynamic.10.name=rbfeeder
dynamic.10.source=service rbfeeder status
dynamic.10.regexp=Active: (.*) \(

dynamic.11.name=adsbexchange
dynamic.11.source=ps awwux | grep socat | grep -v grep | grep feed
dynamic.11.regexp=feed.adsbexchange.com:(.*)

dynamic.12.name=opensky
dynamic.12.source=service opensky-feeder status
dynamic.12.regexp=Active: (.*) \(

static.1.name=dump1090ver
static.1.source=dump1090-fa --help
static.1.regexp=dump1090-fa (.*\b)

static.2.name=fr24ver
static.2.source=fr24feed --help
static.2.regexp=Version: (.*)/

static.3.name=piwarever
static.3.source=piaware -v
static.3.regexp=(^.*)

static.4.name=finderver
static.4.source=pfclient -v
static.4.regexp=version:(.*)

static.5.name=modesmixer2ver
static.5.source=/home/pi/mm2/modesmixer2 --help
static.5.regexp=ModeSMixer2 v\.(.*)

static.6.name=lighttpdver
static.6.source=lighttpd -v
static.6.regexp=lighttpd/(.*) \(

static.7.name=collectdver
static.7.source=collectd -h
static.7.regexp=collectd(.*)\.git\,

static.8.name=dump978ver
static.8.source=dump978-fa --version 2>&1 | grep dump | awk '{print $2}'
static.8.regexp=(.*)

static.9.name=rbfeederver
static.9.source=/usr/bin/rbfeeder --help 2>&1 | grep "Version " | awk '{print $4}'
static.9.regexp=(.*)

static.10.name=openskyver
static.10.source=journalctl -u opensky-feeder --no-pager
static.10.regexp=Version (.*)

web.status.1.content.1.name=Avionics
web.status.1.content.1.icon=daemons.png
web.status.1.content.1.line.1="<table class='table'><thead><tr><th>Application</th><th>Status</th><th>Version</th><th>Web interface</th></tr></thead><tbody>"
web.status.1.content.1.line.2="<tr>"
web.status.1.content.1.line.3="<td><a href='https://github.com/flightaware/dump1090' target=_blank>dump1090-fa</a></td><td>" + Label(data.dump1090,"==8080","active","success") + Label(data.dump1090,"!=8080","inactive","danger") + "</td><td>" + data.dump1090ver + "</td><td><a href='http://127.0.0.1:8080/' target=_blank>DUMP1090</a></td>"
web.status.1.content.1.line.4="</tr>"
web.status.1.content.1.line.5="<tr>"
web.status.1.content.1.line.6="<td><a href='http://feed.flightradar24.com/#raspberry-pi' target=_blank>fr24feed</a></td><td>" + Label(data.fr24,"==8754","active","success") + Label(data.fr24,"!=8754","inactive","danger") + "</td><td>" + data.fr24ver + "</td><td><a href='http://127.0.0.1:8754' target=_blank>FR24 Feeder Status</a><br /><a href='https://www.flightradar24.com/premium/' target=_blank>Flightradar24.com Premium</a></td>"
web.status.1.content.1.line.7="</tr>"
web.status.1.content.1.line.8="<tr>"
web.status.1.content.1.line.9="<td><a href='http://ja.flightaware.com/adsb/piaware/' target=_blank>piaware</a></td><td>" + Label(data.piware,"==30104","active","success") + Label(data.piware,"!=30104","inactive","danger") + "</td><td>" + data.piwarever + "</td><td><a href='https://flightaware.com/adsb/stats/user/you' target=_blank>FlightAware</a></td>"
web.status.1.content.1.line.10="</tr>"
web.status.1.content.1.line.11="<tr>"
web.status.1.content.1.line.12="<td><a href='https://planefinder.net/sharing/client' target=_blank>pfclient</a></td><td>" + Label(data.finder,"==30053","active","success") + Label(data.finder,"!=30053","inactive","danger") + "</td><td>" + data.finderver + "</td><td><a href='http://127.0.0.1:30053' target=_blank>Plane Finder Client</a></td>"
web.status.1.content.1.line.13="</tr>"
web.status.1.content.1.line.14="<tr>"
web.status.1.content.1.line.15="<td><a href='http://www.virtualradarserver.co.uk/Download.aspx' target=_blank>VirtualRadar</a></td><td>" + Label(data.vrs,"==8082","active","success") + Label(data.vrs,"!=8082","inactive","danger") + "</td><td>2.4<br />31-JUL-2016</td><td><a href='http://127.0.0.1:8082/VirtualRadar/WebAdmin/Index.html' target=_blank>VRS Web Admin</a><br /><a href='http://127.0.0.1:8082/VirtualRadar' target=_blank>Virtual Radar Server</a><br /><a href='http://www.adsbexchange.com/' target=_blank>ADS-B Exchange</a></td>"
web.status.1.content.1.line.16="</tr>"
web.status.1.content.1.line.17="<tr>"
web.status.1.content.1.line.18="<td><a href='http://xdeco.org/?page_id=30#mm2' target=_blank>modesmixer2</a></td><td>" + Label(data.modesmixer2,"==8787","active","success") + Label(data.modesmixer2,"!=8787","inactive","danger") + "</td><td>" + data.modesmixer2ver + "</td><td><a href='http://127.0.0.1:8787' target=_blank>ModeSMixer2</a><br /></td>"
web.status.1.content.1.line.19="</tr>"
web.status.1.content.1.line.20="<tr>"
web.status.1.content.1.line.21="<td>lighttpd</td><td>" + Label(data.lighttpd,"==80","active","success") + Label(data.lighttpd,"!=80","inactive","danger") + "</td><td>" + data.lighttpdver + "</td><td><a href='http://127.0.0.1:8080/3d/' target=_blank>MyRadar24</a></td>"
web.status.1.content.1.line.22="</tr>"
web.status.1.content.1.line.23="<tr>"
web.status.1.content.1.line.24="<td>collectd</td><td>" + Label(data.collectd,"=='active'","active","success") + Label(data.collectd,"!='active'","inactive","danger") + "</td><td>" + data.collectdver + "</td><td><a href='127.0.0.1/collectd/' target=_blank>dump1090-tools</a></td>"
web.status.1.content.1.line.25="</tr>"
web.status.1.content.1.line.26="<tr>"
web.status.1.content.1.line.27="<td><a href='https://github.com/flightaware/dump978' target=_blank>dump978-fa</a></td><td>" + Label(data.dump978,"==30978","active","success") + Label(data.dump978,"!=30978","inactive","danger") + "</td><td>" + data.dump978ver + "</td><td><a href='http://127.0.0.1/skyaware978' target=_blank>dump978-fa</a></td>"
web.status.1.content.1.line.28="</tr>"
web.status.1.content.1.line.29="<tr>"
web.status.1.content.1.line.30="<td><a href='https://www.radarbox24.com/raspberry-pi/guide' target=_blank>RadarBox</a></td><td>" + Label(data.rbfeeder,"=='active'","active","success") + Label(data.rbfeeder,"!='active'","inactive","danger") + "</td><td>" + data.rbfeederver + "</td><td><a href='https://www.radarbox24.com/stations/EXTRPI00000' target=_blank>RadarBox</a></td>"
web.status.1.content.1.line.31="</tr>"
web.status.1.content.1.line.32="<tr>"
web.status.1.content.1.line.33="<td><a href='https://www.adsbexchange.com/active-feeds/' target=_blank>ADSBExchange</a></td><td>" + Label(data.adsbexchange,"==30005","active","success") + Label(data.adsbexchange,"!=30005","inactive","danger") + "</td><td>N/A</td><td><a href='http://www.adsbexchange.com/coverage-1D/?new' target=_blank>ADSBExchangeFeeder</a></td>"
web.status.1.content.1.line.34="</tr>"
web.status.1.content.1.line.35="<tr>"
web.status.1.content.1.line.36="<td><a href='https://opensky-network.org' target=_blank>OpenSkyNetwork</a></td><td>" + Label(data.opensky,"=='active'","active","success") + Label(data.opensky,"!='active'","inactive","danger") + "</td><td>" + data.openskyver + "</td><td><a href='https://opensky-network.org/receiver-profile?s=00000' target=_blank>OpenSkyFeeder</a></td>"
web.status.1.content.1.line.37="</tr>"
web.status.1.content.1.line.38="</tbody></table>"

Finally, I opened up /etc/rpimonitor/data.conf and added this line to the end of the file:

include=/etc/rpimonitor/template/avionics.conf

You will need to stop and restart the collectd and rpimonitor services, and then you should have a working page with the avionics section.

You will probably want to tweak it a little from there, but that should get you started.