使用Log4J监控系统日志邮件警报

前言

  在系统上线后,有时候遇到系统故障,这时候就可以登录服务器查看系统日志来排查问题。但是需要登录服务器,下载查找相关异常日志比较麻烦。而且没有监控的话,也无法实时了解到系统是否正常运行。那么有没有一种好办法将系统异常信息实时反馈给相关人员呢?

  本文讲的就是借助Log4J来记录程序运行日志,当一旦发现系统异常或者自己定义的其他一些情况发生时,及时通过邮件形式发送给相关负责人,并附上相关的系统日志信息,这样负责人就可以实时便捷的监控到系统的状态和相关异常信息。

另外

  需要了解Log4J组件的使用,可以查看我以前写的这篇博客:Log4J的配置与使用详解[戳我]

优点

  采用这种方式的优点有:

  1. 实时性。不用定期或不定期的登陆系统查看是否正常运行。
  2. 及时性。一旦系统异常,就会通知。
  3. 便捷性。邮件里附上异常日志,不用登陆系统下载日志查看。

环境

  导入依赖jar包:

  1. log4j-1.2.17.jar

  官网下载地址[戳我]

  目前log4j最新版是1.2.17。低版本的log4j无法实现邮件发送功能,因为版本低于log4j-1.2.14.jar的不支持SMTP认证。

  发送邮件的一个重要的类是SMTPAppender,在1.2.8的版本中,SMTPAppender没有SMTPUsername和SMTPPassword属性。这两个属性分别是登录SMTP服务器发送认证的用户名和密码。

  2. mail-1.4.jar

  发送邮件当然需要用到JavaMail包啦。

  3. activation-1.1.jar

配置

  配置log4j.properties文件,如下:

 1 log4j.rootLogger=DEBUG, MAIL
 2
 3 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
 4 log4j.appender.MAIL.Threshold=ERROR
 5 log4j.appender.MAIL.BufferSize=10
 6 log4j.appender.MAIL.From=123@qq.com
 7 log4j.appender.MAIL.SMTPHost=smtp.qq.com
 8 log4j.appender.MAIL.SMTPUsername=123
 9 log4j.appender.MAIL.SMTPPassword=***
10 log4j.appender.MAIL.SMTPDebug=false
11 log4j.appender.MAIL.Subject=Log4JErrorMessage
12 log4j.appender.MAIL.To=123@qq.com
13 log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
14 log4j.appender.MAIL.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c %x -- %m%n

  每行配置详解:

  3.log4j的邮件发送appender,如果有必要你可以写自己的appender。

  4.发送邮件的门槛,仅当等于或高于ERROR级别时,邮件才被发送。

  5.缓存文件大小,日志达到10k时发送Email。

  6.发送邮件的邮箱帐号。

  7.SMTP邮件发送服务器地址。

  8.SMTP发送认证的帐号名。

  9.SMTP发送认证帐号的密码。

  10.是否打印调试信息,如果选true,则会输出和SMTP之间的握手等详细信息

  11.邮件主题。

  12.发送到什么邮箱,如果要发送给多个邮箱,则用逗号分隔。

其他

  如果需要抄送给某人,则添加如下配置:

[email protected]

  想让邮件内容日志以HTML格式来输出,则配置:

log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout

  输出到邮件中显示如下图:

时间: 2024-10-07 03:36:47

使用Log4J监控系统日志邮件警报的相关文章

System Center 2012 R2实例3—部署SCOM监控SharePoint7—邮件警报

上一节中,我们对Sharepoint场内服务器配置了死活监视,当有服务器状态为脱机离线时,SCOM会收集状态并发出警报. 实际运用时,我们不可能实时紧盯着活动警报,但是可以通过配置 SCOM 所提供的邮件警报及通知功能,从而及时掌控服务器的运行状况. 接下来,我们配置邮件警报:由谁发,怎样发,发给谁,发什么. 本节所用账户如下: 名称 作用 权限 xcloud\sc_mailreport 邮件通知及接收用账号 域账户 1. 首先,创建运行账户 在管理画面中,点右键选择创建运行方式账户 指定账户类

Zabbix 3.0 监控交换机(2)——ICMP监控及邮件报警

将交换机加入到zabbix监控系统中之后,接下来应该做什么呢,对了,就是要实时的知道交换机的在线状态,这里使用ICMP监控和邮件报警来实现这个目的. 一.ICMP监控 Zabbix处理ICMP ping请求使用的fping这个命令,zabbix-3.0中默认是没有安装的,所以我们首先安装fping. 1.1 fping安装 下载fping 命令:cd /usr/local/src wget http://www.fping.org/dist/fping-3.13.tar.gz 解压fping 命

C#监控-机器资源监控:CPU、内存、C盘、D盘资源监控及邮件预警

针对CPU.内存.C盘.D盘资源监控及邮件预警,要实现在页面上配置资源监控选项,并且页面上能看到资源使用情况,超出阈值,邮件预警,效果图如下: 配置监控列表页 2. 配置监控详情页 3. 实时监控信息展示页 4. 监控信息图标展示 5. 超出阈值发送预警邮件 实现详情: 处于性能上的优化,每个监控都写成了个单例,并且通过多线程来取得各个监控数据 CPU监控 通过PerformanceCounter("Processor", "% Processor Time", &

如何给服务器设置邮件警报。

例如在windows server2008上,当磁盘空间不够,或者CPU利用率过高的时候如何设置邮件报警通知 管理员呢? 工具:1.blat.exe 发送邮件的命令行工具,替换工具为powershell脚本,参考http://stackoverflow.com/questions/18475519/send-email-alert-from-performance-monitor-using-powershell-script 或者powershell的cmdlet: Send-MailMess

shell脚本-监控及邮件提醒

首先写一个邮件提醒python文件 #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import smtplib import email.mime.multipart import email.mime.text server = 'smtp.163.com' port = '25' def sendmail(server,port,user,pwd,msg): smtp = smtplib.SMTP() smtp.connect(se

利用socket模块检查端口存活并邮件警报

可以用来监控一些端口. import socket def check_server(addr, port): s = socket.socket() try: s.connect((addr, port)) return True except socket.error: return False def alert(p): from email.mime.text import MIMEText import smtplib sender = "[email protected]"

Zabbix 监控交换机 邮件报警

Zabbix监控交换机设置方法 Zabbix邮件报警设置方法

Log4j配置发邮件功能

# 发送日志到指定邮件log4j.appender.mail=org.apache.log4j.net.SMTPAppenderlog4j.appender.mail.Threshold=DEBUGlog4j.appender.mail.BufferSize=10 [email protected] log4j.appender.mail.SMTPHost=smtp.qq.com#发送邮件箱的用户 [email protected]#发送邮件箱的密码 log4j.appender.mail.SM

zabbix基本监控,端口监控,WEB站点监控,邮件报警

zabbix 监控: zabbix版本:3.4.1 OS:centos7.3 php版本:7.0 nginx版本:1.12.1 mysql:mariadb10.2.7 安装zabbix: 安装依赖包: yum install –y autoconf automake imakelibxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bisonlibtool 下载zabbix源码包: http://sourceforg