Just stumbled upon a flow published in Steves internet guide that displays information in a node-RED dashboard about your Mosquitto MQTT server.
The screenprint doesn't capture the full screen, but it also shows comprehensive information about retained messages, subscriptions etc.
You may find this of interest...
[{"id":"feef7174.a35ff","type":"tab","label":"Mosquitto Broker $SYS Monitor","disabled":false,"info":""},{"id":"fce3cf67.80e7c","type":"mqtt in","z":"feef7174.a35ff","name":"","topic":"$SYS/#","qos":"0","datatype":"auto","broker":"9a3ac674.8ced9","x":110,"y":100,"wires":[["6a8d7767.9a4bf"]]},{"id":"541c48c9.3afaf8","type":"template","z":"feef7174.a35ff","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<table class=\"table\">\n <tr>\n\n <th>TOPIC</th>\n <th>VALUE</th>\n \n </tr>\n {{#payload}}\n <tr>\n <td>{{topic}}</td> \n <td>{{payload}}</td>\n\n\n\n </tr>\n{{/payload}}\n\n \n</table>","output":"str","x":360,"y":260,"wires":[["4fe2160a.b77708"]]},{"id":"ba8eee5.873479","type":"debug","z":"feef7174.a35ff","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":430,"y":80,"wires":[]},{"id":"6a8d7767.9a4bf","type":"function","z":"feef7174.a35ff","name":"","func":"var topics=context.get('topics') || {};\nvar temp=context.get('temp') || [];\nvar payload=msg.payload;\nvar topic=msg.topic\nif (topic==\"timer\")\n{\nvar keys=Object.keys(topics)\nvar temp=[];\nfor(var i=0;i<keys.length;i++)\n{\n \n var data={\"topic\":keys[i],\"payload\":topics[keys[i]]}\n temp.push(data); \n}\nmsg.payload=temp;\ntemp=[];\ncontext.set(\"temp\",temp);//reset\n//if ()\nreturn msg;\n}\nelse\n{\n topics[topic]=payload\n var data={\"topic\":msg.topic,\"payload\":msg.payload}\n temp.push(data);\n context.set(\"topics\",topics);\n}","outputs":1,"noerr":0,"x":310,"y":160,"wires":[["541c48c9.3afaf8","ba8eee5.873479"]]},{"id":"4fe2160a.b77708","type":"ui_template","z":"feef7174.a35ff","group":"5533243a.0edaa4","name":"","order":6,"width":0,"height":0,"format":"\n<style>\n\n.headline\n{\n font-size:28px; \n font-weight: bold;\n \n}\n\n.table\n{\n \n width:500px; \n}\n.main\n{\n height:650px;\n width:600px;\n //background:#ffffc6;\n//border:1px solid black;\n}\n.table th,td\n{\nborder:1px solid black;\n}\n.table th\n{\n background: yellow;\n}\n</style>\n\n<div class=\"main\" ng-bind-html=\"msg.payload\"></div>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":300,"y":500,"wires":[[]]},{"id":"4ef48789.b2e9d8","type":"inject","z":"feef7174.a35ff","name":"","topic":"timer","payload":"","payloadType":"date","repeat":"5","crontab":"","once":false,"onceDelay":0.1,"x":130,"y":260,"wires":[["6a8d7767.9a4bf"]]},{"id":"9a3ac674.8ced9","type":"mqtt-broker","z":"","name":"","broker":"192.168.1.21","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"120","cleansession":true,"birthTopic":"sensors/connected/test-client","birthQos":"0","birthRetain":"true","birthPayload":"1","closeTopic":"","closePayload":"","willTopic":"sensors/connected/test-client","willQos":"0","willRetain":"true","willPayload":"0"},{"id":"5533243a.0edaa4","type":"ui_group","z":"","name":"Mosquitto","tab":"75c10258.8ebf24","disp":true,"width":"12","collapse":false},{"id":"75c10258.8ebf24","type":"ui_tab","z":"","name":"Home","icon":"dashboard","order":19,"disabled":false,"hidden":false}]