美文网首页
Logstash & Kibana 安装部署

Logstash & Kibana 安装部署

作者: 大鱼炖海棠 | 来源:发表于2019-08-20 22:38 被阅读0次

    Logstash是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的存储库中。

    通过Kibana,您可以对自己的Elasticsearch进行可视化,还可以在 Elastic Stack中进行导航,这样您便可以进行各种操作了,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。

    中文官网:https://www.elastic.co/cn

    Kibana

    安装包下载

    下载地址:
    https://www.elastic.co/cn/downloads/logstash
    https://www.elastic.co/cn/downloads/kibana
    选择适合你的任意方式下载:

    logstash 下载

    本篇采用的版本:
    logstash-6.5.0.tar.gz
    kibana-6.5.0-linux-x86_64.tar.gz

    Logstash 安装

    1. 解压
    [root@localhost app]# tar -xzvf AppStore/logstash-6.5.0.tar.gz
    
    1. Logstash 目录
    [root@localhost app]# cd logstash-6.5.0/
    [root@localhost logstash-6.5.0]# ll
    总用量 844
    drwxr-xr-x.  2 root root   4096 8月  20 20:51 bin
    drwxr-xr-x.  2 root root    142 8月  20 20:51 config
    -rw-r--r--.  1 root root   2276 11月 10 2018 CONTRIBUTORS
    drwxr-xr-x.  2 root root      6 11月 10 2018 data
    -rw-r--r--.  1 root root   4056 11月 10 2018 Gemfile
    -rw-r--r--.  1 root root  21851 11月 10 2018 Gemfile.lock
    drwxr-xr-x.  6 root root     84 8月  20 20:51 lib
    -rw-r--r--.  1 root root  13675 11月 10 2018 LICENSE.txt
    drwxr-xr-x.  4 root root     90 8月  20 20:51 logstash-core
    drwxr-xr-x.  3 root root     57 8月  20 20:51 logstash-core-plugin-api
    drwxr-xr-x.  4 root root     55 8月  20 20:51 modules
    -rw-r--r--.  1 root root 808305 11月 10 2018 NOTICE.TXT
    drwxr-xr-x.  3 root root     30 8月  20 20:51 tools
    drwxr-xr-x.  4 root root     33 8月  20 20:51 vendor
    drwxr-xr-x. 10 root root    205 8月  20 20:51 x-pack
    
    1. 编辑配置文件
      拷贝一份logstash的样例配置文件,该文件用于配置数据采集源、输出及过滤规则:
    [root@localhost app]# cd logstash-6.5.0/config/
    [root@localhost config]# ll
    总用量 32
    -rw-r--r--. 1 root root 1846 11月 10 2018 jvm.options
    -rw-r--r--. 1 root root 4568 11月 10 2018 log4j2.properties
    -rw-r--r--. 1 root root  342 11月 10 2018 logstash-sample.conf
    -rw-r--r--. 1 root root 8162 11月 10 2018 logstash.yml
    -rw-r--r--. 1 root root 3244 11月 10 2018 pipelines.yml
    -rw-r--r--. 1 root root 1696 11月 10 2018 startup.options
    [root@localhost config]# cp logstash-sample.conf logstash-nginx-access-log.conf
    [root@localhost config]# vim logstash-nginx-access-log.conf
    

    编辑采集源和输出(过滤器配置参考官方文档):

    # input 模块的内容表示 logstash 收集的是文件数据
    # path 指向了数据来源
    # type 可自定义
    # start_position 值表示文件数据的采集位置,“beginning”表示从文件的第一行开始收集数据
    input {
      file {
        path => ["/usr/local/nginx/logs/access.log"]
        type => "galaxy"
        start_position => "beginning"
      }
    }
    
    # output 模块配置了数据的输出端,本例输出端是 es 数据库
    # hosts 指定了 es 服务器地址
    # index 指定了数据文件的索引规则
    output {
      elasticsearch {
        hosts => ["http://192.168.18.170:9200"]
        index => "logstash-nginx-access-log-%{+YYYY.MM.dd}"
      }
    }
    
    1. 启动 Logstash
      确保es已启动,netstat -nlp | grep 9200 命令检查es服务是否正常
    bin/logstash -f config/logstash-nginx-access-log.conf
    

    访问 Nginx

    启动Nginx服务,访问nginx页面(Nginx 安装部署可参考 Linux 下安装部署 Nginx(一)
    Linux 下安装部署 Nginx(二)),logstash输出如下日志信息:

    Sending Logstash logs to /app/logstash-6.5.0/logs which is now configured via log4j2.properties
    [2019-08-20T21:51:43,172][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/app/logstash-6.5.0/data/queue"}
    [2019-08-20T21:51:43,622][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.dead_letter_queue", :path=>"/app/logstash-6.5.0/data/dead_letter_queue"}
    [2019-08-20T21:51:47,045][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
    [2019-08-20T21:51:48,134][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"6.5.0"}
    [2019-08-20T21:51:48,298][INFO ][logstash.agent           ] No persistent UUID file found. Generating new UUID {:uuid=>"c73c448c-7de4-4858-ab35-2365ea4aff9b", :path=>"/app/logstash-6.5.0/data/uuid"}
    [2019-08-20T21:52:00,597][INFO ][logstash.pipeline        ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>1, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50}
    [2019-08-20T21:52:02,928][INFO ][logstash.outputs.elasticsearch] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[http://192.168.18.170:9200/]}}
    [2019-08-20T21:52:02,959][INFO ][logstash.outputs.elasticsearch] Running health check to see if an Elasticsearch connection is working {:healthcheck_url=>http://192.168.18.170:9200/, :path=>"/"}
    [2019-08-20T21:52:05,734][WARN ][logstash.outputs.elasticsearch] Restored connection to ES instance {:url=>"http://192.168.18.170:9200/"}
    [2019-08-20T21:52:06,498][INFO ][logstash.outputs.elasticsearch] ES Output version determined {:es_version=>6}
    [2019-08-20T21:52:06,505][WARN ][logstash.outputs.elasticsearch] Detected a 6.x and above cluster: the `type` event field won't be used to determine the document _type {:es_version=>6}
    [2019-08-20T21:52:06,590][INFO ][logstash.outputs.elasticsearch] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["http://192.168.18.170:9200"]}
    [2019-08-20T21:52:06,795][INFO ][logstash.outputs.elasticsearch] Using mapping template from {:path=>nil}
    [2019-08-20T21:52:06,860][INFO ][logstash.outputs.elasticsearch] Attempting to install template {:manage_template=>{"template"=>"logstash-*", "version"=>60001, "settings"=>{"index.refresh_interval"=>"5s"}, "mappings"=>{"_default_"=>{"dynamic_templates"=>[{"message_field"=>{"path_match"=>"message", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false}}}, {"string_fields"=>{"match"=>"*", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false, "fields"=>{"keyword"=>{"type"=>"keyword", "ignore_above"=>256}}}}}], "properties"=>{"@timestamp"=>{"type"=>"date"}, "@version"=>{"type"=>"keyword"}, "geoip"=>{"dynamic"=>true, "properties"=>{"ip"=>{"type"=>"ip"}, "location"=>{"type"=>"geo_point"}, "latitude"=>{"type"=>"half_float"}, "longitude"=>{"type"=>"half_float"}}}}}}}}
    [2019-08-20T21:52:06,962][INFO ][logstash.outputs.elasticsearch] Installing elasticsearch template to _template/logstash
    [2019-08-20T21:52:07,971][INFO ][logstash.inputs.file     ] No sincedb_path set, generating one based on the "path" setting {:sincedb_path=>"/app/logstash-6.5.0/data/plugins/inputs/file/.sincedb_d2343edad78a7252d2ea9cba15bbff6d", :path=>["/usr/local/nginx/logs/access.log"]}
    [2019-08-20T21:52:08,098][INFO ][logstash.pipeline        ] Pipeline started successfully {:pipeline_id=>"main", :thread=>"#<Thread:0x2d72e666 run>"}
    [2019-08-20T21:52:08,288][INFO ][filewatch.observingtail  ] START, creating Discoverer, Watch with file and sincedb collections
    [2019-08-20T21:52:08,798][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
    [2019-08-20T21:52:13,197][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
    

    上述输出是在提示logstash建立了一些数据文件,与es成功建连,并且启动成功。这表示logstash已经具备了采集数据,并对数据进行转换和传输的能力。

    接下来安装kibana来对收集到的数据进行图形化展示。

    Kibana 安装

    1. 解压
    [root@localhost app]# tar -xzvf AppStore/kibana-6.5.0-linux-x86_64.tar.gz 
    
    1. Kibana 目录
    [root@localhost ~]# cd /app/kibana-6.5.0-linux-x86_64/
    [root@localhost kibana-6.5.0-linux-x86_64]# ll
    总用量 1736
    drwxr-xr-x.    2 elk elk      64 11月 10 2018 bin
    drwxrwxr-x.    2 elk elk      24 11月 10 2018 config
    drwxrwxr-x.    2 elk elk       6 11月 10 2018 data
    -rw-rw-r--.    1 elk elk   13675 11月 10 2018 LICENSE.txt
    drwxrwxr-x.    6 elk elk     108 11月 10 2018 node
    drwxrwxr-x. 1186 elk elk   36864 11月 10 2018 node_modules
    -rw-rw-r--.    1 elk elk 1680994 11月 10 2018 NOTICE.txt
    drwxrwxr-x.    3 elk elk      45 11月 10 2018 optimize
    -rw-rw-r--.    1 elk elk     748 11月 10 2018 package.json
    drwxrwxr-x.    2 elk elk       6 11月 10 2018 plugins
    -rw-rw-r--.    1 elk elk    5309 11月 10 2018 README.txt
    drwxr-xr-x.   16 elk elk     264 11月 10 2018 src
    drwxr-xr-x.    2 elk elk    4096 11月 10 2018 webpackShims
    
    1. 编辑配置文件
    // 打开 server.host 配置,值为 kibana 部署的服务器 IP
    server.host: "192.168.18.170"
    // 打开 es 指向配置,指向 es 服务器地址
    elasticsearch.url: "http://192.168.18.170:9200"
    

    保存退出。

    1. 启动 Kibana
    [root@localhost kibana-6.5.0-linux-x86_64]# ./bin/kibana
    

    启动成功后访问:http://192.168.18.170:5601

    kibana 页面

    进入management菜单,点击Kibana - Index Pattern按钮,创建索引模式

    创建索引模式

    进入Discover菜单,查看Nginx服务器的访问量及日志信息:

    Nginx 日志图形化展示

    相关文章

      网友评论

          本文标题:Logstash & Kibana 安装部署

          本文链接:https://www.haomeiwen.com/subject/ywvvdctx.html