当前位置: 首页 > 科技观察

在Linux上用Bash脚本监控消息日志

时间:2023-03-22 16:44:06 科技观察

市面上有很多开源的监控工具可以用来监控Linux系统的性能。当系统达到指定的阈值限制时,它会发送电子邮件警报。它可以监控CPU利用率、内存利用率、交换区利用率、磁盘空间利用率等所有内容。如果您的系统很少并且想要监视它们,那么编写一个小的shell脚本可以使您的任务变得非常简单。在本教程中,我们添加了一个shell脚本来监视Linux系统上的消息日志。我们过去添加了许多有用的shell脚本。如果您想查看这些内容,请导航至以下链接。如何使用shell脚本监控系统的日常活动?此脚本将检查/var/log/messages文件中的“警告”、“错误”和“严重”,如果发现任何相关内容,它将向指定的电子邮件地址发送电子邮件。如果服务器有很多匹配的字符串,我们就不能经常运行这个可能会填满收件箱的脚本,我们可以每天运行一次。为了解决这个问题,我让脚本以不同的方式触发电子邮件。如果在/var/log/messages文件中昨天的日志中找到任何给定的字符串,脚本将向给定的电子邮件地址发送电子邮件警报。注意:您需要更改您的电子邮件地址,而不是我们的。#vi/opt/scripts/os-log-alert.sh#!/bin/bash#设置等于zeroprev_count=0count=$(grep-i"`date--date='yesterday''+%b的变量%e'`"/var/log/messages|egrep-wi'warning|error|critical'|wc-l)if["$prev_count"-lt"$count"];then#当在日志中发现错误时发送邮件到给定的电子邮件IDSUBJECT="WARNING:Errorsfoundinlogon"`date--date='yesterday''+%b%e'`""#这是一个临时文件,它是为存储电子邮件而创建的。MESSAGE="/tmp/logs.txt"TO="2daygeek@gmail.com"echo"注意:在/var/log/messages中发现错误。请与Linux管理员联系。">>$MESSAGEecho"主机名:`hostname`">>$MESSAGEecho-e"\n">>$MESSAGEecho"+--------------------------------------------------------------------------------+">>$MESSAGEecho"错误信息ges在日志文件中如下所示">>$MESSAGEecho"+--------------------------------------------------------------------------------+">>$MESSAGEgrep-i"`date--date='yesterday''+%b%e'`"/var/log/messages|awk'{$3="";print}'|egrep-wi'warning|error|critical'>>$MESSAGEmail-s"$SUBJECT""$TO"<$MESSAGE#rm$MESSAGEfi为os-log-alert.sh文件设置可执行权限$chmod+x/opt/scripts/os-log-alert.sh最后添加了一个cron作业来自动执行此操作。它将在每天7点运行。#crontab-e07***/bin/bash/opt/scripts/os-log-alert.sh注意:你会在每天7:00收到昨天日志的邮件提醒输出:你会收到如下邮件提醒。注意:在/var/log/messages中发现错误。请与Linux管理员联系。+--------------------------------------------------+日志文件中的错误信息如下+--------------------------------------------------+7月3日02:40:11ns1内核:php-fpm[3175]:299ip000055dfe7cc7e25sp00007ffd799d7d38错误4中的段错误php-fpm[55dfe7a89000+3a7000]7月3日02:50:14ns1内核:lmtp[8249]:20ip00007f9cc05295e4sp00007ffc57bca1a0错误4在libdovecot-storage.so.0.0.0[7f9cc030+14J1df]:36:09ns1内核:php-fpm[17846]:299ip000055dfe7cc7e25sp00007ffd799d7d38错误4在php-fpm[55dfe7a89000+3a7000]7月3日15:45:54ns1纯ftpd:(8.@62.18)[警告]用户身份验证失败[daygeek]7月3日16:25:36ns1pure-ftpd:(?@104.140.148.58)[警告]抱歉,此服务器不接受明文会话和弱密码。#012请重新连接使用TLS安全机制。7月3日16:44:20ns1内核:php-fpm[8979]:299ip000055dfe7cc7e25sp00007ffd799d7d38错误4在php-fpm[55dfe7a89000+3a7000]