Install alerta on Centos8
Page content
AIn this post I will show you how to install alerta monitoring dashboard on Centos 8.
yum install epel-release -y
yum upgrade -y
Install and configure postgresql
In a previous post I wrote about how to Install PostgreSQL 10
sudo su - postgres
createuser alerta
createdb -O alerta alerta
psql
ALTER USER "alerta" WITH PASSWORD 'alerta';
\q
exit
install python3 packages
yum install python3 python3-pip python3-setuptools python3-devel python3-psycopg2 gcc git tmux nginx
Create user for alerta and install python3 moduls with it.
useradd alerta
usermod -aG alerta nginx
su - alerta
pip3 install --user wheel alerta-server alerta uwsgi
alerta server
nano /etc/alertad.conf
DATABASE_URL = 'postgres://alerta:alerta@localhost:5432/alerta'
PLUGINS=['reject']
ALLOWED_ENVIRONMENTS=['Production', 'Development', 'Code']
We use uwsgi to create a unix socket wgere the alerta webgui can connect.
sudo mkdir -p /var/log/uwsgi
sudo chown -R alerta:alerta /var/log/uwsgi
mkdir /var/run/alerta
chown -R alerta.alerta /var/run/alerta/
echo "from alerta import app" > /usr/share/nginx/wsgi.py
nano /etc/uwsgi.ini
[uwsgi]
chdir = /usr/share/nginx/
mount = /api=wsgi.py
callable = app
manage-script-name = true
env = BASE_URL=/api
master = true
processes = 5
#logger = syslog:alertad
logto = /var/log/uwsgi/%n.log
socket = /var/run/alerta/uwsgi.sock
chmod-socket = 664
uid = alerta
gid = alerta
vacuum = true
die-on-term = true
nano /etc/systemd/system/uwsgi.service
[Unit]
Description=uWSGI service
After=syslog.target
[Service]
ExecStart=/home/alerta/.local/bin/uwsgi --ini /etc/uwsgi.ini
RuntimeDirectory=uwsgi
Type=notify
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
systemctl enable uwsgi
systemctl start uwsgi
systemctl status uwsgi
alerta webgui
wget https://github.com/alerta/alerta-webui/releases/latest/download/alerta-webui.tar.gz
tar zxvf alerta-webui.tar.gz
mv dist/ /usr/share/nginx/alerta
echo '{"endpoint": "/api"}' > /usr/share/nginx/dist/config.json
nano /etc/nginx/nginx.conf
#server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
# root /usr/share/nginx/html;
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
# location / {
# }
# error_page 404 /404.html;
# location = /40x.html {
# }
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
#}
nano /etc/nginx/conf.d/alerta.conf
server {
listen 80 default_server;
location /api { try_files $uri @api; }
location @api {
include uwsgi_params;
uwsgi_pass unix:/var/run/alerta/uwsgi.sock;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
root /usr/share/nginx/alerta;
}
}
nginx -t
systemctl restart nginx
systemctl enable nginx
test
Send testalert with alerta client.
su - alerta
echo '[DEFAULT]
endpoint = http://localhost/api' > $HOME/.alerta.conf
echo 'export PATH=$PATH:/home/alerta/.local/bin' >> ~/.bashrc
PATH=$PATH:/home/alerta/.local/bin
alerta query
alerta send --resource net01 --event down --severity critical --environment Code --service Network --text 'net01 is down.'
alerta query