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 ...
随机推荐
- linux下启动tomcat时卡在Deploying web application directory
找到jdk1.x.x_xx/jre/lib/security/Java.security文件,在文件中找到securerandom.source这个设置项,将其改为: securerandom.sou ...
- java Unicode和UTF-8之间转换
utf-8转unicode public static String utf8ToUnicode(String inStr) { char[] myBuffer = inStr.toCharArray ...
- Linux学习笔记之tail命令显示最后n行
tail :输出文件的最后几行. 用于linux查看日志的时候很方便,假如日志文件为:Console.log用法:1. tail Console.log tail # 输出文件最后10行的内容 2. ...
- 记CentOS 发布.NET Core 2.0
centos 7.x sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e & ...
- C# DataTable、DataSet、List、相互转换
DataTable转LIst /// <summary> /// 利用反射将DataTable转换为List<T>对象 /// </summary> /// & ...
- C# vb .net实现马赛克焦距像素化特效滤镜
在.net中,如何简单快捷地实现Photoshop滤镜组中的马赛克焦距像素化效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置 ...
- Java 之 JSP
一.JSP 概述 Java Server Pages:java 服务器页面.页面中既可以指定定义 html标签,也可以定义 Java 代码. 二.原理 JSP 本质上就是一个 Servlet. 原理示 ...
- Celery:Daemonization
参考文档:http://docs.celeryproject.org/en/latest/userguide/daemonizing.html#daemonizing
- 基于Text-CNN模型的中文文本分类实战
Text-CNN 1.文本分类 转眼学生生涯就结束了,在家待就业期间正好有一段空闲期,可以对曾经感兴趣的一些知识点进行总结. 本文介绍NLP中文本分类任务中核心流程进行了系统的介绍,文末给出一个基于T ...
- Linux正则表达式、shell基础、文件查找及打包压缩
Linux正则表达式.shell基础.文件查找及打包压缩 一.正则表达式 Linux正则表达式分为2类: 1.基本正则表达式(BRE) 2.扩展正则表达式(ERE) 两者的区别: 1.使用扩展正则表达 ...