by Cristian Balan | Jul 17, 2018 | Linux, Monitoring
I found that Azure has a hard time to monitor disk usage on a Linux box. There are ways, but it seems to be too complicated to achieve such a basic thing. So I came up with the following script I call in a cron job as needed.
#!/bin/bash
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=90
PUBLICIP=$(curl ipecho.net/plain)
LOCALIP=$(ips=($(hostname -I))
for ip in "${ips[@]}"
do
echo $ip
done)
if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
mail -a From:[email protected] -s "Disk Space Alert on ${HOSTNAME} ($PUBLICIP / $LOCALIP)" [email protected] << EOF
The $HOSTNAME root partition remaining free space is critically low. Used: $CURRENT%
EOF
fi
Make sure to adjust the THRESHOLD and emails as needed. Ideally, you’ll configure a mail server (e.g. Postfix) with SMTP credentials (e.g. SendGrid) and proper SPF records to make sure your emails don’t end up in Junk and miss them.
There are plenty of proper monitoring solutions and I always love those that give you a free tier such as HetrixTools Uptime Monitors or Datadog. However, not always these can be used.
by Cristian Balan | Jun 28, 2018 | Hosting, Linux, Twitter
Source by Cristian O. Balan
In a nutshell:
mkdir ~/.aws
nano ~/.aws/credentials
#[default]
#aws_access_key_id = ABC
#aws_secret_access_key = XYZ
chmod 400 ~/.aws/credentials
chmod 500 ~/.aws
apt-get install software-properties-common
add-apt-repository ppa:certbot/certbot
apt update && apt install python-certbot-nginx python-pip python-asn1crypto python-certifi python-cffi-backend python-cryptography python-enum34 python-idna python-ipaddress
pip install --upgrade pip
certbot --version
pip install certbot_dns_route53==0.26.1
mkdir -p /opt/letsencrypt/config
mkdir -p /opt/letsencrypt/log
mkdir -p /opt/letsencrypt/work
certbot certonly -d hosting.oviliz.com --dns-route53 --logs-dir /opt/letsencrypt/log/ --config-dir /opt/letsencrypt/config/ --work-dir /opt/letsencrypt/work/ -m [email protected] --agree-tos --non-interactive --server https://acme-v02.api.letsencrypt.org/directory
/usr/local/bin/certbot renew --dns-route53 --logs-dir /opt/letsencrypt/log/ --config-dir /opt/letsencrypt/config/ --work-dir /opt/letsencrypt/work/ --non-interactive --server https://acme-v02.api.letsencrypt.org/directory --post-hook "service nginx reload"
Or if you’re using DNS Made Easy:
#...
nano ~/.dnsmadeeasy/credentials
#dns_dnsmadeeasy_api_key = ABC
#dns_dnsmadeeasy_secret_key = XYZ
#...
certbot certonly -d hosting.oviliz.com --dns-dnsmadeeasy --dns-dnsmadeeasy-credentials ~/.dnsmadeeasy/credentials --logs-dir /opt/letsencrypt/log/ --config-dir /opt/letsencrypt/config/ --work-dir /opt/letsencrypt/work/ -m [email protected] --agree-tos --non-interactive --server https://acme-v02.api.letsencrypt.org/directory
/usr/local/bin/certbot renew --dns-route53 --logs-dir /opt/letsencrypt/log/ --config-dir /opt/letsencrypt/config/ --work-dir /opt/letsencrypt/work/ --non-interactive --server https://acme-v02.api.letsencrypt.org/directory --post-hook "service nginx reload"
The same concept can be obviously applied with Cloudflare and so on.