Raspberry Pi monitor: Difference between revisions
| Line 247: | Line 247: | ||
== Configure Nginx webserver, port 80 virtual directory == | == Configure Nginx webserver, port 80 virtual directory == | ||
Some tips ( | Some tips (for use of nginx webserver): | ||
* https://xavierberger.github.io/RPi-Monitor-docs/35_external.html | * https://xavierberger.github.io/RPi-Monitor-docs/35_external.html | ||
* [[Nginx webserver configuration]] | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
Revision as of 14:20, 21 September 2023
Info
With RPi-Monitor you can monitor various aspects of your Raspberry Pi. The package has its own simple webserver. It works well for smaller screens (mobile phone) and history can be visualized with some graphs. If it still isn't to your liking it allows for some serious tinkering.
- https://xavierberger.github.io/RPi-Monitor-docs/index.html
- https://github.com/XavierBerger/RPi-Monitor
Local webservice, access within the local network with:
Install
Install packages:
sudo apt install librrds-perl libhttp-daemon-perl libjson-perl libipc-sharelite-perl sudo apt install libfile-which-perl libsnmp-extension-passpersist-perl sudo apt install aptitude
Download and install monitor:
wget https://github.com/XavierBerger/RPi-Monitor-deb/blob/develop/packages/rpimonitor_latest.deb sudo dpkg -i rpimonitor_latest.deb
Remove
Monitor package:
sudo apt-get purge rpimonitor rm -fr /etc/rpimonitor rm -fr /usr/share/rpimonitor
Configure
Documentation
man rpimonitord man rpimonitord.conf rpimonitord -i
Main configuration files
Main configuration-file with possible references to the other templates:
sudo nano /etc/rpimonitor/template/raspbian.conf
Configuration of the daemon:
sudo nano /etc/rpimonitor/daemon.conf
Modify interval
Default is 10 seconds, changed it to 60 seconds.
sudo nano -l +17 /etc/rpimonitor/daemon.conf
daemon.delay=60
sudo systemctl restart rpimonitor
Network monitoring
Uncomment all lines that are commented and comment the lines that contain the configuration message.
sudo nano /etc/rpimonitor/template/network.conf
Tweaking
Edit services.conf to check for running apache webservice
sudo nano /etc/rpimonitor/template/services.conf
dynamic.3.name=http dynamic.3.source=systemctl show -p SubState --value apache2 dynamic.3.regexp=(.*) web.status.1.content.1.line.1= Label(data.http,"=='running'","Apache","success") + Label(data.http,"!='running'","apache","danger")
Edit cpu.conf to include CPU throttling
(Rapberry Pi 3)
sudo nano /etc/rpimonitor/template/cpu.conf
dynamic.1.name=cpu_frequency dynamic.1.source=vcgencmd measure_clock arm | sed -e "s/frequency(45)=//g" dynamic.1.regexp=(.*) dynamic.1.postprocess=$1/1000000 dynamic.1.rrd=
Link from the main page directly to the corresponding graph
- Included in new version v2.13+
Modify the function Start() in "rpimonitor.statistics.js" to read a parameter 'graph':
sudo nano -l +26 /usr/share/rpimonitor/web/js/rpimonitor.statistics.js
// ...
function Start() {
static = getData('static')
graphconf = getData('statistics')
//modified: read activestat from url graph parameter
activestat = GetURLParameter('graph');
if (activestat == null){
activestat = localStorage.getItem('activestat') || 0;
}
// ... unchanged ...
activePage = GetURLParameter('activePage');
// ...
}
// ...
Then modify "uptime.conf" (graph=0) to include a link to the graph. Same for for "cpu.conf" (graph=1), "temperature.conf" (graph=2), etc:
sudo nano /etc/rpimonitor/template/uptime.conf
web.status.1.content.1.name=<a target=_blank href=statistics.html?graph=0>Uptime</a>
Link to logfiles
cd /usr/share/rpimonitor/web sudo ln -f -s /var/log/wjv/main.log main.log.txt sudo ln -f -s /var/log/wjv/main.1.log main.log.1.txt
Debugging
The StartServer-code is around line 1335:
sudo nano -l +1335 /usr/bin/rpimonitord
Start RPi-Monitor in a terminal with logging:
sudo systemctl stop rpimonitor sudo rpimonitord -vvvvvv
Make it work with a webserver
The Web-server seems to stop regularly. In the Perl code (rpimonitord) there is a "Check if the server is up" part in "Monitor->Run". This is called once every "daemon.delay". With a higher daemon.delay the problem is quite annoying. I changed the code to break-up the delay in 10s parts and check the server every 10s. The problem will still be there but now I only need to wait 10 sec.
Disable the built-in webserver:
sudo nano /etc/rpimonitor/daemon.conf daemon.noserver=1
Problem: the rdd files can't be found by apache. We add a symbolic link to point to the right place:
cd /usr/share/rpimonitor/web sudo ln -s /var/lib/rpimonitor/stat stat
Restart:
sudo service rpimonitor restart
Go to:
- http://<yourserver>/rpimonitor/status.html
Configure Apache2 webserver, port 80 virtual directory
sudo nano /etc/apache2/sites-available/raspberrypi.conf <VirtualHost _default_:80> Alias /rpimonitor/ /usr/share/rpimonitor/web/ <Directory /usr/share/rpimonitor/web/> AllowOverride None Require all granted </Directory> </VirtualHost>
Restart:
sudo systemctl restart apache2
Configure Nginx webserver, port 80 virtual directory
Some tips (for use of nginx webserver):
sudo nano /etc/nginx/sites-available/raspberrypi4
server
{
listen 80;
server_name wjv.duckdns.org;
autoindex off;
index index.htm;
location /rpimonitor {
alias /usr/share/rpimonitor/web;
allow all;
}
}
Restart:
sudo systemctl restart nginx
Snippets
Apply pending upgrades
The monitor notifies you of pending upgrades. To apply the upgrades:
pihole -up sudo apt upgrade
Upgradable packages are refreshed once a day. To force a refresh manually:
sudo /etc/init.d/rpimonitor update sudo systemctl restart rpimonitor