docker promthues grafana node_export(只弄了centos,ubuntu还没弄)

请注意:执行脚本前;确认是否安装了docker 新版本(我这里只会检查是否有docker)

#!/bin/bash

#函数要放在最上面

IP=`ip addr show | grep 'inet ' | grep -v '10\.' | grep -v '172\.1[6-9]' | grep -v '172\.2[0-9]' | grep -v '172\.3[0-1]' | grep -v '192\.168'|grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1`

centos-install() {

ps -elf | grep prometheus| grep -v grep

if [ $? -eq 0 ]; then

    echo "###############Prometheus is installed###############"

else

echo  "###################install  promthues #############################"

    # /opt/prometheus/data目录,准备用来挂载放置prometheus的数据

    # /opt/prometheus/config目录,准备用来放置prometheus的配置文件

    # /opt/prometheus/rules目录,准备用来挂载放置prometheus的规则文件

    mkdir -p /opt/prometheus/{data,config,rules}

    # 授权相关文件夹权限

    chmod -R 777 /opt/prometheus/data

    chmod -R 777 /opt/prometheus/config

    chmod -R 777 /opt/prometheus/rules

# 配置文件

cat > /opt/prometheus/config/prometheus.yml << EOF

global:

  # 数据采集间隔

  scrape_interval:     45s

  # 告警检测间隔

  evaluation_interval: 45s

# 告警规则

rule_files:

  # 这里匹配指定目录下所有的.rules文件

  - /prometheus/rules/*.rules

# 采集配置

scrape_configs:

  # 采集项(prometheus)

  - job_name: 'prometheus'

    static_configs:

      # prometheus自带了对自身的exporter监控程序,所以不需额外安装exporter就可配置采集项

      - targets: ['$IP:9100']

EOF

    # 查看一下配置文件

    cat /opt/prometheus/config/prometheus.yml

    docker run --name prometheus -d -p 9090:9090  -v /etc/localtime:/etc/localtime:ro  -v /opt/prometheus/data:/prometheus/data  -v /opt/prometheus/config:/prometheus/config -v /opt/prometheus/rules:/prometheus/rules  prom/prometheus:v2.41.0 --config.file=/prometheus/config/prometheus.yml --web.enable-lifecycle

fi

#######################################################################################################

ps -elf | grep grafana| grep -v grep

if [ $? -eq 0 ]; then

    echo "###############grafana  is installed###############"

else

echo  "###################install grafana #############################"

    # /opt/grafana/data目录,准备用来挂载放置grafana的数据

    # /opt/grafana/plugins目录,准备用来放置grafana的插件

    # /opt/grafana/config目录,准备用来挂载放置grafana的配置文件

    mkdir -p /opt/grafana/{data,plugins,config}

    # 授权相关文件夹权限

    chmod -R 777 /opt/grafana/data

    chmod -R 777 /opt/grafana/plugins

    chmod -R 777 /opt/grafana/config

    docker pull grafana/grafana:9.3.2

    # 先临时启动一个容器

    docker run --name grafana-tmp -d -p 3000:3000 grafana/grafana:9.3.2

    # 将容器中默认的配置文件拷贝到宿主机上

    docker cp grafana-tmp:/etc/grafana/grafana.ini /opt/grafana/config/grafana.ini

    # 移除临时容器

    docker stop grafana-tmp

    docker rm grafana-tmp

    # 修改配置文件(需要的话)

    # vim /opt/grafana/config/grafana.ini

docker run -d  -p 3000:3000 --name=grafana -v /etc/localtime:/etc/localtime:ro -v /opt/grafana/data:/var/lib/grafana  -v /opt/grafana/plugins/:/var/lib/grafana/plugins  -v /opt/grafana/config/grafana.ini:/etc/grafana/grafana.ini  -e "GF_SECURITY_ADMIN_PASSWORD=admin"   -e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource,grafana-piechart-panel"  grafana/grafana:9.3.2

fi

#############################################################################################################

ps -elf | grep node_exporter| grep -v grep

if [ $? -eq 0 ]; then

    echo "###############node_exporter   is installed###############"

else

cd /root/

wget  https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz

tar -xvf node_exporter-1.1.2.linux-amd64.tar.gz

cd node_exporter-1.1.2.linux-amd64

nohup ./node_exporter  --web.listen-address=":9100" &

fi

#echo "当前firewalld 状态",然后防火墙加端口

sudo firewall-cmd --permanent --add-port=3000/tcp

sudo firewall-cmd --permanent --add-port=9100/tcp

sudo firewall-cmd --permanent --add-port=9090/tcp

sudo firewall-cmd --reload

systemctl restart firewalld.service

echo "###############################################################################"

echo "http://$IP:3000"

echo "http://$IP:9100"

echo "http://$IP:9090"

echo "tempalte  Linux主机详情 | Grafana Labs"

}

ubuntu-install() {

    echo ubunut

}

###################################################################################################################################################################################################################

#判断docker是否安装,且docker版本是否大于25

docker --version 2>/dev/null

if [ $? -eq 0 ]; then

    echo "docker已安装"

    systemctl start docker

else

    echo “docker 未安装;请确认”

    exit 1

fi

# 检查系统中是否存在 apt 或 rpm 命令

if which apt &> /dev/null; then

    echo "系统使用 apt 包管理器"

    # 执行 apt 相关的命令

    sudo apt update 2>/dev/null

#    sudo apt upgrade

    ubuntu-install

elif which rpm &> /dev/null; then

    echo "系统使用 rpm 包管理器"

    # 执行 rpm 相关的命令

    sudo yum update 2>/dev/null

#    sudo yum upgrade

    centos-install

else

    echo "未检测到 apt 或 rpm 包管理器"

    exit 1

fi

保存为bash.sh  即可;后续补上ubuntu的    至于roky系统的;只需要需要包管理用哪个即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值