首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >20.20 告警系统主脚本

20.20 告警系统主脚本

作者头像
运维小白
发布于 2022-01-06 06:09:35
发布于 2022-01-06 06:09:35
32900
代码可运行
举报
文章被收录于专栏:运维小白运维小白
运行总次数:0
代码可运行

告警系统主脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 main.sh内容
 #!/bin/bash
#Written by aming.
# 是否发送邮件的开关
export send=1
# 过滤ip地址
export addr=`/sbin/ifconfig |grep -A1 "ens33: "|awk '/inet/ {print $2}'`
dir=`pwd`
# 只需要最后一级目录名
last_dir=`echo $dir|awk -F'/' '{print $NF}'`
# 下面的判断目的是,保证执行脚本的时候,我们在bin目录里,不然监控脚本、邮件和日志很有可能找不到
if [ $last_dir == "bin" ] || [ $last_dir == "bin/" ]; then
    conf_file="../conf/mon.conf"
else
    echo "you shoud cd bin dir"
    exit
fi
exec 1>>../log/mon.log 2>>../log/err.log
echo "`date +"%F %T"` load average"
/bin/bash ../shares/load.sh
#先检查配置文件中是否需要监控502
if grep -q 'to_mon_502=1' $conf_file; then
    export log=`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'`
    /bin/bash  ../shares/502.sh
fi

告警系统主脚本

  • 定义监控系统的各个目录,然后再去定义主脚本,因为是分布式的,所以需要每一台机器都需要定义,事先创建好各个脚本和各个目录,随后脚本直接拷贝过去即可,然后再去做一些更改
  • 所有的shell脚本放到 /usr/local/sbin/ 目录下,方便查找
  1. 切换到 /usr/local/sbin/ 目录下,并创建子目录
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@hf-01 ~]# cd /usr/local/sbin/
[root@hf-01 sbin]# mkdir mon
[root@hf-01 sbin]# cd mon
[root@hf-01 mon]# ls
[root@hf-01 mon]# mkdir bin conf shares log mail
[root@hf-01 mon]# ls
bin  conf  log  mail  shares
[root@hf-01 mon]# 
  1. 切换到 bin 目录下(主脚本放在 bin 目录下,主脚本作为一个入口,应该去判断配置文件,查看某监控项目是否需要监控,还需调用各个需要监控的子脚本)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@hf-01 mon]# cd bin
[root@hf-01 bin]# ls
[root@hf-01 bin]# vim main.sh

 #!/bin/bash
#Written by aming.
# 是否发送邮件的开关,
export send=1
#只要把send 改成了1 ,就会给下面所有的监控的项目都会发送邮件,export表示所有的变量会应用在所有的子脚本里(若是系统处于维护状态,就需要关闭所有的服务,这时候就需要先把告警关闭,否则会一直发邮件)
# 过滤ip地址;可以加定义一个hostname,这样可以知道是哪台机器
export addr=`/sbin/ifconfig |grep -A1 "eno6777736: "|awk '/inet/ {print $2}'`
dir=`pwd`
# 找一下当前脚本所在的目录
# 只需要最后一级目录名
last_dir=`echo $dir|awk -F'/' '{print $NF}'`
# 下面的判断目的是,保证执行脚本的时候,我们在bin目录里,不然监控脚本、邮件和日志很有可能找不到
if [ $last_dir == "bin" ] || [ $last_dir == "bin/" ]; then
    conf_file="../conf/mon.conf"
else
    echo "you shoud cd bin dir"
    exit
fi
exec 1>>../log/mon.log 2>>../log/err.log
#日志记录
echo "`date +"%F %T"` load average"
#求出系统负载
/bin/bash ../shares/load.sh
#先检查配置文件中是否需要监控502,到配置文件中遍历一遍,看看是否需要监控502
if grep -q 'to_mon_502=1' $conf_file; then
    export log=`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'`
#找出log的路径
    /bin/bash  ../shares/502.sh
