阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

将shell脚本执行情况写入Rsyslog日志服务器

166次阅读
没有评论

共计 2075 个字符,预计需要花费 6 分钟才能阅读完成。

在运维工作中,免不了编写一些脚本交由计划任务(cron)去定时执行完成一些日常工作,实现运维工作自动化。比如在我的日常工作中备份数据是一项重要的工作,需要定时将数据备份到备份服器和一些其他的备份介质中。其中大部分的备份工作都是写到脚本当中,并编辑 /etc/crontab 去定时完成备份任务。这样节省了不少日常工作的压力。
为了监控脚本的执行情况,在编写脚本的时候将执行情况的情况追加写入到本地指定的日志文件当中,定期去查看这些文件来确保任务被正确的执行。
但是,随着需要备份的服务器的增多,执行查看日志的工作就变成了一种负担。通常是需要逐个登录每台服务器去检查日志文件。
为了解决上述问题,我打算将所有的备份日志写入到一台备份服务器当中,这样就可以实现日志的集中收集管理和查看了。为些我在前几天搭建了一台日志服务器用来收集每台服务器的日志信息(请参见:CentOS 6.7 搭建 Rsyslog 日志服务器)。
日志服务器也搭建完了,问题也出现了,如何将脚本中的执行情况写入到日志服务器中呢?其实,由于日志服务器已经搭建完成,只需要将需要记录信息写入到本地日志系统,那么本地 rsyslog 服务就会将日志信息同时写入到远端的日志服务器数据库中。

将自定义的信息写入到本地日志系统需要用到:logger 命令
logger 是一个 shell 命令接口,可以通过该接口使用 Syslog 的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。

使用方法举例:

logger -it error  -p local5.info "hello world"

-i 在每行都记录进程 ID
-t 日志中的每一行都加一个 error 标签
-p 指定自定义的日志设备和日志级别,相关内容参见文章附录
最后一个参数中的双引号 (“”) 中的文本内容就是自定义日志信息。在脚本中针对命令的执行结果 (echo $?) 进行 if 判断,然后使用 logger 输出不同的日志信息即可。如:

umount -l /mnt
if [`echo $?` -eq 0 ]; then
    logger -p local3.info "Umount /dev/sdd1 is OK!"
else
    logger -p local3.err "Umount /dev/sdd1 is Failure!"
fi

上面的脚本是卸载 U 盘或者移动硬盘时用到的角本。根据 echo $? 的返回值,将 info 或者 err 级别的自定义日志信息写入到系统日志中。配合 Rsyslog 服务器使用就可以实现 shell 脚本执行情况的集中收集与管理了。

附:日志类型和日志级别
日志类型

日志类型 说明
auth pam 产生的日志
authpriv ssh,ftp 等登录信息的验证信息
cron 时间任务相关
kern 内核
lpr 打印
mail 邮件
mark(syslog) rsyslog 服务内部的信息, 时间标识
news 新闻组
user 用户程序产生的相关信息
uucp unix to unix copy, unix 主机之间相关的通讯
local1~7 自定义的日志设备

日志级别
从上到下,级别从低到高,记录的信息越来越少 详细的可以查看手册: man 3 syslog

级别 说明 级别值
debug 有调式信息的,日志信息最多 7
info 一般信息的日志,最常用  
notice 最具有重要性的普通条件的信息  
warning 警告级别 4
err 错误级别,阻止某个功能或者模块不能正常工作的信息  
crit 严重级别,阻止整个系统或者整个软件不能正常工作的信息  
alert 需要立刻修改的信息  
emerg 内核崩溃等严重信息  
none 什么都不记录

————————————– 分割线 ————————————–

CentOS 上配置 rsyslog 客户端用以远程记录日志  http://www.linuxidc.com/Linux/2015-02/112989.htm

CentOS 6.3 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2013-07/86956.htm

使用 rsyslog mysql 和 logAnalyzer 的日志服务器 http://www.linuxidc.com/Linux/2012-09/70717.htm

Rsyslog 配置及使用教程  http://www.linuxidc.com/Linux/2015-02/113614.htm

RHEL5.4 部署中央日志服务器之 rsyslog+loganalyzer  http://www.linuxidc.com/Linux/2010-12/30801.htm

————————————– 分割线 ————————————–

Rsyslog 的详细介绍:请点这里
Rsyslog 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-06/132419.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2075字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中