ELK监控apache的access.log访问日志

ELK

  • E: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • L: Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用。
  • K: Kibana是一个开源和免费的工具,它可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志。

安装基本都是特简单的那种

  • 首先有个java环境
  • 再有个redis啥的
    image
    这三件套置办齐了以后,我们就可以开始了,网上大多数是Nginx的,再就是Java的log4j的,这次我的ubantu上刚好只有apache,咱们就监控它吧。
    ELK里面的一般是先写L的配置文件,L是ruby开发,所以或多或少的可以看到ruby的影子,但是不要紧,且看我的conf。
input{
    file{
          type => "apache"
          path => [ "/var/log/apache2/access.log" ]
          start_position => "end"
          #start_position => "starting"
    }
}

filter {
    grok{
        match =>{  "message" => "%{COMBINEDAPACHELOG}"}  # 调用刚才找到的模块
        remove_field => ["message","type","path","httpversion","bytes","agent","referrer","auth"]
    }
    date {
                match => ["timestamp", "yyyy/mm/dd:HH:mm:ss"]
        }
}
output{
    elasticsearch{}
    stdout {
        codec => rubydebug
    }

}

其实大概也都能一眼看懂吧,值得一提的是:。=

  • {COMBINEDAPACHELOG}这个东西是logstash自己的官方插件,我们直接调用即可,其实logstash基本开发难度就是这里,自己编写插件。
  • stdout {codec => rubydebug}这个是把filter的日志也打印出来,logstash服务开启就能查看到。
  • 可能有人要问如果这个logstash程序kill了,日志文件是不是丢了呀。其实不是,logstash会保存一个.master的数据库来记录访问日志的行数,完全不用担心数据丢失。

开启Elasticsearch

Elasticsearch默认跑在9200端口,具体配置请参考这里

开启kibana

kibana安装特别简单,tar zvxf后直接找个web 服务器扔进去,是纯js和HTML开发,什么依赖都不要哦~
默认访问地址是http://localhost:5601
第一次会出现这个画面:
image
kibana默认会认为日志来源是logstash,当然亦可以是hdfs,redis什么的,以后碰到再交流。
这里就直接创建create。
点击discover
image
就是这么简单。
转载:https://www.jianshu.com/p/24c7bcb6d5b4

posted @ 2024-10-15 17:03  先锋之客  阅读(8)  评论(0编辑  收藏  举报