check_monitor
#! /bin/bash
# 声明agent配置文件路径
CONF=/etc/sdata/zabbix/zabbix_agentd.conf
#CONF=/tmp/zabbix_agentd.conf
# -F指定=号切割,寻找关键字段Hostname打头的,用=切割后显示第二行的数值, 最后一位指定文件绝对路径
config_hostname=`awk -F "=" '/Hostname/{print $2}' $CONF`
# 执行hostname命令并将结果赋值给host
host=`hostname`
# cat redhat-release文件,使用 . 进行切割, 打印第一行,
osmaster=`cat /etc/redhat-release |awk -F '.' '{print $1}' |awk '{print $NF}'`
# -qa查询rpm安装的agent信息
pkg=`rpm -qa zabbix-agent| wc -l`
echo "############## Package #################"
# 如果小于1,说明没有安装
if [ $pkg -lt 1 ];then #回显信息
echo 'Need install monitor agent, Please excute command: "curl http://10.10.238.114:4507/repo/install.sh -o /tmp/install.sh && sh /tmp/install.sh"'
echo "########################################"
exit 1
else
echo "Monitor agent has been installed."
fi
# check zabbix status
echo "############## Status ##################"
# ps 查询进程信息
proc_num=`ps -ef|grep zabbix |wc -l`
# 大于1,说明已运行
if [ $proc_num -gt 1 ];then
STATUS=1
echo 'Monitor agent is running.'
else
STATUS=0
echo 'Monitor agent is stopped.'
fi
# check conf Hostname
echo "############## Config ##################"
echo -ne 'Check monitor agent conf Hostname: '
# 比较两个主机名是否相同
if [ "$config_hostname" != "$host" ];then
MODIFY=1
echo "Modify Monitor Agent Hostname: ${config_hostname} --> $host."
# 对值进行替换,在 $CONF指定的文件中, 寻找已Hostname=开头的字段,替换为$host指定的值, g全局
sed -i 's/^\(Hostname=\).*$/\1'$host'/g' $CONF
else
MODIFY=0
echo -ne "Hostname has no change.\n"
fi
# Start monitor agent
echo "############## Restart #################"
if [ $MODIFY -eq 1 ];then
if [ $STATUS -eq 1 ];then
echo "Modify config file, Restart Monitor Agent."
if [ $osmaster -eq 7 ];then
systemctl restart zabbix-agent
else
service zabbix-agent restart
fi
else
echo "Start Monitor Agent."
if [ $osmaster -eq 7 ];then
systemctl start zabbix-agent
else
service zabbix-agent start
fi
fi
else
if [ $STATUS -eq 0 ];then
echo "Start Monitor Agent."
if [ $osmaster -eq 7 ];then
systemctl start zabbix-agent
else
service zabbix-agent start
fi
else
echo "Monitor agent service is running normally."
echo "########################################"
exit 0
fi
fi
sleep 1
echo "############## Status ##################"
# check agent status
# 查看zabbix的进程数量
proc_num=`ps -ef|grep zabbix |wc -l`
如果大于1条,说明agent正常运行
if [ $proc_num -gt 1 ];then
echo 'Monitor Agent is running.'
else
echo 'Monitor Agent is stopped.'
if [ $osmaster -eq 7 ];then # 如果centos是7版本,回显命令让用户执行
echo "Please excute command: 'systemctl start zabbix-agent'"
else
echo "Please excute command: 'service zabbix-agent start'" # 回显非7版本的centos启动命令
fi
fi
echo "########################################"
check_monitor的更多相关文章
- Mysql高可用集群-解决MMM单点故障
目录 一.理论概述 组件介绍 三.部署 四.测试 五.总结 preface: MMM架构相比于MHA来说各方面都逊色不少,写这篇案例也算是整理下思路吧. 一.理论概述 MMM(Master-Maste ...
随机推荐
- SQL SERVER 数据库查询表信息
SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = ...
- Java常用函数式接口--Predicate接口使用案例
Java常用函数式接口--Predicate接口使用案例 该方法可以使用and来优化: 调用:
- c#mysql数据库备份还原
1:引用dll MySql.Data.dll, MySqlbackup.dll 2:建一个数据连接静态类 public static class mysql { public static str ...
- 常用正则表达式和一些demo
一.校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ ...
- CentOS -- 新建用户并使能密钥登录
目录 1. 新建用户 2. 为新用户授权 2.1. 方法一:把新用户添加到wheel用户组中 2.2. 方法二:把新用户添加到sudoers列表中 3. 新用户使能 SSH 密钥登录 4. 其它 4. ...
- Hybris产品主数据的价格折扣维护
登录Hybris backoffice的产品管理界面,进入price标签页,点击Create new Discount Row按钮: 在Discount下拉地段里选择10%的折扣,这个产品原来的单价是 ...
- idea安装与注册码破解
idea安装与注册码破解 https://www.cnblogs.com/jajian/p/7989032.html
- Python学习日记(二十七) 反射和几个内置函数
isinstance() 判断isinstance(obj,cls)中obj是否是cls类的对象 class Person: def __init__(self,name): self.name = ...
- Linux命令——whiptail交互式shell脚本对话框
转自:交互式shell脚本对话框----whiptail指令 当你在linux环境下setup软件的时候就会有相应的对话框让你输入.虽然我们已经习惯了这种交互的方法,但是如果有一种直观的界面来输入是不 ...
- Python入门篇-functools
Python入门篇-functools 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.reduce方法 reduce方法,顾名思义就是减少 reduce(function,se ...