精华内容
下载资源
问答
  • linux看日志文件

    2009-12-19 09:59:00
    [root@RHEL4_U5 vsftpd]# cat /etc/logrotate.d/vsftpd.log 看看日志文件,一般来说为什么登陆失败,失败原因都会说出来的,如果看不懂 日志的话把你的日志贴上来,CSDN大把强人。。。...

    [root@RHEL4_U5 vsftpd]# cat /etc/logrotate.d/vsftpd.log


    看看日志文件,一般来说为什么登陆失败,失败原因都会说出来的,如果看不懂

    日志的话把你的日志贴上来,CSDN大把强人。。。

    展开全文
  • Linux日志文件总结

    千次阅读 2016-08-10 15:53:49
    Linux日志文件总结近期做笔试题目,考察linux日志配置文件相关内容,由于对此不了解,故鸟哥的私房菜中的认识与分析日志文件一章,总结如下相关信息。 日志文件可以记录一个时间的何时、何地、何人、何事四大信息...

    Linux日志文件总结

    近期做笔试题目,考察linux日志配置文件相关内容,由于对此不了解,故看鸟哥的私房菜中的认识与分析日志文件一章,总结如下相关信息。

    日志文件可以记录一个时间的何时、何地、何人、何事四大信息,故系统出现故障时,可以查询日志文件。
    系统的日志文件默认都集中放置到/var/log/目录内,其中又以message记录的信息最多。
    日志文件记录的主要服务与程序为syslogd,klogd,log。
    syslogd的配置文件在/etc/syslog.conf中,内容语法为:服务.等级记载设备或文件。
    syslogd本身提供日志文件服务器的功能,通过修改/etc/sysconfig/syslog内容即可实现。
    logrotate程序利用crontab来进行日志文件的轮替功能。
    logwatch为centos 5默认提供的一个日志文件分析软件。

    日志文件的重要性主要体现在以下三方面:

    解决系统方面的错误
    解决网络服务的问题
    过往事件记录

    日志文件的权限通常是设置为root能够读取而已。由于日志文件可以记载系统很多的详细信息,所以一个有经验的主机管理员会随时随地查阅自己的日志文件,以掌握系统的最新动态。

    针对日志文件所需的功能,所需的服务与程序主要有:

    syslogd:主要登录系统与网络等服务的信息
    klogd:主要登录内核产生的各项信息
    logrotate:主要进行日志文件的轮替功能

    日志文件中的每条信息的主要数据如下:

    时间发生的日期与时间
    发生此事件的主机名
    启动此事件的服务名称(如samba,xinetd等)或函数名称(libpam)
    该信息的实际数据内容

    syslog的配置文件是/etc/syslog.conf,此文件规定了什么服务的什么等级以及需要被记录在哪里(设备或文件)这三个东西。

    日志文件的安全性:为了误删除日志信息,可以通过设置一个隐藏的属性来设置日志文件为只可以增加数据但不能被删除的状态。由于root可以在系统上面进行任何事情,所以将root这个账户的密码设置的安全一些。特别注意:当不小心改动过日志文件,如使用vi打开它,修改后,离开时执行:wq参数,则该文件将来不会再继续进行日志操作。可以通过执行 chattr +a 日志文件目录 来设置日志文件属性,防止日志文件被修改或删除。

    日志文件的轮替(logrotate):syslog利用的是daemon的方式来启动的,当有需求的时候立刻就会被执行,但是logrotate确实在规定的时间到了之后才进行日志文件的轮替,故logrotate程序挂在cron下面进行。在/etc/cron.daily/logrotate记录每天要进行的日志文件轮替行为。logrotate配置文件是/etc/logrotate.conf和/etc/logrotate.d,其中/etc/logrotate.conf为主要的参数文件,/etc/logrotate.d是一个目录,该目录中的所有文件都会被主动读入/etc/logrotate.conf当中来进行。

    日志分析,可以使用logwatch软件。

    路径 说明
    /var/log/message 包括整体系统信息,包括系统启动期间的日志。此外mail,cron,daemon,kern,auth等内容也记录在此日志中。
    /var/log/dmesg 包含一些内核缓冲信息,在系统启动时,会在屏幕上显示许多与硬件相关的信息。
    /var/log/auth.log 包含系统授权信息,如用户登录和使用的权限机制等
    /var/log/boot.log 包含系统启动的日志
    /varlog/daemon.log 包含各种系统后台守护进程的日志信息
    /var/log/dpkg.log 包含安全或dpkg命令清除软件包的日志
    /var/log/kern.log 包含内核产生的日志,有助于在定制内核时解决问题
    /var/log/lastlog 记录所有用户最近信息,它不是一个ASCII文件,需要使用lastlog命令查看内容
    /var/log/maillog /var/log/mail.log 包含着系统运行电子邮件服务器的日志信息
    /var/log/user.log 记录所有等级用户信息的日志
    /var/log/Xorg.x.log 记录来自X的日志信息
    /var/log/alternatives.log 更新替代信息都记录在这个文件中
    /var/log/btmp 记录所有失败登录信息。使用last命令可以查看btmp文件
    /var/log/cups 涉及所有打印信息日志
    /var/log/anaconda.log 安装Linux时,所有安全信息都存储在这个文件中
    /var/log/cron 每当cron进行开始一个工作时,就会将现相关信息记录在这个文件夹中
    /var/log/secure 包含验证和授权方面的信息。sshd会将所有信息记录在这里
    /var/log/wtmp /var/log/utmp 包含登录信息。wtmp可以找出谁正在登录进入系统,谁使用命令显示这个文件或信息等
    /var/log/faillog 包含用户登录失败信息。注意,错误登录命令也会被记录在此文件中
    /var/log/httpd /var/log/apache2 包含服务器access_log和error_log信息
    /var/log/lighttpd 包含light https的access_log和error_log
    /var/log/mail 子目录包含邮件服务器的额外日志
    /var/log/prelink 包含.so文件被prelink修改的信息
    /var/log/audit 包含被Linux audit daemon存储的信息
    /var/log/samba 包含samba存储的信息
    /var/log/sa 包含每日由sysstat软件包收集的sar文件
    /var/log/sssd 用户守护进程安全服务

    参看文献:Linux鸟哥私房菜

    展开全文
  • 日志文件中的error进行监控,当日志文件中出现error关键字时,就截取日志(grep -i error 不区分大小写进行搜索"error"关键字,但是会将包含error大小写字符的单词搜索出来),大家可以去这编 文章 1)第一类...

    对日志文件中的error进行监控,当日志文件中出现error关键字时,就截取日志(grep -i error 不区分大小写进行搜索"error"关键字,但是会将包含error大小写字符的单词搜索出来),大家可以去看这编 文章  

     1)第一类日志
    在每天的日志目录下生产的error日志,此日志文件每天都会自动生成,里面有没有error日志内容不一定,日志内容写入不频繁,日志文件比较小。
    举例说明:

    采用sendemail发送告警邮件,sendemail安装参考:http://www.cnblogs.com/kevingrace/p/5961861.html

    监控脚本路径:
    [root@fk-databus01 ~]# cd /opt/log_error_script/
    [root@fk-databus01 log_error_script]# ll
    total 20
    -rw-r--r-- 1 root root 3782 Jun 29 12:13 DEJ_0001_error.log
    -rwxr-xr-x 1 root root 4274 Jun 29 11:38 prcc_log_error.sh
    -rwxr-xr-x 1 root root 1142 Feb 13 10:51 sendemail.sh
          
    监控脚本内容
    [root@fk-databus01 log_error_script]# cat prcc_log_error.sh
    #!/bin/sh
    ERROR_LOG=`/bin/ls /data/log/sedsb/$(date +%Y%m%d)/DEJ_0001_error*`
    ERROR_NEW_LOG=/opt/log_error_script/DEJ_0001_error.log
    DATE=`date +%Y年%m月%d日%H时%M分%S秒`
    HOST=`/bin/hostname`
    IP=`/sbin/ifconfig|grep "inet addr"|grep "Bcast"|cut -d":" -f2|awk -F" " '{print $1}'`
    ERROR_MESSAGE=$(/bin/grep -A20 "$(grep "ERROR" $ERROR_LOG|tail -1|awk '{print $1,$2,$3,$4}')" $ERROR_LOG)
        
    DIR=/data/log/sedsb/$(date +%Y%m%d)
    FILE=/data/log/sedsb/$(date +%Y%m%d)/DEJ_0001_error_$(date +%Y%m%d).0.log
         
    if [ ! -d $DIR ];then
       /bin/mkdir $DIR
    fi
         
    if [ ! -f $FILE ];then
       /bin/touch $FILE
    fi
         
    /bin/chown -R zquser.zquser $DIR
     
    sleep 3
         
    if [ ! -f $ERROR_NEW_LOG ];then
    /bin/touch $ERROR_NEW_LOG
    fi
            
    NUM1=$(/bin/cat $ERROR_LOG|wc -l)
    NUM2=$(/bin/cat $ERROR_NEW_LOG|wc -l)
            
    if [ -f $ERROR_LOG ] && [ $NUM1 -ne 0 ] && [ $NUM2 -eq 0 ];then
    /bin/bash /opt/log_error_script/sendemail.sh wangshibo@kevin.com "风控系统${HOSTNAME}机器prcc服务日志的error监控" "告警主机:${HOSTNAME} \n告警IP:${IP} \n告警时间:${DATE} \n告警等级:严重,抓紧解决啊! \n告警人员:王士博 \n告警详情:prcc服务日志中出现error了! \n告警日志文件:${ERROR_LOG} \n当前状态: PROBLEM  \n  \nerror信息:\n$ERROR_MESSAGE"
    /bin/cat $ERROR_LOG > $ERROR_NEW_LOG
    fi
            
    /usr/bin/cmp $ERROR_LOG $ERROR_NEW_LOG >/dev/null 2>&1
    if [ $? -ne 0 ];then
    /bin/bash /opt/log_error_script/sendemail.sh wangshibo@kevin.com "风控系统${HOSTNAME}机器prcc服务日志的error监控" "告警主机:${HOSTNAME} \n告警IP:${IP} \n告警时间:${DATE} \n告警等级:严重,抓紧解决啊! \n告警人员:王士博 \n告警详情:prcc服务日志中出现error了! \n告警日志文件:${ERROR_LOG} \n当前状态: PROBLEM  \n  \nerror信息:\n$ERROR_MESSAGE"
    /bin/cat $ERROR_LOG > $ERROR_NEW_LOG
    fi
            
    结合crontab进行定时监控(每15秒执行一次)
    [root@fk-databus01 ~]# crontab -l
    #监控pcrr日志的error
    * * * * * /bin/bash -x /opt/log_error_script/prcc_log_error.sh >/dev/null 2>&1
    * * * * * sleep 15;/bin/bash -x /opt/log_error_script/prcc_log_error.sh >/dev/null 2>&1
    * * * * * sleep 30;/bin/bash -x /opt/log_error_script/prcc_log_error.sh >/dev/null 2>&1
    * * * * * sleep 45;/bin/bash -x /opt/log_error_script/prcc_log_error.sh >/dev/null 2>&1
       
    ==================================================================================
    针对上面脚本中的某些变量说明
    [root@fk-databus01 ~]# /bin/ls /data/log/sedsb/$(date +%Y%m%d)/DEJ_0001_error*
    /data/log/sedsb/20180629/DEJ_0001_error_20180629.0.log
       
    [root@fk-databus01 ~]# grep "ERROR" /data/log/sedsb/20180629/DEJ_0001_error_20180629.0.log
    ERROR DEJ 2018-06-29 12:13:29.191 [pool-4-thread-10] n.s.p.r.thread.OuterCheThdInterface - cx201806291213288440016车300接口异常!
    ERROR DEJ 2018-06-29 12:13:29.196 [nioEventLoopGroup-3-12] n.s.p.r.c.MessageControllerImpl - cx201806291213288440016:
       
    [root@fk-databus01 ~]# grep "ERROR" /data/log/sedsb/20180629/DEJ_0001_error_20180629.0.log |tail -1|awk '{print $1,$2,$3,$4}'
    ERROR DEJ 2018-06-29 12:13:29.196
       
    [root@fk-databus01 ~]# /bin/grep -A20 "$(grep "ERROR" /data/log/sedsb/20180629/DEJ_0001_error_20180629.0.log |tail -1|awk '{print $1,$2,$3,$4}')" /data/log/sedsb/20180629/DEJ_0001_error_20180629.0.log
    ERROR DEJ 2018-06-29 12:13:29.196 [nioEventLoopGroup-3-12] n.s.p.r.c.MessageControllerImpl - cx201806291213288440016:
    net.sinocredit.pre.rcc.utils.exception.OuterDataException: 外部数据:cheFixPrice:mile里程  is null;
       at net.sinocredit.pre.rcc.datafactory.OuterDataProcess.execute(OuterDataProcess.java:51)
       at net.sinocredit.pre.rcc.datafactory.OuterDataProcess.execute(OuterDataProcess.java:23)
       at net.sinocredit.pre.rcc.service.getOtherDataService.MessageServiceImpl.getOrderData(MessageServiceImpl.java:34)
       at net.sinocredit.pre.rcc.controller.MessageControllerImpl.divMessage(MessageControllerImpl.java:110)
       at net.sinocredit.pre.rcc.handler.ServerHandler.channelRead(ServerHandler.java:28)
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
       at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
       at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
       at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
       at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
       at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
       at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351)
       at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373)

    报警邮件效果如下:

     

     

     

     

     

     2)第二类日志
    此日志是固定文件,日志内容写入频繁,日志文件比较大。对于此文件的监控,通过采用tail -1000方式获取日志文件的最新1000行的方式进行error监控!
    举例说明:

    [root@fk-zqjcweb01 ~]# ll /data/log/decision/decision.log
    -rw-rw-r-- 1 zquser zquser 5108 Jun 28 16:02 /data/log/decision/decision.log
     
    采用sendemail发送告警邮件,sendemail安装参考:http://10.0.8.50/software/sendemail_install.sh
     
    监控脚本路径:
    [root@fk-zqjcweb01 ~]# cd /opt/log_error_script/
    [root@fk-zqjcweb01 log_error_script]# ls
    decision sendemail.sh
    [root@fk-zqjcweb01 log_error_script]# ls decision/
    decision.log_diff_error.log decision.log_error.log decision.log_monit.sh
     
    脚本内容:
    [root@fk-zqjcweb01 log_error_script]# cat decision/decision.log_monit.sh
    #!/bin/sh
    ERROR_LOG=/data/log/decision/decision.log
    ERROR_NEW_LOG=/opt/log_error_script/decision/decision.log_error.log
    ERROR_DIFF_LOG=/opt/log_error_script/decision/decision.log_diff_error.log
    DATE=`date +%Y年%m月%d日%H时%M分%S秒`
    HOST=`/bin/hostname`
    IP=`/sbin/ifconfig|grep "inet addr"|grep "Bcast"|cut -d":" -f2|awk -F" " '{print $1}'`
     
    if [ ! -f $ERROR_NEW_LOG ];then
    /bin/touch $ERROR_NEW_LOG
    fi
     
    NUM1=$(/usr/bin/tail -1000 $ERROR_LOG|grep error|wc -l)
    NUM2=$(/bin/cat $ERROR_NEW_LOG|wc -l)
     
    if [ -f $ERROR_LOG ] && [ $NUM1 -ne 0 ] && [ $NUM2 -eq 0 ];then
    /bin/bash /opt/log_error_script/sendemail.sh wangshibo@kevin.com "风控系统${HOSTNAME}机器的decision.log日志中的error监控" "告警主机:${HOSTNAME} \n告警IP:${IP} \n告警时间:${DATE} \n告警等级:严重,抓紧解决啊! \n告警人员:王士博 \n告警详情:decision.log日志中出现error了! \n告警日志文件:${ERROR_LOG} \n当前状态: PROBLEM "
    /usr/bin/tail -1000 $ERROR_LOG|grep error > $ERROR_NEW_LOG
    fi
     
    /usr/bin/tail -1000 $ERROR_LOG|grep error > $ERROR_DIFF_LOG
    /usr/bin/cmp $ERROR_DIFF_LOG $ERROR_NEW_LOG >/dev/null 2>&1
    if [ $? -ne 0 ];then
    /bin/bash /opt/log_error_script/sendemail.sh wangshibo@kevin.com "风控系统${HOSTNAME}机器的decision.log日志中的error监控" "告警主机:${HOSTNAME} \n告警IP:${IP} \n告警时间:${DATE} \n告警等级:严重,抓紧解决啊! \n告警人员:王士博 \n告警详情:decision.log日志中出现error了! \n告警日志文件:${ERROR_LOG} \n当前状态: PROBLEM "
    /usr/bin/tail -1000 $ERROR_LOG|grep error > $ERROR_NEW_LOG
    fi
    You have new mail in /var/spool/mail/root
     
    结合crontab进行定时监控
    [root@fk-zqjcweb01 log_error_script]# crontab -l
    #decision.log日志的error监控
    * * * * * /bin/bash -x /opt/log_error_script/decision/decision.log_monit.sh >/dev/null 2>&1
    * * * * * sleep 15;/bin/bash -x /opt/log_error_script/decision/decision.log_monit.sh >/dev/null 2>&1
    * * * * * sleep 30;/bin/bash -x /opt/log_error_script/decision/decision.log_monit.sh >/dev/null 2>&1
    * * * * * sleep 45;/bin/bash -x /opt/log_error_script/decision/decision.log_monit.sh >/dev/null 2>&1

     上面提到的sendemail.sh邮件发送脚本

    [root@fk-zqjcweb01 ~]# cat /opt/log_error_script/sendemail.sh
    #!/bin/bash
    # Filename: SendEmail.sh
    # Notes: 使用sendEmail
    #
    # 脚本的日志文件
    LOGFILE="/tmp/Email.log"
    :>"$LOGFILE"
    exec 1>"$LOGFILE"
    exec 2>&1
    SMTP_server='smtp.kevin.com'
    username='monit@kevin.com'
    password='monit@123'
    from_email_address='monit@kevin.com'
    to_email_address="$1"
    message_subject_utf8="$2"
    message_body_utf8="$3"
    # 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。
    message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
    $message_subject_utf8
    EOF`
    [ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
    # 转换邮件内容为GB2312,解决收到邮件内容乱码
    message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
    $message_body_utf8
    EOF`
    [ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
    # 发送邮件
    sendEmail='/usr/local/bin/sendEmail'
    set -x
    $sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312

    3)第三类日志
    日志规则说明:
    -  在etl服务器下的EXP、MDB、MID、ODB、PDB、PUS、SDB系统里有很多任务日志,日志都存放在当天的日期目录下。
    -  现在需要对这些任务日志的error进行监控,当出现error报错信息时立刻发出报警!
    -  当这些任务日志文件里有出现error报错信息的,那么该任务日志文件就不会被写入了。也就是说一个任务日志文件只会出现一次error报错。
    -  出现error报错信息的任务日志不能删除和更改,因为这些任务日志会被其他程序调用展示。

    [root@bigdata-etl01 ~]# ll /data/etluser/LOG/
    drwxrwx--- 33 etluser etluser     4096 Jul  6 02:00 EXP
    drwxrwx--- 33 etluser etluser     4096 Jul  6 02:00 MDB
    drwxrwx--- 33 etluser etluser     4096 Jul  6 02:00 MID
    drwxrwx--- 33 etluser etluser     4096 Jul  6 02:00 ODB
    drwxrwx--- 33 etluser etluser     4096 Jul  6 02:00 PDB
    drwxrwx--- 32 etluser etluser     4096 Jul  6 00:47 PUS
    drwxrwx--- 33 etluser etluser     4096 Jul  6 02:00 SDB
    [root@bigdata-etl01 ~]# ls /data/etluser/LOG/EXP/
    20180606  20180609  20180612  20180615  20180618  20180621  20180624  20180627  20180630  20180703  20180706
    20180607  20180610  20180613  20180616  20180619  20180622  20180625  20180628  20180701  20180704
    20180608  20180611  20180614  20180617  20180620  20180623  20180626  20180629  20180702  20180705
    [root@bigdata-etl01 ~]# ls /data/etluser/LOG/EXP/20180706/
    EXP_EXP_V_CUST_CRDT_SITU_20180705[1][1].54.log                exp_v_opr_size_curr_stats_0010601[1].pl.56.log
    EXP_EXP_V_DAILY_BIZ_AMT_SITU_20180705[1][1].45.log            exp_v_opr_size_curr_stats_0010602[1].pl.56.log
    EXP_EXP_V_MATR_RMND_INTFC_QG6_001_20180705[1][1].83.log       exp_v_prvs_provs_int_intfc_f0_0010600[1].pl.103.log
    EXP_EXP_V_OPR_SIZE_CURR_STATS_001_20180705[1][1].56.log       exp_v_prvs_provs_int_intfc_f0_0010601[1].pl.103.log
    EXP_EXP_V_PRVS_PROVS_INT_INTFC_F0_001_20180705[1][1].103.log  exp_v_prvs_provs_int_intfc_f0_0020600[1].pl.98.log
    EXP_EXP_V_PRVS_PROVS_INT_INTFC_F0_002_20180705[1][1].98.log   exp_v_prvs_provs_int_intfc_f0_0020601[1].pl.98.log
    EXP_EXP_V_PRVS_PROVS_INT_INTFC_F0_003_20180705[1][1].90.log   exp_v_prvs_provs_int_intfc_f0_0030600[1].pl.90.log
    EXP_EXP_V_PRVS_PROVS_INT_INTFC_F0_007_20180705[1][1].48.log   exp_v_prvs_provs_int_intfc_f0_0030601[1].pl.90.log
    EXP_EXP_V_PRVS_PROVS_INT_INTFC_F0_008_20180705[1][1].78.log   exp_v_prvs_provs_int_intfc_f0_0070600[1].pl.48.log
    EXP_EXP_V_PRVS_PROVS_INT_INTFC_F0_009_20180705[1][1].15.log   exp_v_prvs_provs_int_intfc_f0_0070601[1].pl.48.log
    EXP_EXP_V_PRVS_PROVS_INT_INTFC_F0_010_20180705[1][1].48.log   exp_v_prvs_provs_int_intfc_f0_0080600[1].pl.78.log
    EXP_EXP_V_PRVS_PROVS_INT_INTFC_F1_004_20180705[1][1].16.log   exp_v_prvs_provs_int_intfc_f0_0080601[1].pl.78.log
    EXP_EXP_V_PRVS_PROVS_INT_INTFC_F1_006_20180705[1][1].8.log    exp_v_prvs_provs_int_intfc_f0_0090600[1].pl.15.log
    EXP_EXP_V_QRY_FACT_AGT_INTFC_20180705[1][1].47.log            exp_v_prvs_provs_int_intfc_f0_0090601[1].pl.15.log
    exp_v_cust_crdt_situ0600[1].pl.54.log                         exp_v_prvs_provs_int_intfc_f0_0100600[1].pl.48.log
    exp_v_cust_crdt_situ0601[1].pl.54.log                         exp_v_prvs_provs_int_intfc_f0_0100601[1].pl.48.log
    exp_v_cust_crdt_situ0602[1].pl.54.log                         exp_v_prvs_provs_int_intfc_f1_0040600[1].pl.16.log
    exp_v_daily_biz_amt_situ0600[1].pl.45.log                     exp_v_prvs_provs_int_intfc_f1_0040601[1].pl.16.log
    exp_v_daily_biz_amt_situ0601[1].pl.45.log                     exp_v_prvs_provs_int_intfc_f1_0060600[1].pl.8.log
    exp_v_daily_biz_amt_situ0602[1].pl.45.log                     exp_v_prvs_provs_int_intfc_f1_0060601[1].pl.8.log
    exp_v_matr_rmnd_intfc_qg6_0010600[1].pl.83.log                exp_v_qry_fact_agt_intfc0600[1].pl.47.log
    exp_v_matr_rmnd_intfc_qg6_0010601[1].pl.83.log                exp_v_qry_fact_agt_intfc0601[1].pl.47.log
    exp_v_matr_rmnd_intfc_qg6_0010602[1].pl.83.log                exp_v_qry_fact_agt_intfc0602[1].pl.47.log
    exp_v_opr_size_curr_stats_0010600[1].pl.56.log
    监控脚本思路:
    1)对这些任务日志进行批量搜索error关键字(不区分大小写)
    2)将出现error关键字的任务日志拷贝到一个专门的目录下(error日志文件的列表目录)。
    3)对搜索到error关键字的任务日志做判断,判断它是否存在于那个列表目录下:
       如果不存在,说明是新出现error的日志文件,就立刻报警!
       如果存在,说明出现的error是之前的信息,不报警!
      
    监控脚本编写情况如下:
    error_log为error日志文件的列表目录;
    sendemail.sh为邮件发送脚本(上面介绍过)
    [root@bigdata-etl01 log_error_script]# ls
    EXP  MDB  MID  ODB  PDB  PUS  SDB  sendemail.sh
    [root@bigdata-etl01 log_error_script]# ls EXP/
    error_log  EXP_error_monit.sh
    [root@bigdata-etl01 log_error_script]# ls MDB/
    error_log  MDB_error_monit.sh
    [root@bigdata-etl01 log_error_script]# ls MID/
    error_log  MID_error_monit.sh
    [root@bigdata-etl01 log_error_script]# ls ODB/
    error_log  ODB_error_monit.sh
    [root@bigdata-etl01 log_error_script]# ls PDB/
    error_log  PDB_error_monit.sh
    [root@bigdata-etl01 log_error_script]# ls PUS/
    error_log  PUS_error_monit.sh
    [root@bigdata-etl01 log_error_script]# ls SDB/
    error_log  SDB_error_monit.sh
    [root@bigdata-etl01 log_error_script]#
      
    这里贴出SDB系统的任务日志的error监控报警脚本(其他几个系统的监控脚本与这个一样,只需要将脚本中的SDB替换成对应的系统名称即可!)
    [root@bigdata-etl01 log_error_script]# cat /opt/log_error_script/SDB/SDB_error_monit.sh
    #!/bin/sh
    DATE_DIR=$(date +%Y%m%d)
    DATE=`date +%Y年%m月%d日%H时%M分%S秒`
    HOST=`/bin/hostname`
    IP=`/sbin/ifconfig|grep "inet addr"|grep "Bcast"|cut -d":" -f2|awk -F" " '{print $1}'`
      
    cd /data/etluser/LOG/SDB
    if [ ! -d $DATE_DIR ];then
    /bin/mkdir $DATE_DIR
    /bin/chown -R etluser.etluser $DATE_DIR
    fi
      
    cd /data/etluser/LOG/SDB/$DATE_DIR
    for FILE in $(/bin/ls *.log)
    do
       NUM=$(/bin/grep -i "error" /data/etluser/LOG/SDB/$DATE_DIR/$FILE|wc -l)
       ERROR_MESSAGE=$(/bin/grep -i "error" /data/etluser/LOG/SDB/$DATE_DIR/$FILE)
       if [ $NUM -ne 0 ];then
          /bin/ls /opt/log_error_script/SDB/error_log/$FILE
          a=$?
          if [ $a -ne 0 ];then
              /opt/log_error_script/sendemail.sh wangshibo@test.com "大数据平台etl服务器${HOSTNAME}的SDB任务日志里出现error了" "告警主机:${HOSTNAME} \n告警IP:${IP} \n告警时间:${DATE} \n告警等级:严重 \n告警人员:王士博 \n告警详情:SDB的任务日志里出现error了,抓紧解决啊! \n当前状态: PROBLEM \n告警日志文件:/data/etluser/LOG/SDB/$DATE_DIR/$FILE \n\n\n------请看下面error报错信息------- \nerror信息:\n$ERROR_MESSAGE"
              cp /data/etluser/LOG/SDB/$DATE_DIR/$FILE /opt/log_error_script/SDB/error_log/
          else
              echo "$FILE日志中error报错信息是之前发生的,无需报警!"
          fi
       else
          echo "$FILE 日志里没有error报错啦"
       fi
    done
      
    给脚本赋予执行权限
    [root@bigdata-etl01 log_error_script]# chmod 755 /opt/log_error_script/SDB/SDB_error_monit.sh
    [root@bigdata-etl01 log_error_script]# sh /opt/log_error_script/SDB/SDB_error_monit.sh
    qbl_biz_cst_bsc_inf0100[1].pl.73.log 日志里没有error报错啦
    qbl_biz_cst_bsc_inf0101[1].pl.73.log 日志里没有error报错啦
    qbl_biz_fnc_bsc_inf0100[1].pl.73.log 日志里没有error报错啦
    qbl_biz_fnc_bsc_inf0101[1].pl.73.log 日志里没有error报错啦
    qbl_biz_fnc_mod_inf0100[1].pl.73.log 日志里没有error报错啦
    qbl_biz_fnc_mod_inf0101[1].pl.73.log 日志里没有error报错啦
    qbl_biz_pd_bsc_inf0100[1].pl.73.log 日志里没有error报错啦
    qbl_biz_pd_bsc_inf0101[1].pl.73.log 日志里没有error报错啦
    qbl_biz_pre_ctr_bsc_inf0100[1].pl.73.log 日志里没有error报错啦
    qbl_biz_pre_ctr_bsc_inf0101[1].pl.73.log 日志里没有error报错啦
    qbl_biz_repy_base_inf0100[1].pl.73.log 日志里没有error报错啦
    qbl_biz_repy_base_inf0101[1].pl.73.log 日志里没有error报错啦
    qbl_biz_repy_pl_dtl0100[1].pl.78.log 日志里没有error报错啦
    qbl_biz_repy_pl_dtl0101[1].pl.78.log 日志里没有error报错啦
    qbl_biz_repy_pl_inf0100[1].pl.78.log 日志里没有error报错啦
    qbl_biz_repy_pl_inf0101[1].pl.78.log 日志里没有error报错啦
    qbl_biz_repy_rcrd_jrnl0100[1].pl.73.log 日志里没有error报错啦
    qbl_biz_repy_rcrd_jrnl0101[1].pl.73.log 日志里没有error报错啦
    .......
    .......
      
    结合crontab指定脚本定时执行任务(每30秒执行一次)
    [root@bigdata-etl01 ~]# crontab -l
    #etl相关任务日志的error监控报警
    * * * * * /bin/bash -x /opt/log_error_script/EXP/EXP_error_monit.sh >/dev/null 2>&1
    * * * * * sleep 30;/bin/bash -x /opt/log_error_script/EXP/EXP_error_monit.sh >/dev/null 2>&1
      
    * * * * * /bin/bash -x /opt/log_error_script/MDB/MDB_error_monit.sh >/dev/null 2>&1
    * * * * * sleep 30;/bin/bash -x /opt/log_error_script/MDB/MDB_error_monit.sh >/dev/null 2>&1
      
    * * * * * /bin/bash -x /opt/log_error_script/MID/MID_error_monit.sh >/dev/null 2>&1
    * * * * * sleep 30;/bin/bash -x /opt/log_error_script/MID/MID_error_monit.sh >/dev/null 2>&1
      
    * * * * * /bin/bash -x /opt/log_error_script/ODB/ODB_error_monit.sh >/dev/null 2>&1
    * * * * * sleep 30;/bin/bash -x /opt/log_error_script/ODB/ODB_error_monit.sh >/dev/null 2>&1
      
    * * * * * /bin/bash -x /opt/log_error_script/PDB/PDB_error_monit.sh >/dev/null 2>&1
    * * * * * sleep 30;/bin/bash -x /opt/log_error_script/PDB/PDB_error_monit.sh >/dev/null 2>&1
      
    * * * * * /bin/bash -x /opt/log_error_script/PUS/PUS_error_monit.sh >/dev/null 2>&1
    * * * * * sleep 30;/bin/bash -x /opt/log_error_script/PUS/PUS_error_monit.sh >/dev/null 2>&1
      
    * * * * * /bin/bash -x /opt/log_error_script/SDB/SDB_error_monit.sh >/dev/null 2>&1
    * * * * * sleep 30;/bin/bash -x /opt/log_error_script/SDB/SDB_error_monit.sh >/dev/null 2>&1

    邮件报警效果如下:

     

    转载于:https://www.cnblogs.com/zhu520/p/11569384.html

    展开全文
  • 前段时间太忙,没有来得及管博客,最近时间充裕了,开始...linux系统日志文件默认存放路径/var/log/ ls查看此路径下有哪些日志文件 [root@localhost log]# ls /var/loganaconda.ifcfg.log ConsoleKit messages tal...

    前段时间太忙,没有来得及管博客,最近时间充裕了,开始更新博客。

    因为最近在看linux日志相关内容,把心得分享给大家

    linux系统日志文件默认存放路径/var/log/

    ls查看此路径下有哪些日志文件

    [root@localhost log]# ls /var/log
    anaconda.ifcfg.log    ConsoleKit  messages           tallylog
    anaconda.log          cron        ntpstats           vmware-caf
    anaconda.program.log  cups        pm-powersave.log   vmware-install.log
    anaconda.storage.log  dmesg       ppp                vmware-tools-upgrader.log
    anaconda.syslog       dmesg.old   prelink            vmware-vmsvc.log
    anaconda.xlog         dracut.log  sa                 wpa_supplicant.log
    anaconda.yum.log      gdm         samba              wtmp
    audit                 httpd       secure             Xorg.0.log
    boot.log              lastlog     spice-vdagent.log  Xorg.0.log.old
    btmp                  maillog     spooler
    anaconda.ifcfg.log:由名称可知是anaconda(RedHat、CentOS、Fedora等Linuxx的安装管理程序)的网络配置日志文件日志

    anaconda.log:anaconda的日志文件,存储了系统安装过程中的信息

    anaconda.program.loganaconda相关日志

    anaconda.storage.loganaconda相关日志

    anaconda.sysloganaconda相关日志

    anaconda.xlogvanaconda相关日志

    anaconda.yum.loganaconda相关日志

    audit(文件夹)里边的audit.log包含linux aduit(audit服务专门用来记录安全信息,用于对系统安全事件的追溯,记录核心层的时间:档案的读写,系统呼叫,权限的状态等)的日志文件

    boot.log:系统启动相关的信息(开机启动时打印在屏幕上的那些信息)

    btmp:用户登陆失败的相关信息(用last -f查看)

    ConsoleKit:(文件夹)里边的history文件记录着控制台相关信息

    cron:计划任务的日志

    cups(文件夹)涉及所有打印信息的日志

    dmesg:内核缓冲信息(开机时打印在屏幕上的硬件相关信息)

    dmesg.old:dmesg的备份文件

    dracut.log:dracut(事件驱动的 initramfs 基础设施)的日志文件

    gdm:gdm(GNOME显示环境的管理器)相关日志

    httpd:apache或者tomcat等WEB服务器运行日志

    lastlog:所有用户的最近信息,不是ascii格式,需要用lastlog命令查看,不知道为什么我的都显示从未登陆

    maillog:邮件日志

    messages:整体系统信息,也包含系统启动期间的日志,mail,cron,daemon,kern和auth等内容

    ntpstats(文件夹)ntpstats(时间同步)相关日志

    pm-powersave.log:pm-powersave(电源管理软件)的日志

    ppp:(文件夹)为空,或许和ppp协议有关

    prelink:(文件夹)prelink.log记录着prelink(预链接功能)的日志文件

    sa:(文件夹)包含每日由sysstat(性能监控软件)软件包收集的sar文件

    samba(文件夹)由samba(实现SMB协议的一个免费软件)存储的信息

    secure:验证和授权方面信息,(其中包括登录失败信息)

    spice-vdagent.log:spice-vdagent(linux下的虚拟机软件)相关日志文件

    spooler:UUCP(远程主机传文件和控制命令)和news设备产生的日志

    tallylog:记录认证失败情况,与pam(可插拔认证模块)认证登陆有关

    vmware-caf(文件夹)虚拟机相关(我的环境装在vmware虚拟机里的),忽略

    vmware-install.log:虚拟机相关,忽略

    vmware-tools-upgrader.log:虚拟机相关,忽略

    vmware-tools-upgrader.log:虚拟机相关,忽略

    vmware-vmsvc.log:虚拟机相关,忽略

    wpa_supplicant.log:和无线连接相关的日志文件

    http://entropyblog.com

    wtmp:记录正在登陆的系统用户,用last -f来查看

    Xorg.0.log来自X的日志信息

    Xorg.0.log.oldXorg.0.log的备份文件

    我的机子是centos6.5,日志文件可能会因为系统不同有一些差别。

    转载于:https://www.cnblogs.com/Entr0py/p/7283282.html

    展开全文
  • Linux 日志查看 | 日志文件

    千次阅读 2018-03-01 13:15:19
    在介绍之前,先一下使用到日志文件的内容。 先说明环境:CentOS 7,日志文件在/usr下。 生成日志文件的代码(模仿日志文件): import java.text.SimpleDateFormat; import java.util.Calendar; import java....
  • vi clearlog.sh#!/bin/sh rm *.log.* cat /dev/null > agent.log 保存后 运行 bash clearlog.sh (bash -n clearlog.sh 是检查语法) (bash -x clearlog.sh 是运行详细情况)
  • 所以我们只要了解了日志文件的格式,就可以很轻松地日志文件日志文件的格式包含以下 4 列: 事件产生的时间。 产生事件的服务器的主机名。 产生事件的服务名或程序名。 事件的具体信息。 我们查看一下...
  • 目录一、inode与block1.1 inode和block概述1.2 inode的...1-2三、恢复误删除的文件3.1 恢复EXT类型的文件3.2 恢复XFS类型的文件3.3 xfsdump使用限制四、分析日志文件4.1 日志文件 4-14.2 日志文件 4-24.3 内核及系统日
  • Linux下查看日志文件

    2018-06-17 15:19:00
    这个时候第一反应就是查看日志文件,看看日志文件里面有什么错误信息。我潇洒的执行了一下 vim log.txt,然后就直接卡死了,打不开。 那怎么办,我还得查看啊。使用了cat命令,虽然没卡死,但是显示的文档明显不对...
  • 一、Inode与Block 1.1 Block基础知识 **Block(块)**是文件最小存储单位,存在于8个扇区内,每个扇区512b,所以每个Block大小是4K 1.2Inode基础知识 1.2.1 inode(索引节点)...ll - i + 文件名 / / 看文件ino
  • 去年,受老师和武哥提携,有幸进入校网络中心,刚进去那时就懂点超简单的Linux命令,那天武哥做数据库清查,看着他在控制台下一条条命令敲出去,然后ssh终端输出各种不懂的信息,觉得武哥超厉害,Linux玩得如此...
  • Linux系列】Linux脚本:定时任务批量移动指定文件至另一目录!想学吗?我教你啊 【Linux系列】Linux实践(一):linux常用命令 【Linux系列】Linux实践(二):CentOS系统中搭建java开发环境与部署web...
  • 本篇文章主要介绍了Linux使用logrotate来切割日志文件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看
  • Linux中操作日志文件的命令

    千次阅读 2018-01-25 15:42:02
    昨天总结了日志的一些用法和在程序中打日志的重要性,今天来说说如何看日志linux系统下如何查看日志。 最常用的命令: tail -f + 日志文件名 这种方式可以查看正在改变的日志文件,它会把日志里最尾部的...
  • #!/bin/sh del_date=date -d "5 days ago" +'%y-%m-%d' find /home/jfuser/collect/log/9001 -type f -name "CycleRent*$del_date*.*" -exec rm -f{} \;...请帮忙看看 删除命令哪个地方写的不对,谢谢!
  • 操作系统用inode号码来识别不同的文件Linux系统内部不使用文件名,而使用inode号码来识别文件对于用户,文件名只是inode号码便于识别的别称inode的号码用户通过文件名打开文件时,系统内部的过程查看inode号码的方法...
  • Linux服务器上查看服务运行日志,有时候日志文件很大起来很不方便,经常要对日志进行筛选, 比如查看某段时间内的日志 将catalina.out 日志09点到10点的保存到a.txt ,如下: sed -n '/2019-11-17 09:/,/2019-...
  • linux vim查看文件日志缺失部分内容,或不到部分内容 起因: 在linux使用vim命令查看日志时,在执行纪录时间发现有的线程部分日志看不到 思路: 1.logger记录的问题,查看其他调用同方法的线程发现执行日志是完整的...
  • 最近做一个项目,发现在linux下tomcat的日志文件特别大,大概有500多M,从linux下载特别慢,并且用记事本也打不开,没法看日志信息,所以需要将日志进行拆分,拆分我们需要用到cronolog-1.6.2.tar.gz软件,下面就将...
  • Linux系统日志

    2019-12-07 11:22:54
    1. 前言 在Linux日常管理中,我们肯定有查看某些服务的日志需求,或者是系统本身的日志。本文主要介绍如何查看Linux的系统日志,...Linux日志文件的路径一般位于,/var/log/,比如ngix的日志路径为/var/log/nginx...
  • Linux之终端信息输出到日志文件

    万次阅读 2018-10-10 15:51:22
    将终端输出的内容保存在日志文件中,一方面可以便于查看输出内容,另一方面可以永久保存,便于回。因此本文对相关的方法进行整理总结。 方法一 把命令运行的结果保存到文件当中:用 &gt; 把输出转向就可以...
  • 从而达到文件的清理,释放磁盘,保障磁盘充足,让网站资源不浪费,稳定运行,那么我们需要在linux 下查找大日志文件,比如大于500M的文件从而进行删除,怎么呢?接下来小魏分享下如何查找大于500m文件。命令行如下...
  • 过了/usr的目次组织,接上去就再一下linux下其它一个相当重要的器材,日志文件linux系统平常有三个次要的日志系统:毗邻时间日志、进程统计日志和错误日志。要理清linux的一些基近日志文件首先从/var/log目次...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,219
精华内容 487
关键字:

linux看日志文件

linux 订阅