linux时钟告警,Linux记录-告警脚本
#!/bin/bash
export JAVA_HOME=/app/jdk/jdk1.8.0_92
export HADOOP_CONF_DIR=/home/hdfs/balancer/hadoop-conf
rm -f hostname.txt
rm -f dfused.txt
rm -f hostdfs.txt
rm -f hostdfs_alert.txt
###获取大于97%的主机名和dfs used%
function checkdfs(){
echo "start checking hdfs used rate"
hdfs dfsadmin -report | grep -i "50010" | awk -F ":" ‘{print $2}‘| awk ‘{print $1}‘ > hostname.txt
hdfs dfsadmin -report | grep "DFS Used%" | awk -F ": " ‘{print $2}‘ | awk -F "%" ‘{print $1}‘ > dfused.txt
livesum=$(hdfs dfsadmin -report | grep "Live datanodes" | awk ‘{print $3}‘ | awk -F "):" ‘{print $1}‘ | awk -F "(" ‘{print $2}‘)
echo $livesum
sed -i ‘1d‘ dfused.txt
let livesum+=1
sed -i $livesum‘,$d‘ dfused.txt
sed -i $livesum‘,$d‘ hostname.txt
linesum=$(cat hostname.txt | wc -l)
echo $linesum
harr=($(awk ‘{print $1}‘ hostname.txt))
darr=($(awk ‘{print $1}‘ dfused.txt))
if [ $linesum -gt 0 ]
then
for (( i = 0 ; i < ${#harr[@]} ; i++ ))
do
for (( j = 0 ; j < ${#darr[@]} ; j++ ))
do
if [ $i -eq $j ]
then
echo ${harr[$i]} ":" ${darr[$j]} >> hostdfs.txt
fi
done
done
else
echo "Not Live Datanodes"
fi
ddarr=($(cat hostdfs.txt | awk ‘$3>97{print $3}‘ |sort -ru))
for (( m = 0; m< ${#ddarr[@]} ; m++ ))
do
if [[ $(echo $(cat hostdfs.txt) | grep "${ddarr[$m]}") != "" ]]
then
echo $(cat hostdfs.txt | grep "${ddarr[$m]}" | awk ‘NR==1{print $1}‘) ":" ${ddarr[$m]} >> hostdfs_alert.txt
fi
done
}
checkdfs
url="http://xxx/monitor/report/sendReport"
linenum=$(cat hostdfs_alert.txt | wc -l)
let linenum+=1
echo $linenum
#上报数据
function postdfs(){
for (( k = 1; k< $linenum ; k++ ))
do
key=$(echo $(sed -n "$k p" hostdfs_alert.txt | awk -F ":" ‘{print "bdp.ops."$1".##cluster=bdp##env=prod"}‘) | awk ‘{gsub(/[[:blank:]]*/,"",$0);print $0;}‘ )
echo $key >>key.txt
value=$(sed -n "$k p" hostdfs_alert.txt | awk -F ": " ‘{print $2}‘)
data="{\"key\":\"$key\",\"value\":\"$value\"}"
echo $data
cmd="curl -s -X POST -H ‘Content-type‘:‘application/json‘ -d ‘${data}‘ ${url}"
sh -c "$cmd"
done
}
postdfs
data_expression="x>97"
data_time=5
data_count=1
data_alertMode="1,2,3"
data_members="01384016"
add_url="http://xxx/monitor/rule/addReport"
keynum=$(cat key.txt | wc -l)
let keynum+=1
echo $keynum
function dfsalert(){
for((n=1;n
do
data_key=$(sed -n "$n p" key.txt | awk ‘{print $1}‘)
str1=$(sed -n "$n p" key.txt | awk -F "." ‘{print $3"."$4"."$5"."$6}‘)
str2="以下主机IP HDFS使用已经超过97%:"
data_description=${str2}${str1}
add_data="{\"id\":\"$data_key\",\"expression\":\"$data_expression\",\"time\":$data_time,\"count\":$data_count,\"alertMode\":\"$data_alertMode\",\"members\":\"$data_members\",\"description\":\"$data_description\"}"
echo $add_data
add_cmd="curl -s -X POST -H ‘Content-type‘:‘application/json‘ -d ‘${add_data}‘ ${add_url}"
sh -c "$add_cmd"
done
}
dfsalert
linux时钟告警,Linux记录-告警脚本相关推荐
- Linux中的无人职守安装脚本kickstart
Linux中的无人职守安装脚本kickstart 1 kickstart自动安装脚本的作用 2 实验环境 3 kickstart自动安装脚本的制作 3.1 通过模板生成kickstart文件 3.2用 ...
- linux terminal教程,Linux入门教程 - 如何记录和重放Linux终端会话
原标题:Linux入门教程 - 如何记录和重放Linux终端会话 来自:https://www.linuxmi.com/replay-linux.html 使用命令,我们可以在type文件中记录终端会 ...
- 视频教程-Kali Linux渗透测试全程课与脚本语言编程系列课程-渗透测试
Kali Linux渗透测试全程课与脚本语言编程系列课程 本人有多年的服务器高级运维与开发经验,擅长计算机与服务器攻防及网络攻防技术!对网络安全领域有持续的关注和研究! 林晓炜 ¥899.00 立即订 ...
- PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...
- linux进程时钟时间,Linux的时钟
Linux的时钟 作者:linuxer 发布于:2017-5-17 18:55 分类:时间子系统 一.前言 时钟或者钟表(clock)是一种计时工具,每个人都至少有一块,可能在你的手机里,也可能佩戴在 ...
- linux内核时钟工作原理,需要学习并了解Linux时钟的原理及其应用
一.前言 时钟或者钟表(clock)是一种计时工具,每个人都至少有一块,可能在你的手机里,也可能佩戴在你的手腕上.如果Linux也是一个普通人的话,那么她的手腕上应该有十几块手表,包括:CLOCK_R ...
- 【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-汇总 ( Chapter1-Chapter16 )
一.初识 Linux shell Linux 系统可划分为以下 4 部分. Linux 内核 GNU 工具 图形化桌面环境 应用软件 内核主要负责以下 4 种功能. 系统内存管理 内核通过硬盘上称为交 ...
- 基于全志A33开发板linux系统移植学习记录(Boot0)
基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...
- Linux 时钟管理
Linux 时钟管理 时钟管理是操作系统不可或缺的一个重要组成部分.无论是应用程序还是内核本身都在大量使用各种各样的timer.本文介绍了Linux操作系统曾经使用和现在正在使用的时钟管理机制,着重阐 ...
- 【Linux时钟系统】
Linux系统时间 时间设备![在这里插入图片描述](https://img-blog.csdnimg.cn/7c50db7d72ba4ff5a0f1264629769184.png) RTC时钟系统 ...
最新文章
- oracle统计id出现次数,oracle 统计sql
- JAVA实现简单链表操作
- oracle学习笔记一
- Compliments 计算机术语,2016年9月统考计算机复习题.doc
- Nginx使用Location匹配URL进行伪静态
- Go 内存对齐的那些事儿
- 数据仓库相关书籍调研
- golang利用json.Unmarshal转json为map、slice类型
- 解决:System.Data.SqlClient.SqlException: 超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)....
- 如何解决NDK toolchains出现ABI mips64el-linux-android无法编译问题
- 【2021】【论文笔记】太赫兹量子阱光电探测器——
- Unity WebGL基于js通信实现网页录音
- 替罪羊树的原理及实例
- The number of method references in a .dex file cannot exceed 64K. Error 解决方案
- WebRTC视频码率控制(一)—— CPU使用度检测
- 学Linux有哪些就业方向?
- 学习笔记1--自动驾驶系统架构
- matlab读取串口数据并显示曲线
- 配电室环境监控系统,实现电力设备监控的无人化
- 【在虚拟机上安装windows系统】
热门文章
- redis 持久化详解 RDB和AOF 优缺点
- Proxy error: Could not proxy request /admin/myResources.do from localhost.jd.com:41000 to http://loc
- Storm 03_Storm 架构设计
- vscode 经过跳板机,连接到内网服务器
- ZooKeeper实战(一):ZooKeeper原理,详细安装步骤,基本命令,节点间通信原理
- 算法设计与分析 矩阵连乘问题 动态规划
- @SessionAttributes 和 @SessionAttribute的区别
- flex与java间用json传输数据,如何在Java中使用flexjson通过@JSON注释控制序列化?
- android 禁用dlsym_Android7.0对dlopen的改变——读取私有.so结果变化
- C/C++ 指针和数组