cosmetic refactoring

and small fix shell script
This commit is contained in:
IgorKha 2022-06-21 17:12:24 +03:00
parent 3adcdd666a
commit b7a80c3106
5 changed files with 26 additions and 23 deletions

5
.env
View file

@ -1,4 +1 @@
GF_ADMIN_USER=admin CURRENT_USER=1000:1000
GF_ADMIN_PASSWORD=mikrotik
CURRENT_USER=root
MIKROTIK_IP=192.168.88.1

3
.grafana Normal file
View file

@ -0,0 +1,3 @@
GF_SECURITY_ADMIN_USER=admin
GF_SECURITY_ADMIN_PASSWORD=mikrotik
GF_USERS_ALLOW_SIGN_UP=false

1
.prometheus Normal file
View file

@ -0,0 +1 @@
MIKROTIK_IP=192.168.88.1

View file

@ -2,9 +2,9 @@
![visitors](https://visitor-badge.laobi.icu/badge?page_id=IgorKha.Grafana-Mikrotik) ![visitors](https://visitor-badge.laobi.icu/badge?page_id=IgorKha.Grafana-Mikrotik)
![example branch parameter](https://github.com/IgorKha/Grafana-Mikrotik/actions/workflows/action.yml/badge.svg?branch=master) ![example branch parameter](https://github.com/IgorKha/Grafana-Mikrotik/actions/workflows/action.yml/badge.svg?branch=master)
![mikrotikOS](https://img.shields.io/badge/Mikrotik_ROS-v7.1.1-blue) ![mikrotikOS](https://img.shields.io/badge/Mikrotik_ROS-v7.3.1-blue)
![Grafana](https://img.shields.io/badge/Grafana-v8.3.4-orange?logo=grafana) ![Grafana](https://img.shields.io/badge/Grafana-v9.0.0-orange?logo=grafana)
![Prometheus](https://img.shields.io/badge/Prometheus-v2.33.0-red?logo=prometheus) ![Prometheus](https://img.shields.io/badge/Prometheus-v2.36.0-red?logo=prometheus)
![snmp_exporter](https://img.shields.io/badge/snmp__exporter-v0.20.0-red?logo=prometheus) ![snmp_exporter](https://img.shields.io/badge/snmp__exporter-v0.20.0-red?logo=prometheus)
[![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/~1772367/donate) [![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/~1772367/donate)
@ -24,7 +24,7 @@ curl -fsSL https://raw.githubusercontent.com/IgorKha/Grafana-Mikrotik/master/run
--config: change the user and password to grafana and specify the mikrotik IP address --config: change the user and password to grafana and specify the mikrotik IP address
stop: stop docker containers --stop: stop docker containers
--help --help
``` ```

32
run.sh
View file

@ -4,10 +4,10 @@
# You can also pass some arguments to script to set some these options: # You can also pass some arguments to script to set some these options:
# #
# --config: change the user and password to grafana and specify the mikrotik IP address # --config: change the user and password to grafana and specify the mikrotik IP address
# stop: stop docker containers # --stop: stop docker containers
# #
# For example: # For example:
# sh run.sh --config # bash run.sh --config
# #
############################################################################ ############################################################################
@ -15,6 +15,8 @@ set -e
REPO=Grafana-Mikrotik REPO=Grafana-Mikrotik
ENV_FILE=${ENV_FILE:-.env} ENV_FILE=${ENV_FILE:-.env}
ENV_FILE_GF=${ENV_FILE_GF:-.grafana}
ENV_FILE_PROMETHEUS=${ENV_FILE_PROMETHEU:-.prometheus}
#? Colors #? Colors
RED='\033[31m' RED='\033[31m'
@ -94,7 +96,7 @@ clone_git() {
router_ip() { router_ip() {
if [[ "${CONFIG}" = yes ]]; then if [[ "${CONFIG}" = yes ]]; then
IP=$(grep -R 'MIKROTIK_IP' "${ENV_FILE}" | cut -d= -f2) IP=$(grep -R 'MIKROTIK_IP' "${ENV_FILE_PROMETHEUS}" 2>&1 | cut -d= -f2)
echo -e "\n${BLUE}====================================" echo -e "\n${BLUE}===================================="
echo -e "\n${BOLD}Prometheus${RESET}\n" echo -e "\n${BOLD}Prometheus${RESET}\n"
if ask "Change target mikrotik IP address ? (current ${IP})" Y; then if ask "Change target mikrotik IP address ? (current ${IP})" Y; then
@ -102,12 +104,12 @@ router_ip() {
if [ -d "./${REPO}" ]; then if [ -d "./${REPO}" ]; then
sed -ri -e '/mikrotik_ip/s/(- ).*( #.*)/\1'"${IP}"'\2/g' \ sed -ri -e '/mikrotik_ip/s/(- ).*( #.*)/\1'"${IP}"'\2/g' \
${REPO}/prometheus/prometheus.yml ${REPO}/prometheus/prometheus.yml
sed -ri -e 's/^(MIKROTIK_IP=)(.*)$/\1'"$IP"'/g' "${ENV_FILE}" sed -ri -e 's/^(MIKROTIK_IP=)(.*)$/\1'"$IP"'/g' "${ENV_FILE_PROMETHEUS}"
echo -e "\n${GREEN}... Prometheus target IP changed to ${IP}" echo -e "\n${GREEN}... Prometheus target IP changed to ${IP}"
else else
sed -ri -e '/mikrotik_ip/s/(- ).*( #.*)/\1'"${IP}"'\2/g' \ sed -ri -e '/mikrotik_ip/s/(- ).*( #.*)/\1'"${IP}"'\2/g' \
./prometheus/prometheus.yml ./prometheus/prometheus.yml
sed -ri -e 's/^(MIKROTIK_IP=)(.*)$/\1'"${IP}"'/g' "${ENV_FILE}" sed -ri -e 's/^(MIKROTIK_IP=)(.*)$/\1'"${IP}"'/g' "${ENV_FILE_PROMETHEUS}"
echo -e "\n${GREEN}... Prometheus target IP changed to ${IP}" echo -e "\n${GREEN}... Prometheus target IP changed to ${IP}"
fi fi
return return
@ -145,8 +147,8 @@ grafana_credentials() {
read -rp 'Enter grafana Username: ' GF_USER read -rp 'Enter grafana Username: ' GF_USER
read -rsp 'Enter grafana Password: ' GF_PASSWD read -rsp 'Enter grafana Password: ' GF_PASSWD
sed -ri -e 's/^(GF_ADMIN_USER=)(.*)$/\1'"${GF_USER}"'/g' "${ENV_FILE}" sed -ri -e 's/^(GF_SECURITY_ADMIN_USER=)(.*)$/\1'"${GF_USER}"'/g' "${ENV_FILE_GF}"
sed -ri -e 's/^(GF_ADMIN_PASSWORD=)(.*)$/\1'"${GF_PASSWD}"'/g' "${ENV_FILE}" sed -ri -e 's/^(GF_SECURITY_ADMIN_PASSWORD=)(.*)$/\1'"${GF_PASSWD}"'/g' "${ENV_FILE_GF}"
else else
echo -e "Default Grafana: echo -e "Default Grafana:
User: ${YELLOW}admin${RESET} User: ${YELLOW}admin${RESET}
@ -156,19 +158,19 @@ grafana_credentials() {
fi fi
} }
docker() { docker-cmd() {
if [[ "${STOP}" = yes ]]; then if [[ "${STOP}" = yes ]]; then
if [ -d "./${REPO}" ]; then if [ -d "./${REPO}" ]; then
cd ${REPO} && docker-compose down cd ${REPO} && docker compose down
else else
docker-compose down docker compose down
fi fi
else else
if [[ -d "./${REPO}" ]]; then if [[ -d "./${REPO}" ]]; then
cd ${REPO} && docker-compose up -d cd ${REPO} && docker compose up -d
print_success print_success
else else
docker-compose up -d docker compose up -d
print_success print_success
fi fi
fi fi
@ -187,7 +189,7 @@ main() {
case $1 in case $1 in
--help) HELP=yes ;; --help) HELP=yes ;;
--config) CONFIG=yes ;; --config) CONFIG=yes ;;
stop) STOP=yes ;; --stop) STOP=yes ;;
esac esac
shift shift
done done
@ -195,7 +197,7 @@ main() {
help help
command_exists git command_exists git
command_exists docker-compose command_exists docker
#? init #? init
if [[ -d "./${REPO}" ]]; then if [[ -d "./${REPO}" ]]; then
@ -212,7 +214,7 @@ main() {
# Change UID:GID prometheus container to current user # Change UID:GID prometheus container to current user
sed -ri -e 's/^(CURRENT_USER=)(.*)$/\1'"$(id -u)\:$(id -g)"'/g' "${ENV_FILE}" sed -ri -e 's/^(CURRENT_USER=)(.*)$/\1'"$(id -u)\:$(id -g)"'/g' "${ENV_FILE}"
docker docker-cmd
} }
main "$@" main "$@"