离线安装一个可视化监控组件的shell

打算整一套自动化安装集群可视化监控的东西,采用开源的telegra+influxdb+grafana
分别下载好了对应的版本也安装了一下
想利用脚本来自动化安装rpm,如果直接安装rpm包  [ -f  *rpm ] 的话,是不可行的,报找不到文件或目录的错
参考了下网上的资料,原来需要把安装的rpm包名发到一个文件中,遍历这个文件来安装
但是在安装之前,有些依赖是要安装的。需要通过yum命令来提前查看是否已经提前安装好了依赖
telegra  和 garfana是 需要的安装依赖的,我的依赖安装是通过yum来安装的
也就是说要把需要的依赖也放入到文件中,一次读取并yum安装

目录:
yum_list.txt
rpm_list.txt
install.sh
influxdb-0.11.1-1.x86_64.rpm
grafana-5.0.4-1.x86_64.rpm
telegraf-0.11.1-1.x86_64.rpm

rpm_list.txt的内容:
influxdb-0.11.1-1.x86_64.rpm
grafana-5.0.4-1.x86_64.rpm
telegraf-0.11.1-1.x86_64.rpm

yum_list.txt的内容:
freetype-devel    
fontconfig    
urw-fonts
lsof

思路:
1  yum list installed 看有没有上述的  没有的话,就yum 安装
2   在rpm_list.txt中遍历安装rpm软件
3   利用sed 修改telegraf的配置文件

4   利用EOF实现交互,建立influx的库和用户名密码


实现的结果是:

只需要两步就可以简单配置一个本地的主机状态可视化监控

下载   telegra+influxdb+grafana  目录 ,然后执行install.sh  的命令,即可在xxxx:8083可以访问 influx  ,在 xxxx:3000可以访问grafana  ,在grafana中配置好influx数据源,以及显示模板。


 命令  :     ./install.sh   yum_list.txt  rpm_list.txt 

install.sh

#!/bin/bash
if [ $# -ne 2 ]
then
 echo "Usage:xx"
 exit 1
fi


errfile=./'date %Y%m%d%H%m%S'.err
#yum安装依赖
yum_list=$1
yum list installed > yum_list_installed.txt
for a in $(cat $yum_list)
do
 if cat yum_list_installed.txt | grep $a  &>/dev/null
 then
    &>/dev/null
 else
    yum install -y $a  2>>errfile
 fi
done


rm -rf yum_list_installed.txt


#安装rpm包
rpm_list=$2
for b in $(cat $rpm_list)
do
 rpm -qa | grep $b &>/dev/null
 if [ $? -ne 0 ]
 then
  rpm -Uvh $b 2>>errfile
 fi
done




#启动influxdb服务
/etc/init.d/influxdb start
#修改telegraf的配置文件
sed -i -f /usr/local/telegra+influxdb+grafana/change_telegraf_conf.sed  /etc/telegraf/telegraf.conf
#启动telegraf服务
/etc/init.d/telegraf  start


#把grafana作为自启动
sudo /sbin/chkconfig --add grafana-server
#启动grafana服务
sudo service grafana-server start


#在influx中建立库(telegraf中指定的)
/usr/bin/influx  << EOF  >> errfile
create database telegraf
use telegraf
create user "telegraf" with password 'telegraf' with all privileges
exit
EOF
目录:

猜你喜欢

转载自blog.csdn.net/yyqq188/article/details/79786892