精华内容
下载资源
问答
  • 使用脚本命令监控网站日志

    千次阅读 2015-07-15 12:44:03
    下面的内容是使用linux/unix作为网站的朋友一定要...),手里掌握一些监控、分析日志脚本显的尤为重要!下面的代码可以监控最近的访客日志,相当有用。 一、实时过滤日志 使用 tail -f 命令可以查看日志文件最近新
    下面的内容是使用linux/unix作为网站的朋友一定要懂的方法。虽然有N多中工具用于分析例如apache、nginx的访问日志。但是,任何一种都没有linux内置命令来的高效、灵活。例如:当你的图形化系统不起作用的时候(黑客攻击?!),手里掌握一些监控、分析日志的脚本显的尤为重要!下面的代码可以监控最近的访客日志,相当有用。
    一、实时过滤日志
    使用 tail -f 命令可以查看日志文件最近新增的部分。不过,实际应用中会存在一些麻烦,你会发现输出了一大堆内容占满了整个屏幕。有必要格式化一下这些内容^_^。脚本如下:
     
    #需要将脚本保存起来, $COLUMNS 变量才会有效
    #注意: -n10 表示显示最后10行内容,可以自己修改
    deny="`tput bold; tput setaf 1`" #亮红
    high="`tput bold; tput setaf 3`" #亮黄
    norm="`tput sgr0`"
    tail "$@" -s.1 -f access_log |
    grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |
    sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #过滤掉一些字段
    #分析google蜘蛛访问
    sed -u \
    's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |
    #过滤不需要的内容
    sed -u 's/ HTTP\/1.[01]//;
    s/.NET CLR [0-9.]*//g;
    s/Gecko\/[0-9]*//;
    s/rv:[0-9.]*//;
    s/Mozilla\/[0-9.]* //' |
    sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #对齐IP地址
    sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保证输出行宽度统一
    #高亮显示 referrer行
    sed -u "
    s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;
    s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;
    "
     

    保存为 tail_access_log 脚本代替tail命令。


    二、近期日志高效监控脚本
    如果网站流量很大的话,日志文件是相当庞大的。分析这些日志的时候就需要小心处理了,例如:笔者的访问日志已经有700多MB了,一次性读取的化会相当的慢,通常我们使用 tac 命令读取文件最后一部分内容,sed 命令用于结束读取。脚本如下:
     
    #!/bin/sh
    # 返回最近N天内 "NCSA" 格式的 HTTP 日志
    days=$1
    log="$2"
    export LANG=C #加速
    export TZ=UTC0
    last_log_date=`tail -1 "$log" |
    sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |
    tr '/' ' '`
    yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`
    #间隔周期10分钟
    yesterday=`echo $yesterday | cut -b-16`
    yesterday="$yesterday[0-9]"
    tac "$log" | sed "\#$yesterday#Q"
     
    同样将脚本保存为get_last_days [天数] [文件名],即可使用。
    讲了这个这么多下面来段实例。一般,我们可能会感兴趣会有哪些用户订阅了我们的rss种子。已经采用何种方式订阅的,skyfeed、google等等。
     
    #!/bin/sh
    export LANG=C #加速
    feed="/feed/rss2.xml"
    #查看一周内订阅rss的用户的访问情况
    ./get_last_days 7 access_log |
    #过滤rss feed url
    grep -F "GET $feed" |
    #剔除通过refer访问rss的站点
    grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |
    #获取 ip地址 & 浏览器情况
    sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |
    #根据浏览器、用户网段进行排序
    sort -k2 -k1,1 |
    #合并
    uniq -c |
    #忽略单个请求
    grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |
    #忽略机器人访问
    grep -vE -f agents_to_ignore |
    #合并订阅用户
    sed '
    s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;
    s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;
    s/\([^\t]\)\t.*Opera.*/\1\tOpera/;
    s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;
    s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;
    s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;
    s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;
    ' |
    #显示浏览器类型
    cut -d"`echo -e '\t'`" -f2 |
    #分组
    sort |
    #计数
    uniq -c |
    #识别使用google订阅的用户
    sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |
    #计数
    sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |
    #再次合并处理
    uniq -f1 |
    #排序
    sort -k1,1n |
    #对齐
    sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |
    #截取
    sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported
    展开全文
  • 以下的内容是使用linux/unix作为站点的朋友一定要懂的方法。...),手里掌握一些监控、分析日志脚本显的尤为重要!以下的代码能够监控近期的訪客日志,相当实用。 一、实时过滤日志 使用 tail -f 命令能够查看日...
    以下的内容是使用linux/unix作为站点的朋友一定要懂的方法。尽管有N多中工具用于分析比如apache、nginx的訪问日志。可是。不论什么一种都没有linux内置命令来的高效、灵活。比如:当你的图形化系统不起作用的时候(黑客攻击?!),手里掌握一些监控、分析日志的脚本显的尤为重要!以下的代码能够监控近期的訪客日志,相当实用。
    一、实时过滤日志
    使用 tail -f 命令能够查看日志文件近期新增的部分。只是,实际应用中会存在一些麻烦。你会发现输出了一大堆内容占满了整个屏幕。有必要格式化一下这些内容^_^。脚本例如以下:
     
    #须要将脚本保存起来, $COLUMNS 变量才会有效
    #注意: -n10 表示显示最后10行内容,能够自己改动
    deny="`tput bold; tput setaf 1`" #亮红
    high="`tput bold; tput setaf 3`" #亮黄
    norm="`tput sgr0`"
    tail "$@" -s.1 -f access_log |
    grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |
    sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #过滤掉一些字段
    #分析google蜘蛛訪问
    sed -u \
    's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |
    #过滤不须要的内容
    sed -u 's/ HTTP\/1.[01]//;
    s/.NET CLR [0-9.]*//g;
    s/Gecko\/[0-9]*//;
    s/rv:[0-9.]*//;
    s/Mozilla\/[0-9.]* //' |
    sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #对齐IP地址
    sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保证输出行宽度统一
    #高亮显示 referrer行
    sed -u "
    s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;
    s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;
    "
     

    保存为 tail_access_log 脚本取代tail命令。


    二、最近日志高效监控脚本
    假设站点流量非常大的话。日志文件是相当庞大的。

    分析这些日志的时候就须要小心处理了,比如:笔者的訪问日志已经有700多MB了,一次性读取的化会相当的慢。通常我们使用 tac 命令读取文件最后一部分内容,sed 命令用于结束读取。

    脚本例如以下:
     
    #!/bin/sh
    # 返回近期N天内 "NCSA" 格式的 HTTP 日志
    days=$1
    log="$2"
    export LANG=C #加速
    export TZ=UTC0
    last_log_date=`tail -1 "$log" |
    sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |
    tr '/' ' '`
    yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`
    #间隔周期10分钟
    yesterday=`echo $yesterday | cut -b-16`
    yesterday="$yesterday[0-9]"
    tac "$log" | sed "\#$yesterday#Q"
     
    相同将脚本保存为get_last_days [天数] [文件名称]。就可以使用。


    讲了这个这么多以下来段实例。一般。我们可能会感兴趣会有哪些用户订阅了我们的rss种子。已经採用何种方式订阅的。skyfeed、google等等。


     
    #!/bin/sh
    export LANG=C #加速
    feed="/feed/rss2.xml"
    #查看一周内订阅rss的用户的訪问情况
    ./get_last_days 7 access_log |
    #过滤rss feed url
    grep -F "GET $feed" |
    #剔除通过refer訪问rss的网站
    grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |
    #获取 ip地址 & 浏览器情况
    sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |
    #依据浏览器、用户网段进行排序
    sort -k2 -k1,1 |
    #合并
    uniq -c |
    #忽略单个请求
    grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |
    #忽略机器人訪问
    grep -vE -f agents_to_ignore |
    #合并订阅用户
    sed '
    s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;
    s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;
    s/\([^\t]\)\t.*Opera.*/\1\tOpera/;
    s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;
    s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;
    s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;
    s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;
    ' |
    #显示浏览器类型
    cut -d"`echo -e '\t'`" -f2 |
    #分组
    sort |
    #计数
    uniq -c |
    #识别使用google订阅的用户
    sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |
    #计数
    sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |
    #再次合并处理
    uniq -f1 |
    #排序
    sort -k1,1n |
    #对齐
    sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |
    #截取
    sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    展开全文
  • 日期:2004/08/07 作者:zcatlinux 来源:zclinux以下脚本主要是为了监控系统产生的日志,只要是日志里有的都可以加进去作监控内容,并且实时生成想要的日志文件,以留备查!注:如果系统的日志功能已经被破坏,本...

    日期:2004/08/07  作者:zcatlinux  来源:zclinux


    以下脚本主要是为了监控系统产生的日志,只要是日志里有的都可以加进去作监控内容,并且实时生成想要的日志文件,以留备查!注:如果系统的日志功能已经被破坏,本方法则就无效了。

    vi  run_log.sh

    #!/bin/bash

    while [ true ];
      do
        DATE=`date +%Y%m%d`
        tail -f /var/log/message | egrep "(syslogd 1.4.1: restart | LOGIN ON )"  >>/home/log/run_syslog.$DATE
        sleep 2
      done

    chmod u+x run_log.sh

    -------------------------------------------------------------------------

    tail -f /var/log/message | egrep "(syslogd 1.4.1: restart | LOGIN ON )"  >>/home/log/run_syslog.$DATE
    在以上脚本中,(syslogd 1.4.1: restart | LOGIN ON )是可以按需求情况来添加监控系统日志文件中存在的内容的,不同内容中间用| 来隔开
    --------------------------------------------------------------------------

    另外注意一定要把本脚本文件加入到系统启动文件中,即让系统启动后自动运行这个脚本才能启动监控作用,加入方法如下:
     vi   /etc/rc.d/rc.local
    #!/bin/sh                                                           
    #                                                                   
    # This script will be executed *after* all the other init scripts.  
    # You can put your own initialization stuff in here if you don't    
    # want to do the full Sys V style init stuff.                       
                                                                        
    touch /var/lock/subsys/local                                        
    sh /usr/run_log.sh

    保存退出即可,让系统重新启动一下,用ps -ef|grep run_log.sh检查这个脚本是否已经启动,或者查看/home/log/下是否有run_syslog.2004-08-07该文件。
    这样成功后,以后就知道什么时候服务器被重新启动了,什么时候有人登陆了服务器系统了。^_^。。这下是不是可以放心多做些其他的事情了,不要为了不知道系统什么时候已经被hacker登陆过了,自己都不知道。只要经常去查看产生的日志文件就可以啦。

    展开全文
  • 最近看到群里有人聊到他们的服务器最近被挂马,然后想利用一个脚本能够实时监控web目录下文件的变化,也就是对该目录的增删改操作都会记录到相应日志下。 当时感觉这个功能的确实有点意思,所以网上查阅了些资料,...
  • 今天接到公司领导要求, 要求用zabbix能够实时监控所有服务器的报错报警日志。 但是因为服务器数量较大, 日志量很大, 单独做脚本分析日志来上报的话消耗资源可能会比较大,因此就使用了已经部署了的elk来把错误...

    今天接到公司领导要求, 要求用zabbix能够实时的监控所有服务器的报错报警日志。
    但是因为服务器数量较大, 日志量很大, 单独做脚本分析日志来上报的话消耗资源可能会比较大,因此就使用了已经部署了的elk来把错误的日志单独整理上报 ,然后就在网上查询资料找到了ZABBIX+ELK的部署,经过十几个小时的尝试和测试,已经能够成功的监控到错误和告警日志了, 因为部署过程中踩了很多坑, 因此整理整个流程把相关的内容发了这篇博客,给大家借鉴。

    安装Jdk:

    // tar xf jdk-15_linux-aarch64_bin.tar.gz -C /usr/local/
    // mv /usr/local/jdk-15/ /usr/local/jdk-1.8.0 
    

    添加环境变量:

    // alternatives --install /usr/bin/java java /usr/local/jdk1.8.0/jre/bin/java 3000
    // alternatives --install /usr/bin/jar jar /usr/local/jdk1.8.0/bin/jar 3000
    // alternatives --install /usr/bin/javac javac /usr/local/jdk1.8.0/bin/javac 3000
    // alternatives --install /usr/bin/javaws javaws /usr/local/jdk1.8.0/jre/bin/javaws 3000
    // alternatives --set java /usr/local/jdk1.8.0/jre/bin/java
    // alternatives --set jar /usr/local/jdk1.8.0/bin/jar
    // alternatives --set javac /usr/local/jdk1.8.0/bin/javac
    // alternatives --set javaws /usr/local/jdk1.8.0/jre/bin/javaws
    

    查看java版本:

    // java -version
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    

    安装logstash:
    文件需在官网下载,并进行解压安装:https://www.elastic.co/cn/downloads/logstash

    // unzip logstash-7.9.2.zip
    // mv logstash-7.9.2 /usr/local/logstash
    

    安装 logstash-integration-jdbc、logstash-output-zabbix、logstash-input-beats-master 插件:

    // /usr/local/logstash/bin/logstash-plugin install logstash-integration-jdbc
    Validating logstash-integration-jdbc
    Installing logstash-integration-jdbc
    Installation successful
    // /usr/local/logstash/bin/logstash-plugin install logstash-output-zabbix
    Validating logstash-output-zabbix
    Installing logstash-output-zabbix
    Installation successful
    // wget https://github.com/logstash-plugins/logstash-input-beats/archive/master.zip -O /opt/master.zip
    // unzip -d /usr/local/logstash /opt/master.zip
    

    安装elasticsearch:

    // yum install elasticsearch-6.6.2.rpm
    编辑主配置文件:
    // vim /etc/elasticsearch/elasticsearch.yml
    cluster.name: my-application   #17
    node.name: node-1     #23
    path.data: /var/lib/elasticsearch
    path.logs: /var/log/elasticsearch
    network.host: 192.168.191.130     #55
    http.port: 9200   #59
    

    运行服务elasticsearch:

    // systemctl enable elasticsearch
    // systemctl start elasticsearch
    验证服务:
    // netstat -lptnu|grep java
    tcp6 0 0 192.168.191.130:9200 :::* LISTEN 14671/java
    tcp6 0 0 192.168.191.130:9300 :::* LISTEN 14671/java
    

    通过读取系统日志文件的监控,过滤掉日志信息中的异常关键词,将这些带有异常关键词的日志信息过滤出来,输出到zabbix上,通过zabbix告警机制实现触发告警,最后由logsatsh拉取日志并过滤,输出到zabbix中
    添加配置文件: 测试配置文件 !!!!!!!

    // vim /usr/local/logstash/config/from_beat.conf
    input {
            beats {
                    port => 5044
            }
    }
    filter {
            #过滤access 日志
            if ( [source] =~ "localhost\_access\_log" ) {
                    grok {
                            match => {
                                    message => [ "%{COMMONAPACHELOG}" ]
                            }
                    }
                    date {
                            match => [ "request_time", "ISO8601" ]
                            locale => "cn"
                            target => "request_time"
                    }
            #过滤tomcat日志
            }
            else if ( [source] =~ "catalina" ) {
            #使用正则匹配内容到字段
                    grok {
                            match => {
                                    message => [ "(?<webapp_name>\[\w+\])\s+(?<request_time>\d{4}\-\d{2}\-\d{2}\s+\w{2}\:\w{2}\:\w{2}\,\w{3})\s+(?<log_level>\w+)\s+(?<class_package>[^.^\s]+(?:\.[^.\s]+)+)\.(?<class_name>[^\s]+)\s+(?<message_content>.+)" ]
                            }
                    }
                    #解析请求时间
                    date {
                            match => [ "request_time", "ISO8601" ]
                            locale => "cn"
                            target => "request_time"
                    }
            }
            else {
                    drop {}
            }
    }
    output {
            if ( [source] =~ "localhost_access_log" ) {
                    elasticsearch {
                            hosts => ["192.168.132.129:9200"]
                            index => "access_log"
                    }
            }
            else {
                    elasticsearch {
                            hosts => ["192.168.132.129:9200"]
                            index => "tomcat_log"
                    }
            }
            stdout { codec => rubydebug }
    }
    

    启动logstash 看是否能接收到 filebeat 传过来的日志内容: 进行前台测试:

    // /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/from_beat.conf
    

    开启成功提示下方日志信息:

     Sending Logstash logs to /usr/local/logstash/logs which is now configured via log4j2.properties
    [2020-10-08T20:37:47,334][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"7.9.2", "jruby.version"=>"jruby 9.2.13.0 (2.5.7) 2020-08-03 9a89c94bcc Java HotSpot(TM) 64-Bit Server VM 25.131-b11 on 1.8.0_131-b11 +indy +jit [linux-x86_64]"}
    [2020-10-08T20:37:47,923][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
    [2020-10-08T20:37:50,204][INFO ][org.reflections.Reflections] Reflections took 42 ms to scan 1 urls, producing 22 keys and 45 values
    [2020-10-08T20:37:51,436][INFO ][logstash.javapipeline    ][main] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>2, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50, "pipeline.max_inflight"=>250, "pipeline.sources"=>["/etc/logstash/conf.d/zabbix.conf"], :thread=>"#<Thread:0x2ef7b133 run>"}
    [2020-10-08T20:37:52,520][INFO ][logstash.javapipeline    ][main] Pipeline Java execution initialization time {"seconds"=>1.06}
    [2020-10-08T20:37:52,766][INFO ][logstash.inputs.file     ][main] No sincedb_path set, generating one based on the "path" setting {:sincedb_path=>"/usr/local/logstash/data/plugins/inputs/file/.sincedb_730aea1d074d4636ec2eacfacc10f882", :path=>["/var/log/secure"]}
    [2020-10-08T20:37:52,830][INFO ][logstash.javapipeline    ][main] Pipeline started {"pipeline.id"=>"main"}
    [2020-10-08T20:37:52,921][INFO ][filewatch.observingtail  ][main][5ffcc74b3b6be0e4daa892ae39a07dc20fdbc1d05bd5cedc4b4290930274f61e] START, creating Discoverer, Watch with file and sincedb collections
    [2020-10-08T20:37:52,963][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
    [2020-10-08T20:37:53,369][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}c
    

    启动后如果没有报错需要等待logstash 完成,此时间可能比较长!!!!!
    踩过的坑!!!!!
    日志中出现的报错:

    [2020-10-08T09:06:42,311][WARN ][logstash.outputs.zabbix ][main][630c433ba0be0739e8ee72ca91d03f00695f05873b64e12c7488b8f2c32a8e05] Zabbix server at 192.168.132.130 rejected all items sent. {:zabbix_host=>"192.168.132.129"} 
    

    表示zabbix主机拒绝了所有的连接:

    解决方法:
    修改防火墙规则,使需要测试 logstash  IP 放行。  切记!!不要关闭防火墙!!!!!
    查看配置文件zabbix地址与logstash地址
    [2020-10-08T20:41:45,154][WARN ][logstash.outputs.zabbix ][main][cf6b448e829beca8b4ffbd64e71c6e510108015eec5933f7b4675d79d5f09f03] Field referenced by 192.168.132.130 is missing
    

    缺少引用的字段:

    解决方法:
    添加带有message字段的信息到secure日志中  
    

    缺少插件出现的问题:

    操作过程中出现了无法启动配置文件,从而导致无限循环  #仅做参考
    

    在 /usr/local/logstash/config 下添加配置文件:

    # vim /usr/local/logstash/config/file_to_zabbix.conf
    input {
            file {
                    path => ["/var/log/secure"]
                    type => "system"
                    start_position => "beginning"
                    add_field => [ "[zabbix_key]", "oslogs" ]    #新增的一个字段,字段名是zabbix_key,值为 oslogs。
                    add_field => [ "[zabbix_host]", "192.168.132.129" ]    #新增的字段是zabbix_host,值可以在这里直接定义,这里的 IP 获取的就是日志是本机的,这个主机名要与zabbix web中“主机名称”需要保持一致。 
            }
    }
    output {
            zabbix {
                    zabbix_host => "[zabbix_host]"    #这个zabbix_host将获取上面input的oslogs
                    zabbix_key => "[zabbix_key]"    #这个zabbix_key将获取上面input的ip地址
                    zabbix_server_host => "192.168.132.130"    #这是指定zabbix server的IP地址,监控端的
                    zabbix_server_port => "10051"    #这是指定zabbix server的监控端的监听端口
                    zabbix_value => "message"    #这个很重要,指定要传给zabbix监控项(oslogs)的值, zabbix_value默认的值是"message"字段
            }
            # stdout { codec => rubydebug }    #这个模式下第一次测试时可以开启,测试OK之后,可以关闭
    } 
    

    在这里插入图片描述

    // /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/file_to_zabbix.conf &>/dev/null &
    // 后台运行添加   &>/dev/null &
    

    在本机安装 zabbix-agent :

    // yum install Zabbix-agent
    修改 zabbix-agent 配置文件:
    // vim /etc/zabiix/zabbix-agent.conf
    Server=192.168.132.130      		#98行,添加监控端IP
    ServerActive=192.168.132.130     #139行,添加监控端IP
    

    通过zabbix-web平台创建需要的模板:
    在这里插入图片描述

    在模板下创建应用集:
    在这里插入图片描述

    创建监控项:监控类型必须的zabbix采集器。键值要与文本的键值相同。
    在这里插入图片描述

    创建触发器:
    在这里插入图片描述

    我们要将创建好的模板链接到客户端上,也就是监控192.168.132.129主机上的日志数据,发现日志异常就会进行告警:
    在这里插入图片描述

    我们通过检测里的最新数据获取客户端的最新日志:
    在这里插入图片描述

    进入历史记录,我们会看到详细的日志内容:
    在这里插入图片描述

    展开全文
  • 1.实时统计监控请使用tail命令:现在我们做了很多实时监控,5,10分钟运行一次,每次对最近10分钟的内容进行统计并报警,但是很多人都是直接对文件grep时间,这样越到晚上,文件越大(按天日志),遍
  • 相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除了前n行或后n行之外的所有行,也有可能需要实时监控log日志的更新,那么怎么实现呢...
  • 相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除了前n行或后n行之外的所有行,也有可能需要实时监控log日志的更新,那么怎么实现呢...
  • CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。 CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架...
  • 12.9 监控 113 12.10 小结 113 深入研究 113 习题 114 第13章 单线程、并发服务器(TCP) 115 13.1 引言 115 13.2 服务器中的数据驱动处理 115 13.3 用单线程进行数据驱动处理 116 13.4 单线程服务器的线程...
  • 爬取通过ajax动态加载的页面(实时监控华尔街见闻资讯与快讯) Python爬虫:人人影视追剧脚本 爬取大西洋月刊每日新闻 (补充)爬取大西洋月刊并 使用彩云小译翻译 API 脚本 数据分析篇 Data Science - Quora ...
  •  10.2 在RAC环境中为实时监控使用自定义包代替DBMSAPPLICATION_INFO  10.3 在数据库的表中记录计时信息  10.4 减少PL/SQL程序的单元迭代和迭代的时间  10.5 使用ROWID进行迭代处理  10.6 将数据类型、IF语句的...
  • 书中内容主要集中在大多数企业常见的问题之上,如安装和升级到oracle database 11g数据库软件、创建数据库、导出和导入数据、数据库的备份与恢复、性能调优,等等。  本书还提供了dba完成本职工作必备的基本的uniix...
  •  基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块:内容管理、支付中心、用户管理(包括第三方)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和...
  • awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。由「开源前哨...
  • 4.SCALA语言HelloWorld及安装总结(作业LINUX系统安装) 5.SCALA中变量的声明(两种方式) 6.SCALA中数据类型及操作符 7.IF语句及WHILE循环、循环表达式及FOR基本使用 8.FOR循环深入讲解及yield功能 9.SCALA中的...
  • [Oracle.11g权威指南(第2版)].谷长勇.扫描版.pdf

    千次下载 热门讨论 2013-06-23 21:16:09
    13.2.8 监控表的存储空间 313 13.2.9 修改表空间的存储设置 314 13.2.10 删除表 314 13.2.11 外部表的管理 314 13.3 索引 316 13.3.1 概念 316 13.3.2 各种类型索引的比较和选择 317 13.3.3 索引的基本操作 317 13.4...
  • 总的来说分为以下几大类,若有您感兴趣的内容,我将不胜荣幸: Java; 后台中间件; Docker; Kubernetes; 大数据; 综合兴趣,例如LeetCode、树莓派、群晖系统等; DevOps; 常用工具和技巧; 问题处理备忘; ...
  • 实例250 实时显示聊天内容 实例251 实现快速浏览 实例252 动态多级联下拉列表 第2篇 文件管理篇 第11章 文件基本操作及文件上传下载 11.1 文件的基本操作 实例253 查看文件是否存在 实例254 重命名文件 实例...
  • awesome-cpp 就是 fffaraz 发起维护的 C++ 资源列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 中文版由开源前哨和CPP开发者微信公号团队维护更新,在 GitHub 已...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink 自绘CStatic,实现超链接。 iconbutton_demo 演示了多种自绘Button。 ...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...
  • Java资源包01

    2016-08-31 09:16:25
    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink 自绘CStatic,实现超链接。 iconbutton_demo 演示了多种自绘Button。 ...
  • java开源包101

    2016-07-13 10:11:08
    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink 自绘CStatic,实现超链接。 iconbutton_demo 演示了多种自绘Button。 ...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
关键字:

linux监控实时监控日志内容脚本

linux 订阅