• ELK 日志系统入门及通过 Docker 部署


    1. ELK 系统是什么

    ELK 是一套日志中心解决方案,其三个字母分别表示:

    • Elasticsearch:负责日志存储及检索
    • Logstash:负责日志收集、过滤及格式化
    • Kibana:数据看板,负责日志展示及数据可视化

    Elasticsearch 是自带搜索引擎的数据库。

    2. ELK 系统常见用途

    1. 网络监控

    可以用来监控网络设备。

    2. 应用监控

    实时监控业务:如访问量、终端类型
    分析业务:可以调取日志分析平均每秒请求数、峰谷请求数、API 请求数等,用于系统扩容的参考。

    3. 特殊用途

    分析用户画像。

    3. Docker 容器化应用日志中心

    除了应用镜像外,ELK 对应的镜像分别是 logstashelasticsearchkibana 三个。

    1. 开启 Docker 宿主机的 rsyslog 服务

    编辑服务的配置文件:

    vi /etc/rsyslog.conf

    开启下面的三个参数,让 rsyslog 加载 imtcp 模块并监听 514 端口,然后将 rsyslog 收集到的数据转发到 4560 端口:

    $ModLoad imtcp
    $InputTcpServerRun 514
    *.* @@localhost:4560

    重启 rsyslog 服务,并查看 514 端口是否监听成功:

    systemctl restart rsyslog
    netstat -ntpl

    2. 部署 ELK

    部署 ElasticSearch 服务

    docker run -d -p 9200:9200 -v 
     ~/elasticsearch/data:/usr/share/elasticsearch/data 
     --name elasticsearch elasticsearch

    部署完成后可以访问宿主机的 9200 端口验证服务是否部署成功。成功时会输出 JSON 格式的版本信息。

    部署 Logstash 服务

    ~/logstash/ 目录下创建 logstash.conf 配置文件,将 Logstash 服务配置为从本地的 rsyslog 服务获取应用日志数据,然后转发到 Elasticsearch 数据库。配置文件内容如下:

    input {
      syslog {
        type => "rsyslog"
        prot => 4560
      }
    }
    output {
      elasticsearch {
        hosts => [ "elasticsearch:9200" ]
      }
    }

    启动 Logstash 容器:

    docker run -d -p 4560:4560 
      -v ~/logstash/logstash.conf:/etc/logstash.conf 
      --link elasticsearch:elasticsearch 
      --name logstash logstash 
      logstash -f /etc/logstash.conf

    部署 Kibana 服务

    docker run -d -p 5601:5601 
      --link elasticsearch:elasticsearch 
      -e ELASTICSEARCH_URL=http://elasticsearch:9200 
      --name kibana kibana

    启动应用程序产生日志

    注意,启动应用程序的容器时,需要设置将日志转发到 syslog 服务中。

    docker run -d -p 80:80 
      --log-driver syslog 
      --log-opt syslog-address=tcp://localhost:514 
      --log-opt tag="nginx" 
      --name nginx
      nginx

    3. 测试

    产生应用日志

    打开浏览器,并多次访问 localhost:80 来让应用程序生产日志。

    打开 Kibana 可视化界面

    在 localhost:5601 页面中,查看日志信息。可以在查询框中输入 program=nginx 查询特定日志。

  • 相关阅读:
    Javascript 组成:ECMAscript、Dom、Bom
    js字符串的操作
    函数(方法)基本内容
    for循环运用,三角形
    Java Script 数组
    控制语句—for循环、while循环
    JavaScript基础内容
    网站创建中遇到的问题
    数据库无法启动ORA-01034: ORACLE not available
    关于数据库管理员安全和权限
  • 原文地址:https://www.cnblogs.com/kika/p/10851687.html
Copyright © 2020-2023  润新知