打算整一套自动化安装集群可视化监控的东西,采用开源的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
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
目录: