监控线上错误日志
2016-08-15 16:24
330 查看
需求:监控线上的错误日志,有新错误时,将错误信息发送到指定人的邮箱上。
思路:
1、根据线上日志文件的总条数来判断是否新增内容
2、记录上一次的总条数,作为提取日志增量的其实行数
3、将新增内容发送至邮箱
代码:
#!/bin/bash
day=`date +"%y%m%d"`
#服务器日志位置
server_log=/tmp/app-${day}.log
LOG_NUM=/tmp/lognum${day}.log
server_ip="ip1 ip2 ip3 ip4"
for server in ${server_ip}
do
LOCAL_LOG_NUM=${LOG_NUM}${server}
if [ ! -f "${LOCAL_LOG_NUM}" ];then
echo 0 > ${LOCAL_LOG_NUM}
fi
#服务器当前日志条数
server_num=`ssh root@${server} cat ${server_log} | wc -l`
#本地上次记录条数
local_num=`cat ${LOCAL_LOG_NUM}`
if [ ${server_num} -ne ${local_num} ];then
from_num=`expr ${local_num} + 1`
content=`ssh root@${server} tail -n +${from_num} ${server_log}`
echo ${content} | mail -s "php error log from server:${server}" xueshengguo@u51.com
# echo new message from ${server}
echo ${server_num} > ${LOCAL_LOG_NUM}
fi
done
问题:
1、如果网络出错没有一些预警机制
2、晚上0点的时候会出现一些问题
思路:
1、根据线上日志文件的总条数来判断是否新增内容
2、记录上一次的总条数,作为提取日志增量的其实行数
3、将新增内容发送至邮箱
代码:
#!/bin/bash
day=`date +"%y%m%d"`
#服务器日志位置
server_log=/tmp/app-${day}.log
LOG_NUM=/tmp/lognum${day}.log
server_ip="ip1 ip2 ip3 ip4"
for server in ${server_ip}
do
LOCAL_LOG_NUM=${LOG_NUM}${server}
if [ ! -f "${LOCAL_LOG_NUM}" ];then
echo 0 > ${LOCAL_LOG_NUM}
fi
#服务器当前日志条数
server_num=`ssh root@${server} cat ${server_log} | wc -l`
#本地上次记录条数
local_num=`cat ${LOCAL_LOG_NUM}`
if [ ${server_num} -ne ${local_num} ];then
from_num=`expr ${local_num} + 1`
content=`ssh root@${server} tail -n +${from_num} ${server_log}`
echo ${content} | mail -s "php error log from server:${server}" xueshengguo@u51.com
# echo new message from ${server}
echo ${server_num} > ${LOCAL_LOG_NUM}
fi
done
问题:
1、如果网络出错没有一些预警机制
2、晚上0点的时候会出现一些问题
相关文章推荐
- 使用 gooreplacer 解决 stackoverflow 网站缓慢问题
- tomcat启动报错java.lang.IllegalArgumentException
- 转运维的兄弟分享一案例
- 业务系统权限控制模型-RBAC
- linux grep命令
- centos安装vmware
- linux 挂载img文件 的方法
- linux下MySQL安装及设置
- Linux常用Shell脚本珍藏【转载】
- docker下tomcat环境搭建
- Cobbler自学之配置依赖
- k8s HA 高可用集群之etcd集群
- 嵌入式Linux内核配置、裁剪与编译浅析(ARM版)
- linux脚本总结
- Zookeeper安装、监控前提配置
- OSC杭州源创会体验:它指点了我们的未来
- DBUtils
- linux系统下文件查找
- [CentOS Server] Bug when calling matlab in bash
- tensorflow build source shell __ for centos