Manual merge of graphs.sh updates from 2.5.1

pull/334/head
romeo-golf 2017-01-08 04:18:25 +00:00
rodzic 6d815957c2
commit 2d8570a636
1 zmienionych plików z 143 dodań i 64 usunięć

Wyświetl plik

@ -37,15 +37,44 @@ PROJECTROOTDIRECTORY="${PWD}"
BUILDDIRECTORY="${PROJECTROOTDIRECTORY}/build"
PORTALBUILDDIRECTORY="${BUILDDIRECTORY}/portal"
COLLECTD_CONFIG="/etc/collectd/collectd.conf"
COLLECTD_CRON_FILE="/etc/cron.d/adsb-feeder-performance-graphs"
## CHECK FOR PREREQUISITE PACKAGES
echo -e ""
echo -e "\e[95m Setting up collectd performance graphs...\e[97m"
echo -e ""
## CONFIRM INSTALLED PACKAGES
if [[ -z "${DUMP1090_INSTALLED}" ]] || [[ -z "${DUMP1090_FORK}" ]] ; then
if [[ $(dpkg-query -W -f='${STATUS}' dump1090-mutability 2>/dev/null | grep -c "ok installed") -eq 1 ]] ; then
DUMP1090_FORK="mutability"
DUMP1090_INSTALLED="true"
fi
if [[ $(dpkg-query -W -f='${STATUS}' dump1090-fa 2>/dev/null | grep -c "ok installed") -eq 1 ]] ; then
DUMP1090_FORK="fa"
DUMP1090_INSTALLED="true"
fi
fi
if [ -f /etc/init.d/rtlsdr-ogn ]; then
RTLSDROGN_INSTALLED="true"
fi
## CONFIRM HARDWARE PLATFORM
if [[ `egrep -c "^Hardware.*: BCM" /proc/cpuinfo` -gt 0 ]] ; then
HARDWARE="RPI"
elif [[ `egrep -c "^Hardware.*: Allwinner sun4i/sun5i Families$" /proc/cpuinfo` -gt 0 ]] ; then
HARDWARE="CHIP"
else
HARDWARE="unknown"
fi
## MODIFY THE DUMP1090-MUTABILITY INIT SCRIPT TO MEASURE AND RETAIN NOISE DATA
if [ $(dpkg-query -W -f='${STATUS}' dump1090-mutability 2>/dev/null | grep -c "ok installed") -eq 1 ]; then
if [[ ${DUMP1090_INSTALLED} = "true" ]] && [[ ${DUMP1090_FORK} = "mutability" ]] ; then
echo -e "\e[94m Modifying the dump1090-mutability init script to add noise measurements...\e[97m"
sudo sed -i 's/ARGS=""/ARGS="--measure-noise "/g' /etc/init.d/dump1090-mutability 2>&1
echo -e "\e[94m Reloading the systemd manager configuration...\e[97m"
@ -58,13 +87,15 @@ fi
## BACKUP AND REPLACE COLLECTD.CONF
# Check if the file /etc/collectd/collectd.conf exists and if so back it up.
if [ -f /etc/collectd/collectd.conf ]; then
# Check if the collectd config file exists and if so back it up.
if [[ -f ${COLLECTD_CONFIG} ]] ; then
echo -e "\e[94m Backing up the current collectd.conf file...\e[97m"
sudo mv /etc/collectd/collectd.conf /etc/collectd/collectd.conf.back 2>&1
sudo cp ${COLLECTD_CONFIG} ${COLLECTD_CONFIG}.bak 2>&1
fi
# Generate new collectd config.
echo -e "\e[94m Replacing the current collectd.conf file...\e[97m"
sudo tee -a /etc/collectd/collectd.conf > /dev/null <<EOF
sudo tee ${COLLECTD_CONFIG} > /dev/null <<EOF
# Config file for collectd(1).
##############################################################################
@ -72,12 +103,6 @@ sudo tee -a /etc/collectd/collectd.conf > /dev/null <<EOF
##############################################################################
Hostname "localhost"
#----------------------------------------------------------------------------#
# Added types for dump1090. #
# Make sure the path to dump1090.db is correct. #
#----------------------------------------------------------------------------#
TypesDB "$PORTALBUILDDIRECTORY/graphs/dump1090.db" "/usr/share/collectd/types.db"
#----------------------------------------------------------------------------#
# Interval at which to query values. This may be overwritten on a per-plugin #
# base by using the 'Interval' option of the LoadPlugin block: #
@ -90,6 +115,22 @@ Timeout 2
ReadThreads 5
WriteThreads 1
EOF
# Dump1090 specific values.
if [[ ${DUMP1090_INSTALLED} = "true" ]] ; then
sudo tee -a ${COLLECTD_CONFIG} > /dev/null <<EOF
#----------------------------------------------------------------------------#
# Added types for dump1090. #
# Make sure the path to dump1090.db is correct. #
#----------------------------------------------------------------------------#
TypesDB "${PORTALBUILDDIRECTORY}/graphs/dump1090.db" "/usr/share/collectd/types.db"
EOF
fi
# Config for all installations.
sudo tee -a ${COLLECTD_CONFIG} > /dev/null <<EOF
##############################################################################
# Logging #
##############################################################################
@ -113,10 +154,10 @@ LoadPlugin aggregation
LoadPlugin match_regex
LoadPlugin df
LoadPlugin disk
LoadPlugin curl
<LoadPlugin python>
Globals true
</LoadPlugin>
LoadPlugin curl
##############################################################################
# Plugin configuration #
@ -125,26 +166,6 @@ LoadPlugin curl
DataDir "/var/lib/collectd/rrd"
</Plugin>
#----------------------------------------------------------------------------#
# System Graphs #
#----------------------------------------------------------------------------#
<Plugin table>
<Table "/sys/class/thermal/thermal_zone0/temp">
Instance localhost
Separator " "
<Result>
Type gauge
InstancePrefix "cpu_temp"
ValuesFrom 0
</Result>
</Table>
</Plugin>
<Plugin "interface">
Interface "eth0"
Interface "wlan0"
</Plugin>
<Plugin "aggregation">
<Aggregation>
Plugin "cpu"
@ -162,25 +183,60 @@ LoadPlugin curl
ReportInodes true
</Plugin>
<Plugin "interface">
Interface "eth0"
Interface "wlan0"
</Plugin>
EOF
# Raspberry Pi specific values.
if [[ ${HARDWARE} == "RPI" ]] ; then
sudo tee -a ${COLLECTD_CONFIG} > /dev/null <<EOF
<Plugin table>
<Table "/sys/class/thermal/thermal_zone0/temp">
Instance localhost
Separator " "
<Result>
Type gauge
InstancePrefix "cpu_temp"
ValuesFrom 0
</Result>
</Table>
</Plugin>
<Plugin "disk">
Disk "mmcblk0"
Disk "mmcblk0"
IgnoreSelected false
</Plugin>
EOF
# CHIP specific values.
elif [[ ${HARDWARE} == "CHIP" ]] ; then
sudo tee -a ${COLLECTD_CONFIG} > /dev/null <<EOF
<Plugin table>
<Table "/sys/class/hwmon/hwmon0/temp1_input">
Instance localhost
Separator " "
<Result>
Type gauge
InstancePrefix "cpu_temp"
ValuesFrom 0
</Result>
</Table>
</Plugin>
<Plugin "disk">
Disk "ubi0:rootfs"
IgnoreSelected false
</Plugin>
<Chain "PostCache">
<Rule>
<Match regex>
Plugin "^cpu\$"
PluginInstance "^[0-9]+\$"
</Match>
<Target write>
Plugin "aggregation"
</Target>
Target stop
</Rule>
Target "write"
</Chain>
EOF
fi
# Dump1090 specific values.
if [[ ${DUMP1090_INSTALLED} = "true" ]] ; then
sudo tee -a ${COLLECTD_CONFIG} > /dev/null <<EOF
#----------------------------------------------------------------------------#
# Configure the dump1090 python module. #
# #
@ -189,16 +245,22 @@ LoadPlugin curl
# statistics will be loaded from http://localhost/dump1090/data/stats.json #
#----------------------------------------------------------------------------#
<Plugin python>
ModulePath "$PORTALBUILDDIRECTORY/graphs"
LogTraces true
Import "dump1090"
<Module dump1090>
<Instance localhost>
URL "http://localhost/dump1090"
</Instance>
</Module>
ModulePath "${PORTALBUILDDIRECTORY}/graphs"
LogTraces true
Import "dump1090"
<Module dump1090>
<Instance localhost>
URL "http://localhost/dump1090"
</Instance>
</Module>
</Plugin>
EOF
fi
# RTLSDR-OGN specific values.
if [[ ${RTLSDROGN_INSTALLED} = "true" ]] ; then
sudo tee -a ${COLLECTD_CONFIG} > /dev/null <<EOF
#----------------------------------------------------------------------------#
# RTLSDR-OGN Graphs #
#----------------------------------------------------------------------------#
@ -251,6 +313,23 @@ LoadPlugin curl
</Plugin>
EOF
# Remaining config for all installations.
sudo tee -a ${COLLECTD_CONFIG} > /dev/null <<EOF
<Chain "PostCache">
<Rule>
<Match regex>
Plugin "^cpu\$"
PluginInstance "^[0-9]+\$"
</Match>
<Target write>
Plugin "aggregation"
</Target>
Target stop
</Rule>
Target "write"
</Chain>
EOF
## RELOAD COLLECTD
echo -e "\e[94m Reloading collectd so the new configuration is used...\e[97m"
@ -261,7 +340,7 @@ echo -e ""
## EDIT CRONTAB
echo -e "\e[94m Making the make-collectd-graphs.sh script executable...\e[97m"
chmod +x $PORTALBUILDDIRECTORY/graphs/make-collectd-graphs.sh
chmod +x ${PORTALBUILDDIRECTORY}/graphs/make-collectd-graphs.sh 2>&1
# The next block is temporary in order to insure this file is
# deleted on older installation before the project renaming.
@ -270,13 +349,13 @@ if [ -f /etc/cron.d/adsb-feeder-performance-graphs ]; then
sudo rm -f /etc/cron.d/adsb-feeder-performance-graphs 2>&1
fi
if [ -f /etc/cron.d/adsb-receiver-performance-graphs ]; then
if [ -f ${COLLECTD_CRON_FILE} ]; then
echo -e "\e[94m Removing previously installed performance graphs cron file...\e[97m"
sudo rm -f /etc/cron.d/adsb-receiver-performance-graphs 2>&1
sudo rm -f ${COLLECTD_CRON_FILE} 2>&1
fi
echo -e "\e[94m Adding performance graphs cron file...\e[97m"
sudo tee -a /etc/cron.d/adsb-receiver-performance-graphs > /dev/null <<EOF
sudo tee ${COLLECTD_CRON_FILE} > /dev/null <<EOF
# Updates the portal's performance graphs.
#
# Every 5 minutes new hourly graphs are generated.
@ -288,12 +367,12 @@ sudo tee -a /etc/cron.d/adsb-receiver-performance-graphs > /dev/null <<EOF
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/5 * * * * root bash $PORTALBUILDDIRECTORY/graphs/make-collectd-graphs.sh 1h >/dev/null 2>&1
*/10 * * * * root bash $PORTALBUILDDIRECTORY/graphs/make-collectd-graphs.sh 6h >/dev/null 2>&1
2,12,22,32,42,52 * * * * root bash $PORTALBUILDDIRECTORY/graphs/make-collectd-graphs.sh 24h >/dev/null 2>&1
4,24,44 * * * * root bash $PORTALBUILDDIRECTORY/graphs/make-collectd-graphs.sh 7d >/dev/null 2>&1
6 * * * * root bash $PORTALBUILDDIRECTORY/graphs/make-collectd-graphs.sh 30d >/dev/null 2>&1
8 */12 * * * root bash $PORTALBUILDDIRECTORY/graphs/make-collectd-graphs.sh 365d >/dev/null 2>&1
*/5 * * * * root bash ${PORTALBUILDDIRECTORY}/graphs/make-collectd-graphs.sh 1h >/dev/null 2>&1
*/10 * * * * root bash ${PORTALBUILDDIRECTORY}/graphs/make-collectd-graphs.sh 6h >/dev/null 2>&1
2,12,22,32,42,52 * * * * root bash ${PORTALBUILDDIRECTORY}/graphs/make-collectd-graphs.sh 24h >/dev/null 2>&1
4,24,44 * * * * root bash ${PORTALBUILDDIRECTORY}/graphs/make-collectd-graphs.sh 7d >/dev/null 2>&1
6 * * * * root bash ${PORTALBUILDDIRECTORY}/graphs/make-collectd-graphs.sh 30d >/dev/null 2>&1
8 */12 * * * root bash ${PORTALBUILDDIRECTORY}/graphs/make-collectd-graphs.sh 365d >/dev/null 2>&1
EOF
exit 0