On the blog here we refer often to “the script” which sets up a whole raft of useful tools on SBCs such as the Raspberry Pi – and we’re always on the look out for new and improved tools. But let’s here from YOU!
So we already know from extensive development of the script, that Mosquitto is a GREAT and powerful MQTT broker, that Grafana is a fabulous graphing tool, we know that Node-Red is an incredibly easy and powerful development environment which is GREAT for IOT. We know that MC is a good command line editor and file manager and that for Alexa users, HA-Bridge can make interfacing to just about any device a snap. Read on…
The list goes on – but read about that elsewhere on the blog if you’re interested…. the question is what tools (graphical if you like but preferably installed at the command line and where appropriate using a web interface) do YOU think are the best?
Write in the comments area below. I personally like Webmin for general admin on the Pi etc but it is WAY too big and slow to set up… haven’t found anything better personally.
Let’s hear about your favourites.
Things not mentioned here so far:
– Telegraf – low overhead metrics integration. Easily capture system metrics and more, output to many different systems including db’s, enterprise log aggregation, charting, etc.
– Glances – Python based “top”. Much easier to use than top/atop/htop. Shows you what is happening on the Pi.
– byobu – for extended terminal sessions when you need reconnections and multiple terminals.
– Ansible – installation and maintenance automation.
For those who don’t have a clue what Telegraf is… https://www.influxdata.com/time-series-platform/telegraf/
Thanks for that, Julian.
You might also like to note that telegraf directly supports metrics from MQTT and can even do things like get data from GitHub, snmp, databases, puppet, Phusion Passenger.
I use virtually none of that at present:
# Monitor process cpu and memory usage
[[inputs.procstat]]
exe = “mosquitto”
## Field name prefix
prefix = “”
## comment this out if you want raw cpu_time stats
fielddrop = [“cpu_time_*”]
# Ping given url(s) and return statistics
[[inputs.ping]]
urls = [“www.google.com”] # required
count = 1 # required
ping_interval = 0.0
timeout = 0.0
interface = “”
# TCP or UDP ‘ping’ given url and collect response time in seconds
[[inputs.net_response]]
protocol = “tcp”
address = “github.com:80”
timeout = 1.0
read_timeout = 1.0
# Query given DNS server and gives statistics
[[inputs.dns_query]]
servers = [“208.67.222.222″,”8.8.8.8”] # required
domains = [“.”] # optional
record_type = “A” # optional
port = 53 # optional
timeout = 2 # optional
# Get kernel statistics from /proc/stat
[[inputs.kernel]]
# no configuration
# Read metrics about memory usage
[[inputs.mem]]
# no configuration
# Get the number of processes and group them by status
[[inputs.processes]]
# no configuration
# Read metrics about swap memory usage
[[inputs.swap]]
# no configuration
# Read metrics about system load & uptime
[[inputs.system]]
# no configuration
# Read metrics about cpu usage
[[inputs.cpu]]
## Whether to report per-cpu stats or not
percpu = true
## Whether to report total system cpu stats or not
totalcpu = true
## Comment this line if you want the raw CPU time metrics
fielddrop = [“time_*”]
# Read metrics about disk usage by mount point
[[inputs.disk]]
## By default, telegraf gather stats for all mountpoints.
## Setting mountpoints will restrict the stats to the specified mountpoints.
# mount_points = [“/”]
## Ignore some mountpoints by filesystem type. For example (dev)tmpfs (usually
## present on /run, /var/run, /dev/shm or /dev).
ignore_fs = [“tmpfs”, “devtmpfs”]
# Read metrics about disk IO by device
[[inputs.diskio]]
## By default, telegraf will gather stats for all devices including
## disk partitions.
## Setting devices will restrict the stats to the specified devices.
# devices = [“sda”, “sdb”]
## Uncomment the following line if you do not need disk serial numbers.
# skip_serial_number = true
These are some captures from my Pi dashboard
And some dials
The Pi for NCID (was a zero) now a Pi3, uses a modem for the phone pick-up, number is displayed on PC/Laptop/Mobilephone (and with speach if required).
Pi3 is also used for Node-red home automation, weather station monitoring and solar monitoring just to keep it busy.
Yes, what I found on my brief look at this is that the modem is overkill – though if you have one of course – that’s fine – but in fact it looks like you only need a couple of ££ worth of components to get the signal into the Pi… just a case of finding a PCB really. Someone will come up with it…
The thing I love most on one of my pi’s is NCID, that was the main reason I started using a Pi, monitors my phone 24/7 and stops all the “cold calls”. A quiet home and I can use the phone for what it should be used for.
And if anyone with a soldering iron wants to take THAT subject any further – it seems there is a handy DIRT CHEAP chip for the job of called ID called an HT9032 which costs marginally over £1 and gives out serial data including called ID number…. the only problem so far is I cannot find anyone doing a suitably cheap BOARD to go with it – there is one – but it’s about 20x the cost of the chip… surprising considering how little support it needs. Seems to me that one nice little project might be a WEMOS board (again dirt cheap hooked to that chip, sending the caller ID information via MQTT – to – well, anything – a PI which might be doing all sorts of other things – but which could then for example – via Node-Red alert incoming calls by message, Telegram, email, display on a Pi etc etc….
https://forum.arduino.cc/index.php?topic=361698.0
Just a quick note to say thanks for the feedback on this so far chaps – marvellous.
bssh from package avahi-ui-utils shows me every pi in my network – one click to login. Love this!
Two of the first things I do is to install Scite and Synaptic. Yes I still like the GUI for some installations/removals. Scite I find much better that Leaf.
The odd time I will dump Libre Office. Too much and too cumbersome (slow)
Tools for my SBCs:
– Ruby, Perl, Go
– Cloud9-IDE server – web based editor and terminal(s)
– ngrok (secure tunnels)
You may want to take a look at cockpit (http://cockpit-project.org/) instead of webmin.
I haven’t used it but the FLOSS weekly podcast covered it.
Thanks Rob – I’ve been looking at this https://github.com/cockpit-project/cockpit/issues/6560 and I’m not entirely clear from that if it is actually available for the Pi now. Anyone here tried it?
Not tried it but reading through the issue, it looks as though it is now in the backports for Stretch and Jessie with ARM versions. Would be easy enough to see if it installs I guess.
I wanted to keep my HA devices separate from other parts of my network, so after running the script, I set the pi as an access point using the steps posted by SurferTim in the 7th post on this page: https://www.raspberrypi.org/forums/viewtopic.php?t=191453
The access point can be open to the internet or closed fairly easily
For alternatives to webmin, did you try all the ones on this Wikipedia list?
https://en.m.wikipedia.org/wiki/Comparison_of_web_hosting_control_panels
most of them are addressed to an ISP setup, btw
Hi
I’ve nowhere near enough time to trawl through installing that lot 🙂
If someone wants to make suggestions as to web-interface-based versions that look good and perform well compared to Webmin….
Also, it looks beautiful, but I cant figure out how to use the images else where (it seems to have a mode to allow this, but I could not get it working after an hour of working on it).
https://github.com/firehol/netdata
cd /home/pi
sudo apt-get update
curl -Ss ‘https://raw.githubusercontent.com/firehol/netdata-demo-site/master/install-required-packages.sh’ >/tmp/kickstart.sh && bash /tmp/kickstart.sh netdata-all
git clone https://github.com/firehol/netdata.git –depth=1
cd netdata
sudo ./netdata-installer.sh
http://192.168.1.54:19999/
While I enjoy using Pi-Hole, I am still looking for a better DHCP toolkit. A graphical one would be nice, with a way to back up the MAC to IP mapping that I set up would be sweet.
I’m also still looking for a Pi based network monitoring tool that uses SNMP and can give me host status (up/down) and bandwidth alarming.
Lastly, I always install Monitorix on every Pi/Linux device on the network, so recommend that one.
I got all excited about installing Monitorix… following the simple instructions on the site
root@pihd1:/home/pi> apt-get install monitorix
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package monitorix
Sigh – want to save us some work?
and then I tried the manual one which installed loads of libxxx stuff – but when it came to the line about Monitorix
root@pihd1:/home/pi> dpkg -i monitorix*.deb
dpkg: error: cannot access archive ‘monitorix*.deb’: No such file or directory
root@pihd1:/home/pi>
Not my lucky day today
My ‘sure fire way’ of installing it;
sudo apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl libio-socket-ssl-perl
cd /home/pi
wget http://apt.izzysoft.de/ubuntu/dists/generic/index.php?file=monitorix_3.9.0-izzy1_all.deb
sudo dpkg -i monitorix_3.9.0-izzy1_all.deb
sudo nano /etc/monitorix/monitorix.conf
[Here you tweak the host name, hit Y for Pi in the list and any other ports or services as needed].
sudo service monitorix restart
This walk-through has been working well for me on the past two versions of Raspbian.
The current file is now 3.10.0 – but… either way – this is what came back on my desktop
index.php?file=monitorix_3.9.0-izzy1_all.deb
Are you SURE that’s the correct line? I would have expected an actual .deb file.
Anyway THIS worked.
wget http://www.monitorix.org/monitorix_3.10.0-izzy1_all.deb
Well, when I say worked – was there anything special I had to set in that config file???? because after the restart line – nothing is coming up on port 8080… also tried changing it to port 8085 and doing the restart line – nope..
You have to point to the right path;
http://192.168.1.23:8080/monitorix
I just did a fresh install of the new version (sorry about that, is it worth editing my last post?) and it all came up as expected.
Not for me. I must’ve missed something in that config file. Hmmm….
Yeah, that is a little odd…..
Perhaps change the port totally (not sure what all ports ‘The Script’ ends up using)… Go say 7077.
That is the only real change I make, the host name and title are optional.
Even the Raspberry Pi y/n is optional to get started.
Are you using a firewall? UFW?
Success – I had the host set at 127.0.0.1 – which I thought was reasonable – I changed it to the actual IP address of the Pi and voila.
I have all kinds of pretty coloured graphs – let me wallow in the colours for a while – I may do a short entry on this one – thanks for that – keep them coming!!
Fantastic.
Do play with that config file.
Given all the services you are running you should get some really powerful insight to what is writing to the disk, using CPU and memory.
I have tinkered with adding custom services as well, like adding Node-RED TCP traffic to the ‘Ports’ section.
I like that you can embed any of the graphs in an iFrame and look at them on a different web-server.
Lastly, leave it run, it gets really interesting at 1 week+ You see all sorts of patterns as the Pi responds to your life load.
See new small blog
@TheBaldGeek, I’m not familiar with those tools. What are you referring to DHCP toolkit?
My Pis and ESPs are usual client machines in my network and my master server handles the DHCP serving. I’m using dnsmasq for serving right now. I do DHCP discovery (I send DHCP changes to MQTT) but I haven’t written that in Node-Red yet.
I’m looking for a DHCP toolkit for the Pi command line – Just as Pete asked.
Pi-Hole uses dnsmasq for a lot of its work, so it is not that different to what you are doing, I just want something a bit less cryptic, something with a nice web interface would be sweet.
Most of my home network devices (around 70 of them) have fixed or assigned IP addresses, I really need something better than the command line to manage them.