ELK入门

一、概述

  1. 日志有什么用?
    日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

  2. 何为ELK?
    ELK 由ElasticSearch 、 Logstash 和 Kibana 三个开源工具组成,是一个开源实时日志分析平台。

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

二、系统环境

  • System: Centos release 7.0 (Final)
  • ElasticSearch: 5.4.0
  • Logstash: 5.4.0
  • Kibana: 5.4.0
  • Java: openjdk version ”1.8.0_102″
  • ELK下载: https://www.elastic.co/downloads/

三、安装篇

ElasticSearch安装

后续操作以elk目录为主

# 下载解压
cd /opt
mkdir elk
cd elk
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.0.tar.gz
tar -xzf elasticsearch-5.4.0.tar.gz

cd elasticsearch-5.4.0
# 配置cofng/elasticsearch.yml
http.hosts 不设置默认localhost

# 启动, -d后台运行
./bin/elasticsearch -d

# 查看是否安装成功
curl -XGET '192.168.100.242:9200/?pretty'
## 删除指定索引
curl -XDELETE '192.168.100.242:9200/hl4pl_prod-*?pretty'

ElasticSearch Head 插件安装 (待完善)

Logstash 安装

# 切换到elk目录

# 下载解压
https://artifacts.elastic.co/downloads/logstash/logstash-5.4.0.tar.gz
tar -xzf logstash-5.4.0.tar.gz

cd logstash-5.4.0

# 新建shipper.conf配置文件,添加内容如下:
input { stdin { } }
output {
  elasticsearch { hosts => ["localhost:9200"] }
  stdout { codec => rubydebug }
}

# 启动
bin/logstash -f shipper.conf
# nohup 启动
nohup bin/logstash -f shipper.conf  &

Kibana 安装

# 下载解压并安装
kibana-5.4.0-linux-x86_64.tar.gz

cd kibana-5.4.0-linux-x86_64

# 修改config/kibana.yml
设置elasticsearch.url为http://localhost:9200

# 配置ip地址和端口

四、配置篇

Logstash

shipper.conf 以正则表达式进行匹配

input {
        file {
                type => "log4j"
                path => [
                "/home/hoolinks/hl4pl/service/service.log",
                "/home/hoolinks/hl4pl/csp_web/logs/catalina.out",
                "/home/hoolinks/hl4pl/cp_web/logs/catalina.out"]
                codec => multiline {  ## 通过配置识别日志开头,来保证多行可以被合并
                        pattern => "^[\d{2}:\d{2}:\d{2}.\d+)]" ## 正则匹配以什么作为日志开头标志
                        negate => true
                        what => "previous"
                }
                start_position => "beginning"
        }
}
filter {
        if [type] == "log4j" {
                grok {
                        match => {
                                "message" => [
                                    "(?

五、使用篇

六、参考资料

Logstash官方地址
ELK中文指南
在线正则校验
ELK讨论社区

你可能感兴趣的:(ELK入门)