日志监控_error日志监控脚本 - CSDN
精华内容
参与话题
  • 有的朋友会问,好好的Windows日志为什么要把它转成Syslog呢?呵呵,当Windows服务器比较少的时候,我们是不需要这样做的。但试想如果你管理着成千上百台的Windows机器,你会一台一台的登录上去用Event Viewer查看吗...

    有的朋友会问,好好的Windows日志为什么要把它转成Syslog呢?呵呵,当Windows服务器比较少的时候,我们是不需要这样做的。但试想如果你管理着成千上百台的Windows机器,你会一台一台的登录上去用Event Viewer查看吗?为什么不建立一台中心Syslog服务器来接受所有的Windows,Linux,网络设备等等发送来的日志呢?这样你可以轻松地在一台日志服务器上管理所有的日志。比如Splunk就是一个很好的免费日志服务器,它不仅可以接受多种方式发送来的日志(包括syslog),而且还提供功能很强大的搜索(被称为Google for IT),图形化等功能。

    本文针对当前运维市场开源系统的,大致如下:
    Facebook 日志系统 Scribe、Apache 日志系统 Chukwa
    Linkedin 日志系统 Kafka、Cloudera 日志系统 Flume

    概述
    许多软件平台每天都会产生大量的日志(一般为流数据,如搜索引擎 page view,淘宝等),处理这些日志需要特定的日志系统,一般地,这些日志系统需要具有如下特征:

    构建应用系统和分析系统的桥梁,并将它们之间的关系解耦。
    支持接近实时在线分析系统,以及类似 Hadoop 之类的离线分析系统。
    具有高可扩展性,即当数据量增加时,可以通过增加节点进行横向扩展。
    本文从设计架构、负载均衡、可扩展性和容错性等方面对比目前开源的日志系统,包括 Facebook 日志系统 Scribe ,Apache 日志系统 Chukwa,Linkedin 日志系统 Kafka 和 Cloudera 日志系统 Flume 等。

    日志管理服务分类:

    1.rsyslogd 普通日志管理服务

    采集各种服务产生的信息根据日志服务配置文件内容将信息进行分类保存。

    2.klogd 内核信息日志文件服务

    专门记录内核信息

    3.logrotate 日志文件轮替服务

    解决日志文件内容过多消耗内存的日志文件替换服务


    Log Parser 微软强大的日志分析工具

    Log Parser(微软网站下载)是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory。它可以像使用 SQL 语句一样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来。

    详细教程:windows安全日志分析工具logparser用法详解 http://www.jb51.net/hack/384430.html

        Log Parser 微软强大的日志分析工具 http://www.cnblogs.com/haoliansheng/p/4040208.html

    微软还有一款强大的网络抓包工具 Microsoft Network Monitor 是类似 WireShark 的网路封包监看软体, 关键是微软的免费工具.

    Event Viewer(事件查看器)

    Windows Event Viewer 记录了应用程序、安全性和系统事件的所有信息。这是已发生的(或继续发生的)事件的巨大信息来源,它应该是用于诊断和监控系统的主要工具之一。

    MSSQL_logview

    是一款对SQL Server日志分析工具,它可以浏览日志查看有关数据库的操作日志。此外,MSSQL_logview还是一个数据库恢复工具,如果您由于误操删除、误插入、误更新导致数据库数据丢失或更改,MSSQL_logview可以帮你找回您所需要的数据。
     
    MSSQL_logview可恢复的操作:
     删除(delete),插入(insert),更新(Updata)
     
    MSSQL_logview支持的版本:SQL Server 2000,SQL Server 2005,SQL Server 2008,SQL Server 2008R2


    MSSQL_logview使用方法:
     1.先把SQL服务停掉,把数据库MDF和日志文件LDF文件复制一份,做备份
     2.开启SQL服务,打开软件,连接服务器,并选择好数据库,日志文件选择备份后的LDF
     3.选择要恢复的表及操作

    Splunk 

    是一个可运行于各种平台的 IT 数据分析、日志分析、业务数据分析软件,支持的作业平台包含Windows, Linux, Solaris, FreeBSD, AIX, MacOS, HP-UX。与 Google Analytics 这一类的 Web 日志分析软件的不同之处在于,Splunk 可以支持任何 IT 设备(服务器、网络设备、应用程序、数据库等)所产生的日志,其对日志进行处理的方式是进行高效索引之后让管理员可以对日志中出现的各种情况进行搜索,并且通过非常好的图形化的方式展现出来。 
      每天由各种服务器所产生的日志的数量是非常惊人的,而遇到突发情况时,却往往能够从这些海量日志中找到最多的有用消息。通常在 Unix 下对日志进行查找使用的是 grep 之类的低效率的方式,而 Splunk 使用了现代搜索引擎技术对日志进行搜索,同时提供了一个非常强大的 AJAX 式的界面展现日志。 
      Splunk 是一款对 IT 管理员非常有用、非常专业的工具。也正因为如此,与其他 Linux 下的其他日志分析软件不同,Splunk 是一个商业软件,支持海量信息搜索及更多的功能,比如分散式搜寻(Distributed Search)、计划告警(Schedule Alert)、权限控制(Access Control)等。 
      Splunk的四大应用:运维IT数据整合、IT安全信息及数据的整合、应用程序IT数据整合、IT数据的法规遵从。
      Splunk的六大功能:Index(索引) 、Search(搜索)、Alert(警报通知)、Report(报告)、Share(资源共享)、Secure(安全功能)。
    主要功能:
    • 日志分析
    • 业务数据分析
    • 运维保障
    主要特点:
    • 快速查找日志信息
    • 数据关联分析
    • 支持各种平台和系统
    • 支持超过千种标准Apps
    • 可灵活开发专有Apps
    • 支持企业级架构,分级、分布式部署

    SysTools NTFS Log Analyzer

    (硬盘日志分析工具)是一款硬盘日志文件分析的工具。基本上现在的安装了Windows操作系统的电脑硬盘分区,都是NTFS文件系统。这个工具能够通过NTFS日志分析文件操作的信息,从而得知文件增删改的情况。
    如何查看硬盘使用日志
    点我的电脑右键有个管理,管理里有个事件查看器,里的点那个系统就是你硬盘的事件了!亲,此软件需要安装微软.net 环境

    ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成:

        Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

        Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。

        Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。


        日志平台的结构示意图


    Weblog expert

    是一个快速和强大的访问日志分析器。这会让你了解你的网站的访客:活动统计,访问的文件的路径,通过该网站,信息指页面,搜索引擎,浏览器,操作系统,和更多。该计划所产生的易于阅读的报告,包括文本信息(表)和图表。

    官方网站:http://www.weblogexpert.com


    Nginx利用第三方模块nginx_upstream_check_module来检查后端服务器的健康情况

    http://www.linuxyan.com/web-server/90.html

    图解 windows日志分析工具 WebLog Expert 安装及使用教程 
    http://www.111cn.net/sys/Windows/88761.htm

    最佳Nginx日志分析工具Goaccess 
    http://my.oschina.net/mrco/blog/181737

    又是nm的Linux,烦不烦,含Redis 
    http://yanliu.org/2015/08/19/ELK-redis%E6%90%AD%E5%BB%BAnginx%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90%E5%B9%B3%E5%8F%B0/

    一个简单的工具(Apache|Nginx日志分析工具),貌似可以用用    http://www.cr173.com/soft/83182.html

    日志易: 日志分析更容易 - 日志易 https://www.rizhiyi.com/ 【商业】

    windows安全日志分析工具logparser用法详解_工具使用_网络安全 http://www.jb51.net/hack/384430.html

    另附:日志工具_iis日志_日志分析工具_网站日志分析工具_下载列表  http://down.chinaz.com/class/185_1.htm

               日志分析和统计 - 开源软件库 - 开源中国社区 http://www.oschina.net/project/tag/147/log-analyzer

    用Kibana和logstash快速搭建实时日志查询、收集与分析系统  http://storysky.blog.51cto.com/628458/1158707/


    Splunk 是一款顶级的日志分析软件,如果你经常用 grep、awk、sed、sort、uniq、tail、head 来分析日志,那么你需要 Splunk。能处理常规的日志格式,比如 apache、squid、系统日志、mail.log 这些。对所有日志先进行 index,然后可以交叉查询,支持复杂的查询语句。然后通过直观的方式表现出来。日志可以通过文件方式传倒 Splunk 服务器,也可以通过网络实时传输过去。或者是分布式的日志收集。总之支持多种日志收集方法。

    这个软件分为免费版本和专业版本。专业版本的价格是 3 万多刀。免费版本的功能也足够强大了。


    一、Webtrends


    Webtrends现在是Netiq公司的网站访问统计软件,可以说是业界日志分析软件的工业标准。笔者通过对其新版本Webtrends 7.0的试用,亲身体会到了此产品在网站运营分析应用方面的强大功能。
    Webtrends 7.0 已经不单纯是一款提供日志分析统计数据的软件,除了最常见的日志分析功能外,其可以对数据进行深度挖掘,更重视网站运营、市场营销等对运营人员更容易理解的方式提供解决方案,可以进一步对用户的访问行为、访问流向、设定用户场景分析、网络营销推广活动、用户访问来源、内容访问等进行分析,对网站业务运营能够提供比较全面支持分析。
    WebTrends的搜索分析与其推出的WebPosition搜索引擎优化解决方案的集成,及时扩充、增强了对Web的分析能力。WebTrends SmartReports针对Microsoft、Excel而开发,市场营销人员通过其提供的定制化分析报告,就可将组织机构与付费搜索定位、营销额与ROI(市场投资回报率)之间的关系量化,进而帮助他们将目光聚焦在最有利可图的搜索定位上。
    由于Webtrends是一款企业级商业软件,其价格也是相对比较高的,对于小型网站来说,可能并不适用,但强烈推荐有实力的大中型网站、电子商务类网站使用。
    网址:http://www.webtrends.com

    Download:http://www.skycn.com/soft/1437.html#downUrlMap


    二、AWStats(免费)(Linux平台)
    AWStats是我见过的所有免费日志分析软件中最好的。这个软件可以分析大量Web、ftp、email、流媒体等多种类型服务器的日志,因为是perl写的,所以部署起来也相对容易,现在版本已经支持负载均衡(load banlance)服务器、反相域名查询等高级功能。而且AWStats是所有免费日志分析软件中图形界面做的最好的软件,能够提供非常漂亮的分析报表和图形。AWStats可以分析出的报表数据基本能够满足日常运营的分析,也可以对搜索引擎的来源、关键字等进行分析。并且提供多语言支持,同样的报表可以分别以中文、英文、日文等多种语言浏览。
    建议中小型网站采用此日志分析工具进行分析。
    网址:http://awstats.sourceforge.net/

    演示网址:http://ns3744.ovh.NET/awstats/awstats.pl?config=destailleur.fr


    三、Webalizer(免费)(linux平台)
    Webalizer是最流行的记录分析工具之一。很多人都喜欢这个工具,运行的速度非常快。但这个工具软件的图形报表不是很理想。软件的GD图形库提供了一些可读的图表。但是,这些图表从审美学的角度看并不是那样吸引人。但这些报表足以提供一些重要的日志分析数据。

    网站:http://www.mrunix.Net/webalizer/


    四、Analog(免费)(linux平台)
    由一撮顽固的爱好者支持的Analog工具软件是另一个有希望的竞争者。Analog工具软件尽可能的向用户展示出每一种信息。同时。它也例示了一个向普通用户展示大量信息的不错例子。按照缺省设置,所有信息都显示在同一网页上。用户点击网页顶端的导航栏可以选择一个具体的报告,而这个报告又连接到报告的下一个部分。Analog的可取之处在于每一部分的网页上端都有一个导航栏,在某种程度上简化了导航方式。Analog比较有趣的列表包括:来自每个国家的点击率是多少、把用户带到这个网站来的搜索引擎查询以及访问者使用哪一种浏览器软件和哪一种操作系统。这个软件能够显示网络服务器记录中的一切信息。这个软件的图形界面比基于GD图形库的Webalizer软件稍微有所改进。但是,饼图标和棒图表距离理想的程度还差很远。Analog包含许多有用的信息,而且导航功能还可以。我们认为,这个软件应该得到五星等级中的四星级。

    Download:http://www.analog.cx/download.html


    五、Summary (linux平台)
    Summary是一个商业性日志分析工具,有30天免费试用期。这个软件包含所有的可能的信息和并以文本网页的方式提供一个列表选项供用户点击查看。例如,当你点击一个“带宽峰值”的链接时,你将被引导到列出不同时段使用带宽的网页,每一个条目都有一个小条状图形,但是,Summary软件中的图形非常小。在这里,小并不是缺陷。正好相反,Summary软件在外观上看起来非常合适。然而,整个图形用户界面使用起来非常麻烦。我们用了很长时间才浏览完毕我们需要看到的报告。Summary软件的价格不算太高,报告也非常合适。我们把这个软件评为五个星的等级中的四星级。

    Download:http://summary.net/download.html


    六:Urchin
    Urchin 是一个范畴上与 Google Analytics(分析)类似的网络分析解决方案,但它是一个由客户安装、托管和管理的软件版本。 Urchin 可帮助网站所有者更好地了解自己的在线营销活动、网站点击量的特征以及访问者的浏览体验。 不过,与 Google Analytics(分析)不同的是,Urchin 并非免费(许可费为 2995 美元),并且需要有经验的技术人员进行安装。
    因为 Urchin 使用服务器日志作为主要的数据来源,所以可用于不适合采用 Google Analytics(分析)等托管服务的场合,例如跟踪企业 Intranet 的流量、重新处理历史日志以及针对服务器错误提出报告。
    所有人都可以下载并安装功能完整的免费测试版,但许可只能通过 Urchin 软件的授权顾问提供,并非直接通过 Google 提供。
    目前Google的Urchin软件beta版本为90天试用软件,一旦Urchin开发完成,其价格为2995美元。
    Download:http://www.google.com/urchin/download.html
    展开全文
  • 1. Logstash1.1具体内容详解具体讲解大家可以看文档:https://www.elastic.co/guide/en/logstash/current/index.html1.2使用整体配置1.2.1项目工程中的配置在logback对应的配置文件logback-spring.xml中配置如下内容...

    1. Logstash

    1.1具体内容详解

    具体讲解大家可以看文档:https://www.elastic.co/guide/en/logstash/current/index.html

    1.2使用整体配置

    1.2.1项目工程中的配置

    在logback对应的配置文件logback-spring.xml中配置如下内容:

            注意encoder标签中对应的三个字段:requestUrl,traceId和clientIp,这三个是在要求在输出日志中增加这三个标签,和logback对应的默认输出合并,对应的输出结果为:

    1.2.2 日志发送到elasticsearch配置

    具体对应conf配置如下:

    input {
    
     file {
    
        type =>"XXX_kccf_pc_info"  ------对应的elasticsearch索引type值
    
       path => "/data/log/kccf_pc_info.*.log"     ------输入日志
    
       start_position => "beginning"
    
       codec => json {
    
                charset => "UTF-8"
    
           }
    
        }
    
    }
    
    filter {
    
       if[type] == "XXX_kccf_pc_info"
    
        {
    
           if "method=HEAD" in [requestUrl] {   ----------如果是心跳检查(head)在不会将日志拉取到elasticSearch
    
                    drop {}
    
          }
    
              mutate {
    
                    split =>["[requestUrl]",","]
    
             }
    
        }
    
       geoip {
    
               source => "ip"
    
               target => "geoip"
    
         }
    
    }
    
    filter {
    
       if[type] == "XXX_kccf_pc_info"
    
        {
    
            if [level] == "ERROR" and "PARAM_NO_PRIVILEGE" notin [message] and "ERROR-START" not in [message]
    
             {
    
              mutate {
    
                  add_tag => "email"}
    
             }
    
         }
    
             geoip{
    
                         source=> "ip"
    
                         target => "geoip"
    
        }
    
    }
    
    output {
    
      if[type] == "XXX_kccf_pc_info"{
    
         elasticsearch {
    
           hosts => "XXXXX"
    
           index => "XXXX-%{+YYYY.MM.dd}"  ------elasticsearch对应的索引名称
    
           sniffing => false
    
           manage_template => false
    
           flush_size => 3000
    
           idle_flush_time => 5
    
           user => "logstash"
    
           password => "logstash"
    
    #       ssl => true
    
    #       ssl_certificate_verification => false
    
    #       truststore => "/etc/logstash/truststore.jks"
    
    #       truststore_password => changeit
    
         }
    
      }
    
     if"email" in [tags] and [type] =="XXX_kccf_pc_info"
    
      {
    
       email{                ---------------------发送错误日志邮件
    
           port           =>    "587"
    
           address        =>    "smtp.XXXX.com"
    
           username       =>    "devops@XXXX.com"
    
           password       =>    "xxxxxx"
    
           authentication =>   "login"
    
           use_tls        =>    true
    
           from           =>    "devops@XXX.com"
    
           subject        =>    "Waring: you have an error on host101.201.118.236(TYJ1)"
    
           to             =>    "yjk@XXX.com"
    
           via            =>    "smtp"
    
           body           =>    "you hava an error ofkccf_pc_info!  server_ip:XXX\n ERROR time: %{@timestamp}+08:00Hours ; \n ERROR message: %{message} ; \nLogger Name: %{logger_name}; \n Level:%{level} ; \n level_value:%{level_value}; \n Stack_trace : \n %{stack_trace}\n "
    
           }
    
      }
    
    }

    2. Elastic search

    2.1具体内容详解

    详细内容参见:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

    Elasticsearch集群可以包含多个索引(数据库),这些索引又包含多个类型(表)。这些类型包含多个文档(行),每个文档都有多个字段(列)。

    2.2 elasticsearch head介绍

    下载和详细内容参见:https://github.com/mobz/elasticsearch-head

    可以查看elasticsearch服务器上各种信息

    2.3 searchguard 插件

    下载和详细内容参见:https://github.com/floragunncom/search-guard

    从对应配置文件名称就可以看出来,就主要有以下主要关系:

    2.4 script field

    详细说明参见:https://www.elastic.co/guide/en/elasticsearch/reference/5.6/search-request-script-fields.html

    就是可以根据脚本动态的在ElasticSearch中生成对应的field,而不是一开始就在mapping中定义的好的,后面在kibana配置大盘的时候会用到。

     

    2.5 painless 脚本

    脚本语言详解:https://www.elastic.co/guide/en/elasticsearch/reference/5.4/modules-scripting-painless.html

    3.Kibana

    3.1 具体内容详解

    下载和详细内容详解:https://www.elastic.co/guide/en/kibana/current/index.html

    3.2 searchguard 插件

    插件下载地址和详细说明参见:https://github.com/floragunncom/search-guard-kibana-plugin

    3.3 sentinl 邮件报警插件

    插件下载和详细说明地址:https://github.com/sirensolutions/sentinl/issues/137

    配置地址可以参考:http://blog.51cto.com/10546390/2051676

    注意:邮件配置的时候一定是授权码,不是密码,否则报授权失败

    4.日志监控大盘配置

    4.1 kibana日志搜索基本用法

     详细内容查看:https://www.elastic.co/guide/en/kibana/5.4/search.html

    AND,OR,NOT,范围查询语法支持

    其实对于kibana查询,还是可以使用filter进行查询的(高版本已经支持了,但是我们使用的5.4需要经过下面的步骤来增加filter):

    4.2 增加索引scriptfield

    之所以要增加scriptfields是因为比如从对应的下面日志中抽取对应的耗时:

    method=com.kccf.pc.controller.article.ArticleController.getArticleListcost 22 milliseconds

    要从对应的日志中截取对应的耗时内容,所以要使用脚本来进行截取,并将截取的值存放在对应的script fields字段中,供后面的Visualize使用。

    4.3 Visualize配置

    单击“加号”新增一个视图:

    并选择对应的视图类型,然后选择要从哪个索引采集数据进行配置:

    当然X,Y轴都可以配置多个统计,如下面的:

     

    4.4 Dashboard大盘配置

    大盘就是将上面配置的多个Visualized放在一个地方进行显示,如下图所示:

    新增大盘,通过如下操作:

    将Visualized放置在大盘中:

    5. 监控邮件报警sentinl配置

    5.1 新增watcher配置

    (1) General:表示多长时间运行一次,定时遍历日志

    (2) Input:对elasticSearch中的索引或者索引列表进行过滤采集,得到最终的输入

    (3) Condition:就是过滤之后的日志满足什么条件才进行报警

    (4) Transform:对结果进行转换

    (5) Actions:到达报警条件了,进行什么样的处理,一般就是发送邮件通知

    5.1.1 Input过滤:

    下面是配置的Input过滤:在最近一个小时内,耗时大于20毫秒的记录进行过滤

    {
    
     "search": {
    
       "request": {
    
          "index":[
    
           "indu_kccf_pc_info-*"
    
          ],
    
         "body": {
    
           "query": {
    
             "bool": {
    
               "must": [
    
                  {
    
                   "script": {
    
                     "script": {
    
                       "lang": "painless",
    
                       "params": {
    
                         "costTimeThrehold":20
    
                       },
    
                       "inline":"if(null != doc['message.keyword'].value &&doc['message.keyword'].value.trim().startsWith(\"method=\")&&doc['message.keyword'].value.trim().endsWith(\"milliseconds\")){Number costTimeNum = NumberFormat.getInstance().parse(doc['message.keyword'].value.substring(doc['message.keyword'].value.indexOf('cost')+4,doc['message.keyword'].value.lastIndexOf('milliseconds')-1).trim());if(costTimeNum.longValue() > params.costTimeThrehold) true; else false;}elsefalse;"
    
                      }
    
                    }
    
                  },
    
                  {
    
                   "range":{
    
                     "@timestamp": {
    
                       "gte": "now-1h",
    
                       "lte": "now",
    
                       "format": "epoch_millis"
    
                      }
    
                    }
    
                  }
    
                ]
    
              }
    
            }
    
          }
    
        }
    
      }
    
    }

    注意:inline里面的脚本功能就是截取如下日志中对应的耗时method=com.kccf.pc.controller.article.ArticleController.getArticleListcost 22 millisecondsRange对应的是时间范围过滤。

    5.1.2 Condition配置:

    Condition配置就是对input过滤得到结果进行统计,如果统计的结果满足设置的条件则进行触发后面的行为:

    上面的条件是Input对应的过滤结果的条数大于1则进行报警,这个脚本是可以自己动态编写的,因为sentinl插件也是在elasticSearch中定义了自己对应的索引:watcher和watcher_alarms-时间,如下面在elasticSearch-head中对应的截图所示:

    (1)   索引watcher类型sentinl-watcher对应的内容这个内容就是我们在kibana页面上配置的watcher内容的json化)

    {
    
        "_index":"watcher",
    
        "_type":"sentinl-watcher",
    
        "_id":"38eljz92mycwqi00ian55ng66r-0tqtq7q46valazkmg8yn20ggb9-im815vceg9gap6akbvjejnhfr",
    
        "_version":32,
    
        "_score":1,
    
        "_source":{
    
           "title":"所有",
    
           "disable":false,
    
           "report":false,
    
           "trigger":{
    
               "schedule":{
    
                  "later":"every 1 secs"
    
               }
    
           },
    
           "input":{
    
               "search":{
    
                  "request":{
    
                      "index":[
    
                         "cpcn-*"
    
                      ],
    
                      "body":{}
    
                  }
    
               }
    
           },
    
           "condition":{
    
               "script":{
    
                  "script":"payload.hits.total >0"
    
               }
    
           },
    
           "actions":{
    
               "error报警": {
    
                  "throttle_period":"0h0m1s",
    
                  "email":{
    
                      "to":"yjk@XXX.com",
    
                      "from":"devops@XXX.com",
    
                      "subject":"报警",
    
                      "body":"event:{{payload.hits.total}} errorMsgConent:{{payload.hits.hits}}"
    
                  }
    
               }
    
           }
    
        }
    
    }

    (2)索引watcher类型sentinl-script对应的内容:就是在kibana中配置的Input中的body内容

    {
    
        "_index":"watcher",
    
        "_type":"sentinl-script",
    
        "_id":"8mmkkevvdr0g0sz3mmojn61or-s6hfac0a3y36ier49ju1sjor-keeuakonk0v51cntohp1ll3di",
    
        "_version":1,
    
        "_score":1,
    
        "_source":{
    
           "description":"input",
    
           "title":"error",
    
           "body":"{
    
           "search":{
    
               "request":{
    
                  "index":["cpcn-*"],
    
                  "body":{
    
                      "query":{
    
                         "bool":{
    
                             "must":[{
    
                                    "wildcard":{
    
                                       "message":"*exception*"
    
                                    }
    
                                },
    
                                {
    
                                    "wildcard":{
    
                                       "message":"*error*"
    
                                    }
    
                                },
    
                                {
    
                                    "range":{
    
                                       "@timestamp":{
    
                                           "gte":"now-1h",
    
                                           "lte":"now",
    
                                           "format":"epoch_millis"
    
                                       }
    
                                    }
    
                                }
    
                             ],
    
                             "must_not":[]
    
                         }
    
                      }
    
                  }
    
               }
    
           }
    
        }
    
        "
    
    }
    
    }

    (3)报警信息内容对应的是索引watcher_alarms-时间类型为配置Action名称的内容:

    {
    
        "_index":"watcher_alarms-2018.04.09",
    
        "_type":"email_admin",------配置的action名称
    
        "_id":"AWKphaIhjWbDkGCDylsw",
    
        "_version":1,
    
        "_score":1,
    
        "_source":{
    
           "@timestamp":"2018-04-09T08:28:50.080Z",
    
           "watcher":"watcher_title",
    
           "level":"high",
    
           "message":"Found 177 Events",
    
           "action":"email_admin",
    
           "payload":{
    
               "took":4,
    
               "timed_out":false,
    
               "_shards":{
    
                  "total":25,
    
                  "successful":25,
    
                  "skipped":0,
    
                  "failed":0
    
               },
    
               "hits":{
    
                  "total":177,
    
                  "max_score":1,
    
                  "hits":[{
    
                      "_index":"cpcn-2018.01.17",
    
                      "_type":"logs",
    
                      "_id":"AWECHmRX1zYDH4X06oyZ",
    
                      "_score":1,
    
                      "_source":{
    
                         "@version":"1",
    
                         "host":"DESKTOP-7DN8E16",
    
                         "@timestamp":"2018-01-17T03:16:41.677Z",
    
                         "message":"qwe"
    
                      }
    
                  }]
    
               }
    
           },
    
           "report":false
    
        }
    
    }

    注意上面的报警内容,正好是我们在Condition中配置的需要的信息,如condition配置所示:

    {
    
     "script": {
    
       "script": "payload.hits.total > 1"  -----正好对应的上面报警内容对应的记录中的内容
    
      }
    
    }

    5.1.3 Actions配置:

    Actions配置就配置在满足报警条件的时候,如何进行处理,如下面报警条件满足的时候进行邮件通知处理配置如下:

    注意:body中的内容正是取索引watcher_alarms-时间类型为“方法耗时超过阈值报警”名称的内容

     

    展开全文
  • 本文转自微信号EAWorld。...前言随着Devops、云计算、微服务、容器等理念的逐步落地...面对动辄几百上千个虚拟机、容器,数十种要监控的对象,现有的监控系统还能否支撑的住?来自于容器、虚拟机、物理机的应用日志、系...

    本文转自微信号EAWorld。扫描下方二维码,关注成功后,回复“普元方法+”,将会获得热门课堂免费学习机会!

    前言


    随着Devops、云计算、微服务、容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器、虚拟机、物理机不一而足。

    面对动辄几百上千个虚拟机、容器,数十种要监控的对象,现有的监控系统还能否支撑的住?来自于容器、虚拟机、物理机的应用日志、系统服务日志如何采用同一套方案快速、完整的收集和检索?怎样的架构、技术方案才更适合如此庞大繁杂的监控需求呢?本文主要从以下几个方面来分享下笔者在日志监控方面的一些经验。

    目录
    一、DevOps浪潮下带来的监控挑战
    二、统一监控平台架构解析
    三、日志监控的技术栈
    四、日志监控经典方案ELK
    五、微服务+容器云背景下的日志监控实践Journald+fluentd+elasticsearch
    六、如何选择适合自己的日志监控方案?

    一、DevOps浪潮下带来的监控挑战


    现在Devops、云计算、微服务、容器等理念正在逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器,监控面临的压力越来越大。挑战主要有:

    图片描述

    • 监控源的多样化挑战
      业务、应用、网络设备、存储设备、物理机、虚拟机、容器、数据库、各种系统软件等等,需要监控的对象越来越多,指标也多种多样,如何以一个统一的视角,监控到所有的数据?

    • 海量数据的分析处理挑战
      设备越来越多,应用越来越多,要监控的数据自然也排山倒海般袭来,怎样的监控系统才能应对大数据的采集、存储和实时分析展现呢?

    • 软硬件数据资源的管理分析挑战
      数据是采集到了,采集全了,那么如何对他们进行分析呢?应用、系统软件和运行环境、网络、存储设备的关联关系是否能准确体现呢,某个点发生了故障、问题影响的链路是否能快速找到并进行处理呢?监控离不开和软硬件资源管理的结合。

    面对这些挑战,是否感觉压力山大呢?一个监控平台,拥有哪些能力才能满足如此大的挑战呢?
    图片描述

    一个好的统一监控平台,应当具备如图所示的能力:

    • 高度抽象模型,扩展监控指标:正如之前所说,监控源、指标的多样化,要求我们必须要进行监控模型的高度抽象,并且针对于指标可以动态扩展,这样才能保证监控平台的健壮性和可扩展性。

    • 多种监控视图:监控数据自然不能只是简单的表格展现,饼图、柱状图、折线图、仪表盘等等,监控的数据需要结合实际情况选择最佳的图标展现。

    • 强大的数据加工能力:海量的数据必须要有足够强大的数据加工、分析处理能力才能得到直观的结果。

    • 多种数据采集技术:数据源的不同决定了采集的技术也是有区别的。

    • 多种报警机制:短信、邮件、企业内部通讯工具等等,结合不同场景选择不同的报警机制。

    • 全路径问题跟踪:一个请求有可能牵扯到数个系统、数十个接口的调用,出了问题有可能是其中任何一个环节,也有可能是应用所处运行环境、网络、存储的问题,所以问题的定位离不开全路径的跟踪。

    二、统一监控平台架构解析


    统一监控平台由七大角色构成:监控源、数据采集、数据存储、数据分析、数据展现、预警中心、CMDB(企业软硬件资产管理)。

    图片描述

    监控源
    从层次上来分,大致可以分为三层,业务应用层、中间件层、基础设施层。业务应用层主要包括应用软件、企业消息总线等,中间件层包括数据库、缓存、配置中心、等各种系统软件,基础设施层主要有物理机、虚拟机、容器、网络设备、存储设备等等。

    数据采集
    数据源如此多样,数据采集的任务自然轻松不了。数据采集从指标上划分可以分为业务指标、应用指标、系统软件监控指标、系统指标。

    应用监控指标如:可用性、异常、吞吐量、响应时间、当前等待笔数、资源占用率、请求量、日志大小、性能、队列深度、线程数、服务调用次数、访问量、服务可用性等,业务监控指标如大额流水、流水区域、流水明细、请求笔数、响应时间、响应笔数等,系统监控指标如:CPU负载、内存负载、磁盘负载、网络IO、磁盘IO、tcp连接数、进程数等。

    从采集方式来说通常可以分为接口采集、客户端agent采集、通过网络协议主动抓取(http、snmp等)

    数据存储
    采集到的数据一般都会存储到文件系统(如HDFS)、索引系统(如elasticsearch)、指标库(如influxdb)、消息队列(如kafka,做消息临时存储或者缓冲)、数据库(如mysql)

    数据分析
    针对采集到的数据,进行数据的处理。处理分两类:实时处理和批处理。技术包括Map/Reduce计算、全日志检索、流式计算、指标计算等,重点是根据不同的场景需求选择不同的计算方式。

    数据展现
    将处理的结果进行图表展现,在多屏时代,跨设备的支持必不可少。

    预警
    如果在数据处理过程发现了问题,则需要进行异常的分析、风险的预估以及事件的触发或告警。

    CMDB(企业软硬件资产管理)
    CMDB在统一监控平台中是很重要的一环,监控源虽然种类繁多,但是他们大都有着关系,如应用运行在运行环境中,应用的正常运行又依赖网络和存储设备,一个应用也会依赖于其他的应用(业务依赖),一旦其中任何一个环节出了问题,都会导致应用的不可用。CMDB除了存储软硬件资产外,还要存储这样一份资产间的关联关系,一个资产发生了故障,要能根据这个关系迅速得知哪些其他的资产会被影响,然后逐一解决问题。

    三、日志监控的技术栈


    图片描述

    既然前面讲了整个监控系统的架构,下面就按照架构中的角色来分类看看有哪些常用的开源技术。由于篇幅原因,这里无法详细描述每一个技术的细节,大家感兴趣的话,可以一一了解下。

    日志源

    首先谈谈日志的来源,日志的一般存储在三个位置:数据库、操作系统日志、日志文件。一般操作日志会习惯于存储在数据库中,在这里暂且不提。Syslog、Rsyslog、Journald都是linux系统的日志服务。

    syslog 守护进程的任务是记录系统日志。它从应用程序和服务中获取格式各异的日志消息并保存到磁盘上,消息的元数据是组件名、优先级、时间戳、进程标签和 PID,日志格式很是宽泛,没有定义结构化的格式,所以系统的分析和日志消息处理也就变得十分混乱,同时性能和其他的一些缺点随着时间推移也慢慢被放大,后来慢慢被Rsyslog所取代。

    Rsyslog可以说是Syslog的升级版,它涵盖SysLog的常用功能,不过在功能和性能上更为出色。

    Red Hat Enterprise Linux 7与SUSE Linux Enterprise Server 12这些新一代的Linux发行版本使用systemd管理服务。

    journal是systemd的一个组件,由journald处理。Journald是为Linux服务器打造的新系统日志方式,它标志着文本日志文件的终结,它不再存储日志文件,而是将日志信息写入到二进制文件,使用journalctl阅读。它捕获系统日志信息、内核日志信息,以及来自原始RAM磁盘的信息,早期启动信息以及所有服务中写入STDOUT和STDERR数据流的信息。Journald快速改变着服务器如何处理日志信息与管理员如何访问的方式。

    数据采集

    日志的采集工作大都是通过客户端进行,客户端除了一些直接可用的工具(如fluentd、flume、logstash)外,还可以通过log4j的appender、自行写脚本实现等。

    fluentd是开源社区中流行的日志收集工具,fluentd基于CRuby实现,并对性能表现关键的一些组件用C语言重新实现,整体性能相当不错。优点是设计简洁,pipeline内数据传递可靠性高。缺点是相较于logstash和flume,其插件支持相对少一些。

    flume是由JAVA实现的一个分布式的、可靠的、高性能、可扩展的的日志收集框架,Flume比较看重数据的传输,使用基于事务的数据传递方式来保证事件传递的可靠性,几乎没有数据的解析预处理。仅仅是数据的产生,封装成event然后传输。同时使用zookeeper进行负载均衡,不过JVM带来的问题自然是内存占用相对较高。

    Logstash相比大家都比较熟悉了,是ELK中的L,logstash基于JRuby实现,可以跨平台运行在JVM上。logstash安装简单,使用简单,结构也简单,所有操作全在配置文件设定,运行调用配置文件即可。同时社区活跃,生态圈提供了大量的插件。早期Logstash并不支持数据的高可靠传递,所以在一些关键业务数据的采集上,使用logstash就不如flume更加可靠。不过在5.1.1版本发布了持久化队列的beta版,显然logstash也在快速改进自己的缺陷。

    数据缓冲

    在大批量的监控数据涌过来后,考虑到网络的压力和数据处理的瓶颈,一般会在存储前先经过一层数据缓冲,将采集到的数据先放置到消息队列中,然后再从分布式队列中读取数据并存储。这张图是新浪的日志检索系统的架构图,可以看到数据采集后,经过kafka缓冲,然后再使用logstash去读取kafka中的数据并存储到es中:
    图片描述

    关于分布式队列这里就不详细讲解了,常用有kafka,rabbitmq,zeromq等。

    数据存储&分析
    存储和分析息息相关,监控数据的处理通常分为实时处理和非实时处理(如大数据的批处理框架hadoop等),如Elasticsearch就是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。

    除了ES外,还有一些流式大数据处理框架可以做到实时或者准实时的处理大数据流。如Spark和Storm。关于大数据处理的内容因为本人也没有多少实践经验,就不在此多做分享了。后面主要还是针对于Elasticsearch这一框架进行介绍。

    数据展现
    Kibana和Elasticsearch可以说是无缝衔接,再加上Logstash,组成的ELK赫赫有名,很多企业都会直接采用这一种框架。

    Kibana确实也能满足大部分的监控需求,但是其毕竟只能依靠现有的数据进行展现,如果需要和外部数据结合处理,就会无法满足了,并且在自己构建一个统一监控平台时,需要将日志和性能等监控数据结合CMDB、预警中心、等统一展现,所以对于kibana的替换就无法避免了。我们是通过使用JAVA去查询Elasticsearch的数据,结合其他数据统一分析,将展现的结果进行滚动展现或者用图表显示。

    四、ELK-日志监控经典方案


    图片描述

    ELK stack :是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。以Elasticsearch、Logstash、Kibana组成的数据处理工具链,在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。

    优点:

    • 处理方式灵活:
      Elasticsearch是实时全文检索,不需要像storm那样预先编程才能使用。

    • 配置简易上手:
      Elasticsearch全部采用JSON接口,LogStash是Ruby DSL设计,都是目前业界最通用的配置语法设计。

    • 检索性能高效:
      Elasticsearch的优秀设计和实现基本可以达到百亿级数据查询的秒级响应。
      集群线性扩展:不管是Elasticsearch集群还是Logstash集群都是可以线性扩展的。

    • 前端展现绚丽:
      Kibana为 Elasticsearch 提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。
      开源:三个软件全部开源,便于自主掌控。

    • 三个工具相互紧密结合:
      由同一个公司提供,并且作为一套解决方案ELK Stack对外提供,不管是部署还是功能的整合,三者无缝衔接,便于安装和使用。

    Logstash

    图片描述

    logstash是一个开源的、服务端的数据流转管道,支持从多个目标中收取数据、转换并且发送,在logstash中,包含三个阶段:inputs、filters、outputs。

    图片描述

    nputs用来产生事件数据,Filters用来定义、过滤数据事件,outputs用来把事件数据发送到外部。Inputs和Outputs支持通过codecs在管道中对数据进行编码和反编码。Logstash提供了强大的插件机制,每一个角色都包含了多种插件,易于扩展和选择。比较典型的插件如下:

    Input plugins:beats、file、syslog、http、kafka、github、jmx、…

    Filter plugins:grok、json、csv、…

    Output plugins:file、http、jira、kafka、elasticsearch、mongodb、opentsdb、rabbitmq、zeromq、…

    Codec plugins:json、msgpack、plain、…

    若想了解更多关于logstash的插件,可以到官网去自行了解:
    https://www.elastic.co/guide/en/logstash/5.2/index.html

    Elasticsearch

    图片描述

    Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。据说Elasticsearch最初的目的只是为了给作者当时正在学厨师的妻子做一个菜谱的搜索引擎,不过到目前这个菜谱搜索引擎仍然没有面世。
    主要特点如下:

    • 实时分析
    • 分布式实时文件存储,并将每一个字段都编入索引
    • 文档导向,所有的对象全部是文档
    • 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas) 接口友好,支持 JSON
    • 检索性能强大,ES基于lucene,对于每个新写入的数据,会针对于每个字段都创建索引

    Kibana

    图片描述

    如官网所述,Kibana是ELK的窗口,专门针对于Elasticsearch进行数据分析展现。它提供的诸如面板、仪表盘、可视化功能等能力,基本上承载了对es的查询和分析能力。

    五、微服务+容器云背景下的日志监控实践Journald+fluentd+elasticsearch


    下面给大家介绍下我们在微服务+容器云背景下的日志监控实践,首先要介绍下我们的DevOps平台架构,平台运行在由kubernetes+docker构建的容器云中,kubernetes、docker等服务运行在IaaS平台上(我们的生产环境是阿里云)。

    图片描述

    我们的监控系统在选型时,也是纠结了好久。我们的需求来自于多方面的,一方面要对系统服务的日志进行监控(在虚拟机中),如kubernetes、etcd等服务的日志,另一方面要对应用、数据库、redis等其他软件的日志进行监控(在容器中)。

    考虑到统一日志源,我们最终决定让所有的日志都输入到系统日志journald中,由journald作为统一对外日志发送来源。UMC系统的日志监控架构如图所示:

    图片描述

    跑在容器中的应用、数据库等软件都会把日志落到容器日志(docker日志),然后在docker系统服务上进行配置,将docker容器日志输出到系统日志服务journald中。这样,容器中的日志就统一到了系统日志中。针对于运行在虚拟机上的系统软件,如kubernetes、etcd等,配置成系统服务service,使用systemd管理,自然也就做到了将其日志输入到journald中。

    再往上就比较简单了,自实现一个agent,读取journald中的日志,通过tcp协议发送到fluentd中,考虑到现在的日志量并不会太大,所以没有再使用kafka进行缓冲,而是直接经过fluentd的拦截和过滤,将日志发送到Elasticsearch中。

    为什么选择Fluentd而不是选择logstash?

    • logstash插件相当丰富,但是fluentd的插件已经能满足要求了
    • Logstash是JRuby语言实现的,依赖jvm运行,内存占用较高,性能也比较差
    • 我们的日志主要来源还是docker,Fluentd的方案与Logstash差不多,但是它可以省掉Indexer这层,而且它的核心代码是C++写的,从效率上说会比Logstash高很多。Fluentd是除了Splunk以外唯一一个在Docker官方日志驱动里面的工具。Fluentd则不仅支持Logstash那种文件的方式去搜集日志,还可以通过Docker的Fluentd
      driver直接定向搜集
    • 我们的虚拟机操作系统是coreos,安装fluentd更加方便,不需要再去安装jre。

    主要解决的问题:

    1、所有的日志都混合在一起了,如果区分哪些是A应用在dev环境下的实例的日志?哪些是某个数据库在测试环境下运行的实例日志?

    容器的日志一个记录如图所示
    图片描述

    我们的ContainerName是有命名规则的,其中包含了产品名(如mysql-1),环境名(如env-deployment),通过这两个属性来进行模糊查询匹配。找到对应的日志。从而也做到了不需要分析日志内容、也不用区分是应用日志还是数据库日志,达到将日志和其对应的产品实例关联起来的目的。

    2、ES中文分词插件,ES默认的分词会把“中国”分解成“中”,“国”,这样在检索“中国”的时候,也会把“美国”搜索出来,我们最终安装了ik中文分词插件elasticsearch-analysis-ik,就可以把“中国”当成一个整体去检索了。

    六、如何选择适合自己的日志监控方案?

    介绍了整个监控平台架构,也介绍了日志监控的技术栈,那么,如何选择适合自己的日志监控方案呢?我认为应当从如下几个方面来综合考量。

    • 工具能力是否满足,像logstash/flume/fluentd都满足我们的要求,虽然fluentd相对于另外两个工具的插件少了不少,但是就我们的需求而言,fluentd足够了。

    • 性能对比,既然logstash/flume/fluentd都符合要求,相比之下,fluentd的性能最好。

    • 看技术能力是否能cover住,如果有些自己特殊的需求是工具满足不了的,就会需要自行扩展工具,那就要好好考量该工具的实现语言自己的团队是否能cover住,比如一个纯java团队,去用ruby语言扩展logstash的能力,就会有些风险了。

    • 监控平台日志量评估,要从可扩展性去设计日志监控的架构,当然,对于整个监控平台而言也是如此。

    总之,适合自己的才是最好的。

    关于作者
    王海龙
    现任普元信息高级研发工程师,毕业于华东师范大学,曾参与和负责银联Paas云平台项目、兴业银行CAP4J项目、交通银行信用卡中心统一监控平台项目、神华灾备云平台、万达DevOps平台等项目。

    图片描述

    关于EAWorld
    微服务,DevOps,元数据,企业架构原创技术分享,EAii(Enterprise Architecture Innovation Institute)企业架构创新研究院旗下官方微信公众号。

    扫描下方二维码,关注成功后,回复“普元方法+”,将会获得热门课堂免费学习机会!
    微信号:EAWorld,长按二维码关注。
    图片描述

    展开全文
  • 轻量级监控平台之异常日志监控脚本 #!/bin/bash #进程监控脚本 #功能需求: 上报服务日志错误记录 . /etc/profile . ~/.bash_profile pushurl="https://lightmonitorapi.test.cn/push/serviceerror" proNum=$...

    轻量级监控平台之异常日志监控脚本

    #!/bin/bash
    #进程监控脚本
    #功能需求: 上报服务日志错误记录
    . /etc/profile
    . ~/.bash_profile
    
    pushurl="https://lightmonitorapi.test.cn/push/serviceerror"
    
    proNum=$(jps | grep -v Jps | cut -d' ' -f1)
    i=1
    cd /opt/web/
    webDir=$( ls )
    
    msg=""
    for pid in  $proNum
    do
    
        serviceName=$(service list | grep "$pid" | cut  -d' ' -f1)
        if [ -n "$serviceName" ];then
            logName=$(cat /opt/service/deploy/"$serviceName"/service_log4j.xml | grep 'activexAppender' | awk '{print $3}' | awk -F'/' '{print $4}' |sed 's/"//g')
            logdir="/opt/service/log/"$serviceName"/"$logName
            if [ -f "$logdir" ];then
                ctime=$(date " %m-%d %H:%M")
                excenum=$(grep "$ctime" "$logdir" |grep "Exception" | wc -l )
                excedetail=""
                if [ $excenum -gt 0 ];then
                    excedetail=$(grep "$ctime" "$logdir" |grep "Exception" -A 30)
                fi
                error=$(grep "$ctime" "$logdir" | grep "ERROR" | wc -l)
                msg=$msg$pid"-"$serviceName"-"$excenum"-"$error"-{{"$excedetail"}}#=\n"
            else
                echo "file not found:"$serviceName
            fi
        else
            for fileName in $webDir
            do
                fileDir=$(ps -ef | grep -v grep | grep "$pid" | grep "$fileName" )
                if [ -n "$fileDir" ];then
                     namespace="/opt/web/$fileName/webapps/WEB-INF/classes/META-INF/namespace.properties"
                     conf=$(cat "$namespace" | awk -F'=' '{print $2}')
                     logdir="/opt/web/"$fileName"/web/logs/"$conf"/"$conf".log"
                     uplogdir="/opt/web/"$fileName"/web/logs/"$conf
                     if [  -d "$uplogdir" -a -f "$logdir" ];then
                        ctime=$(date " %H:%M")
                        excenum=$(grep "$ctime" "$logdir" |grep "Exception" | wc -l )
                        excedetail=""
                        if [ $excenum -gt 0 ];then
                            excedetail=$(grep "$ctime" "$logdir" |grep "Exception" -A 30)
                        fi
                        error=$(grep "$time" "$logdir" | grep "ERROR" | wc -l)
                        msg=$msg$pid"-"$fileName"-"$excenum"-"$error"-{{"$excedetail"}}#=\n"
                     else
                        echo "file not found:"$fileName
                        echo "$conf"
                        echo "$logdir"
                        echo "$uplogdir"
                     fi
                fi
            done
        fi
    done
    
    ip=$(ip addr | grep 'BROADCAST' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d '/')
    
    ticket=$(cat /opt/shell/ticket.txt)
    
    
    curl $pushurl \
       -H "Accept: application/json" \
       -H 'Content-Type: application/json' \
       -d \ '{"ip": "'"${ip}"'", "ticket": "'"${ticket}"'", "data": "'"${msg}"'"}'

    架构设计@工程设计@服务稳定性之路

    展开全文
  • ...作者丨吴树生:腾讯高级工程师,负责 SNG 大数据监控平台建设。...导语:当前 SNG 全链路日志监控平台每日数据存储量10TB,可做到1/10的压缩比,峰值流量30GB/s。在构建这样一个平台时,究竟
  • 实时日志监控系统-全览

    万次阅读 2018-05-15 13:59:00
    大数据处理,大致可以分为两大模块:离线数据处理:比如说电商、运营商出现的大批量的日志,可以由flume、sqoop或者其他路径,导入到HDFS中,然后经过数据清洗,使用Hive进行分析和处理,对于优化服务器资源等有很好...
  • 监控日志

    2019-08-25 16:03:44
    1.创建脚本存放目录,写脚本,给执行权限,改脚本存放目录的属主属组为zabbix 在客户端上进入根目录 [root@lwq-client ~]# cd /scripts/ //传入脚本log.py [root@lwq-client scripts]# ls check_swap.sh log.py ...
  • 电商总结-日志监控系统的解决方案

    千次阅读 2018-03-06 17:13:59
    监控系统主要用于服务器集群的资源和性能监控以及应用异常和性能监控日志管理等多维度的性能监控分析。一个完善的监控系统和日志系统对于一个系统的重要性不必我多说,总而言之就一句话,只有实时了解各系统的状态...
  • 实时日志监控系统

    2019-04-27 10:59:16
    前言 作为运维每天都需要关注主战的5xx,4xx情况以及那个接口的问题,之前的做法是通过nginx 本身的health模块获取当前访问量然后分析之后写入influxdb里面,grafana用来读取 5xx...所有的API日志通过rsyslog 打到lo...
  • 本次介绍使用Flume+kafka+storm+mysql的实时日志监控告警系统,代码部分比较多,会放在一个下载的连接里面,可以免费下载。 需求 在软件开发中国,上线运行时经常会出现一些报错,但是我们如果不能进行有效的实时...
  • 日志监控告警系统的设计与实现

    万次阅读 2019-05-30 13:46:33
    日志监控告警系统 基于的日志进行监控,监控需要一定规则,对触发监控规则的日志信息进行告警,告警的方式,是短信和邮件。 log4j---->error,info,debug 应用程序程序的日志 error级别 TimeOutException 角标...
  • [日志监控介绍] 之前,我介绍过 [ Windows环境监控RMAN备份并发送邮件BAT脚本 ] 的脚本监控方法。这次我们来说说Zabbix监控日志如何实现。日志文件监控,它最主要的是监控日志文件中有没有某个字符串的表达式。 如下...
  • 事件日志监控、分析、报表和归档软件 监控和报表网络范围内的Windows服务器、系统和网络设备;以及合规问题、性能精度是一个重大责任。在如此重压的环境下,您需要的将是一款前瞻性的事件日志监控解决方案。它能应付...
  • Tomcat日志监控工具——Probe

    千次阅读 2018-09-06 17:10:19
    今天遇到项目运行过程中需要查看用户访问日志,log4j.properties配置好,将log日志输出到tomcat的log文件夹下,但不可能每次都去服务器上拉取log文件查看,网上找了下,发现一个日志监控工具挺好的——Probe。...
  • 最近项目中需要记录服务端访问日志,所谓的服务端访问日志其实就是Controller层的访问日志,所以在开发...Service层日志监控:SpringBoot通过AOP实现系统日志记录(二)-Service层日志监控 Mapper层日志监控:Spr...
  • 程序运行避免不了出错,测试环境时我们可以通过打断点定位问题。...现在流行的日志监控系统ELK完美解决这个问题。本文整理了ELK单机版在Linux系统进行搭建,以及springboot将日志关联到ELK系统。 ELK是由...
  • Graylog日志监控系统安装配置

    千次阅读 2019-06-08 11:57:15
    虽然Zabbix也提供对日志监控的方案,但由于日志量、可视化、报表统计等方面的原因,需要一款专业的日志监控系统来做这件事。我对比过ELK、商业日志工具Splunk和Graylog,后面选择了Graylog。Graylog简单说就是一个...
  • 小程序日志监控工具

    2019-03-26 14:21:05
    一种轻量级的微信小程序日志监控的方法 今天一个活动要写个H5,明天一个功能要用小程序,天天都在写bug。用户反馈小程序用起来有问题还特么还不知道到底出了啥bug,反馈多了,老板要扣工资了!看来挖了太多坑不填也...
  • 这篇文章主要介绍了用服务器日志监控软件、服务器日志分析工具软件教你如何查看服务器日志?,需要的朋友可以参考下 现在很多公司局域网都有自己的文件服务器,用于存储或共享一些文件供局域网用户访问...
  • 本次主要讨论在java开发过程中,经常使用到的日志监控平台。技术选型有Elasticsearch、Filebeat、Kibana。适用于java应用实例少于50个的场景。软件版本统一为最新的6.5.0,操作系统为centos7.4。以下为整个安装、...
1 2 3 4 5 ... 20
收藏数 280,187
精华内容 112,074
关键字:

日志监控