脚本说明:
- RedHat系列操作系统
- 系统登录用户teld,根据实际情况可做替换
- rpm统一存放位置
/usr/local/rpm
- grafana相关存储位置在
/mnt/data/grafana
grafana.sh
#!/bin/bash
## version 2.0
## author:wuzw
# 创建rpm存放目录,进入此目录,下载rpm
if [ ! -d /usr/local/rpm ]; then
sudo mkdir -p /usr/local/rpm
sudo chown -R teld:teld /usr/local/rpm
echo "<<<<<<<<<<<<<<<<<<<<Directoty /usr/local/rpm created success.>>>>>>>>>>>>>>>>>>>>"
cd /usr/local/rpm
wget https://dl.grafana.com/oss/release/grafana-8.0.3-1.x86_64.rpm
else
echo "<<<<<<<<<<<<<<<<<<<<Directoty /usr/local/rpm already exist.>>>>>>>>>>>>>>>>>>>>"
sudo chown -R teld:teld /usr/local/rpm
cd /usr/local/rpm
wget https://dl.grafana.com/oss/release/grafana-8.0.3-1.x86_64.rpm
fi
sleep 2
# 创建grafana需要的目录
if [ ! -d /mnt/data/grafana ]; then
sudo mkdir -p /mnt/data/grafana/
sudo chown -R teld:teld /mnt/data/grafana
sudo mkdir /mnt/data/grafana/data
sudo mkdir /mnt/data/grafana/logs
sudo mkdir /mnt/data/grafana/dashboards
echo "<<<<<<<<<<<<<<<<<<<<Directoty data,logs,dashboards created success.>>>>>>>>>>>>>>>>>>>>"
cd /usr/local/rpm
else
echo "<<<<<<<<<<<<<<<<<<<<Directoty already exist.>>>>>>>>>>>>>>>>>>>>"
sudo chown -R teld:teld /mnt/data/grafana
cd /usr/local/rpm
fi
sleep 2
# 赋予rpm 执行权限
chmod +x /usr/local/rpm/grafana-8.0.3-1.x86_64.rpm
echo "<<<<<<<<<<<<<<<<<<<<Giving execute privilege success>>>>>>>>>>>>>>>>>>>>"
sleep 2
# 安装
sudo yum localinstall -y grafana-8.0.3-1.x86_64.rpm
echo "<<<<<<<<<<<<<<<<<<<<Yum installed success >>>>>>>>>>>>>>>>>>>>"
sleep 2
# 配置文件备份
sudo chown -R grafana:grafana /etc/grafana
if [ ! -f "/etc/grafana/grafana.ini" ]; then
echo "<<<<<<<<<<<<<<<<<<<<Config file not exist.>>>>>>>>>>>>>>>>>>>>"
touch /etc/grafana/grafana.ini
sudo chown grafana:grafana /etc/grafana/grafana.ini
sudo chmod 666 /etc/grafana/grafana.ini
echo "<<<<<<<<<<<<<<<<<<<<Created config file success. >>>>>>>>>>>>>>>>>>>>"
else
echo "<<<<<<<<<<<<<<<<<<<<Config file has already exist.>>>>>>>>>>>>>>>>>>>>"
sudo mv /etc/grafana/grafana.ini /etc/grafana/grafana.ini.bak
sudo touch /etc/grafana/grafana.ini
sudo chown grafana:grafana /etc/grafana/grafana.ini
sudo chmod 666 /etc/grafana/grafana.ini
echo "<<<<<<<<<<<<<<<<<<<<Backup config file. >>>>>>>>>>>>>>>>>>>>"
fi
# 写入配置文件
echo "<<<<<<<<<<<<<<<<<<<<Writing to config file... >>>>>>>>>>>>>>>>>>>>"
sleep 2
cat > /etc/grafana/grafana.ini << EOF
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
data = /mnt/data/grafana/data
# Directory where grafana can store logs
logs = /mnt/data/grafana/logs
# Change this option to false to disable reporting.
reporting_enabled = false
[dashboards.json]
enabled = false
path = /mnt/data/grafana/data/dashboards
[auth.ldap]
enabled = false
config_file = /etc/grafana/ldap.toml
# [server]
# domain = grafana.teld.net
# root_url = https://grafana.teld.net:443
#[database]
# Either "mysql", "postgres" or "sqlite3", it's your choice
# type = mysql
# host = 127.0.0.1
# name = grafana
# user = grafana
# password = qqqqqqqqqqqq
EOF
echo "<<<<<<<<<<<<<<<<<<<<Set configuration success. >>>>>>>>>>>>>>>>>>>>"
sleep 2
# 启动grafana
echo "<<<<<<<<<<<<<<<<<<<<Starting grafana... >>>>>>>>>>>>>>>>>>>>"
sudo systemctl start grafana-server
sleep 2
# 检查启动状态
echo "<<<<<<<<<<<<<<<<<<<<Here's grafana's state.>>>>>>>>>>>>>>>>>>>>"
sudo systemctl status grafana-server |grep Active| awk '{print $3}' | cut -d "(" -f2 |cut -d ")" -f1
sleep 2
echo "<<<<<<<<<<<<<<<<<<<<Adding grafana to startup. >>>>>>>>>>>>>>>>>>>>"
sudo systemctl enable grafana-server.service
echo "<<<<<<<<<<<<<<<<<<<<Added success.>>>>>>>>>>>>>>>>>>>>"
sleep 2
echo "<<<<<<<<<<<<<<<<<<<<All things done, please check the follow description about status.>>>>>>>>>>>>>>>>>>>>"
sudo systemctl restart grafana-server
sudo systemctl status grafana-server |grep Active| awk '{print $3}' | cut -d "(" -f2 |cut -d ")" -f1
2021/07/05 version2.0