fi       

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/02/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
告警系统主脚本、主配置文件、监控项脚本 原
作用: 主脚本作为一个入口,判断某服务或项目是否需要监控调用需要监控的项目的子脚本。
阿dai学长
2019/04/03
5730
linux学习第六十七篇:告警系统主脚本,告警系统配置文件,告警系统监控项目
告警系统主脚本 把shell脚本放到/usr/local/sbin/下 创建mon目录来存放告警系统脚本。在/mon目录分别创建bin,conf,log,mail,shares 在bin下创建主脚本 main.sh内容 #!/bin/bash #Written by aming. # 是否发送邮件的开关 export send=1 # 过滤ip地址 export addr=`/sbin/ifconfig |grep -A1 "ens33: "|awk '/inet/ {print $2}'` dir=`
用户1215343
2018/03/29
1.1K0
【小项目】:使用shell编写一个简单的告警系统
在这之前的笔记里,将大部分的常用shell基本语法已经介绍完了,在这之后就是实战一些小项目了。这个项目是做一个简单的告警系统,用于完成一些简单个性化的需求。
端碗吹水
2020/09/23
6060
【小项目】:使用shell编写一个简单的告警系统
告警监控系统开发
一、需求分析 需求: 使用shell定制各种个性化告警工具,但需要统一化管理、规范化管理。 思路: 指定一个脚本包,包含主程序、子程序、配置文件、邮件引擎、输出日志等。 主程序: 作为整个脚本的入口,是整个系统的命脉。 配置文件: 是一个控制中心,用它来开关各个子程序,指定各个相关联的日志文件。 子程序: 这个才是真正的监控脚本,用来监控各个指标。 邮件引擎: 是由一个python程序来实现,它可以定义发邮件的服务器、发邮件人以及发件人密码。 输出日志: 整个监控系统要有日志输出。 要求: 我们的机器角色多
老七Linux
2018/05/09
1.6K0
学习笔记0618----shell脚本(二)
格式:函数必须要放在最前面,function 后是函数的名字,并且 function 这个单词是可以省略掉的,花括号{} 里面为具体的命令
嘻哈记
2020/11/24
1.8K0
Linux基础(day72)
20.16/20.17 shell中的函数 shell中的函数 把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。 函数就是一个子shell,就是一个代码段,定义完函数就可以引用它 格式: function 后是函数的名字,并且 function 这个单词是可以省略掉的 花括号{} 里面为具体的命令 格式: function f_name() { command
运维小白
2022/01/06
4980
Linux基础(day72)
101个shell脚本
emm。。这个脚本是因为tomcat没有自带的能够给service开机启动的脚本,我就琢磨着自己写了一个简单的启动脚本,如下:
端碗吹水
2020/09/23
1.5K0
101个shell脚本
Linux运维常用shell脚本之文件和字符串管理实例
编写shell脚本,将/usr/local/test目录下大于100k的文件转移到/tmp目录下:
菲宇
2022/12/02
6120
Linux Shell脚本案例
1.Dos攻击防范(自动屏蔽攻击IP) #!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2.access.log ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}') for IP in $ABNORMAL_IP; do if [ $(iptabl
用户7741497
2022/03/01
1.4K0
Linux基础(day70)
20.5 shell脚本中的逻辑判断 shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 格式2:if 条件; then 语句; else 语句; fi 格式3:if …; then … ;elif …; then …; else …; fi 逻辑判断表达式:if [ a -gt b ]; if [ a -lt 5 ]; if [ b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到处都是空格 可以使用
运维小白
2022/01/06
4640
实用Shell脚本
假设服务器为lnmp环境,近期访问经常出现502现象,且502错误在重启php-fpm服务后消失,因此编写监控脚本,一旦出现502,则自动重启php-
花落花相惜
2021/11/26
1.3K0
23 个非常实用的 Shell 拿来就用脚本实例
shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的有效方式。区区几行代码,就可以让计算机接近按照你的意图行事。
公众号机器学习与AI生成创作
2021/03/29
1K0
告警系统邮件引擎 原
(adsbygoogle = window.adsbygoogle || []).push({});
阿dai学长
2019/04/03
6300
超牛逼!100 个开箱即用的 Shell 脚本,拿好了~
shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的有效方式。区区几行代码,就可以让计算机接近按照你的意图行事。
民工哥
2021/05/11
1.6K0
18.3/18.4/18.5 用keepalived配置高可用集群
用keepalived配置高可用集群 准备两台机器130和132,130作为master,132作为backup 两台机器都执行yum install -y keepalived 两台机器都安装nginx,其中130上已经编译安装过nginx,132上需要yum安装nginx: yum install -y nginx 设定vip为100 编辑130上keepalived配置文件,内容获取地址 130编辑监控脚本,内容获取地址 给脚本755权限 systemctl start keepalived 130
运维小白
2018/02/06
1.2K0
18.3/18.4/18.5 用keepalived配置高可用集群
shell中的函数(function)、数组、告警系统分析
函数就是把一段代码整理到一个小单元中,并给这个小单元命名,当用到这段代码时直接调用这个小单元的名字即可。
阿dai学长
2019/04/03
5640
20.16/20.17 shell中的函数
shell中的函数 把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。 函数就是一个子shell,就是一个代码段,定义完函数就可以引用它 格式: function 后是函数的名字,并且 function 这个单词是可以省略掉的 花括号{} 里面为具体的命令 格式: function f_name() { command } 函数必须要放在最前面 示例1
运维小白
2022/01/06
2560
超实用!18 个开箱即用的 Shell 脚本,拿好了~
假设服务器环境为 lnmp,近期访问经常出现 502 现象,且 502 错误在重启 php-fpm 服务后消失,因此需要编写监控脚本,一旦出现 502,则自动重启 php-fpm 服务。
PHP开发工程师
2021/05/10
7060
超实用!18 个开箱即用的 Shell 脚本,拿好了~
Linux运维常用shell脚本之应用管理实例
     通过apache访问日志access.log 统计IP和每个地址访问的次数,按访问量列出前10名。      日志格式样例如下:      192.168.1.247  ---【02/jul/2010:23:44:59 + 8080 】 "GET /HTTP/1/1"   200 19      答案:          cat  access.log | awk '{print  $1}' |sort| uniq -c |sort -rn |head -10  (uniq 参数说明:– c 显示输出中,在每行行首加上本行在文件中连续出现的次数。      sort参数说明:sort默认的排序方式是升序,-r 参数就会改变成倒叙;你有没有遇到过10比2小的情况。我反正遇到过。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。)
菲宇
2022/12/02
9980
Linux/Unix shell 监控Oracle告警日志(monitor alter log file)
    使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等。本文给出Linux 下使用 shell 脚本来监控 Oracle 告警日志(monitor alter log file)。
Leshami
2018/08/14
8570
相关推荐
告警系统主脚本、主配置文件、监控项脚本 原
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验