修改info-center的channel把日志发送到日志服务器_Elastic Stack 实现日志的自动采集、搜索和分析

Elastic Stack 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎

Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化管理和展示

Beats 是一个免费且开放的平台,集合了多种单一用途数据采集器,将数据发送给 Logstash 或 Elasticsearch

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

一、下载镜像(image)

搜索镱像(image)

docker search elasticsearchdocker search kibana docker search logstash 

获取镜像(image)

docker pull elasticsearch:7.6.0     #镜像名称:Tagdocker pull kibana:7.6.0            #镜像名称:Tagdocker pull logstash:7.6.0            #镜像名称:Tag

注:版本要统一

二、创建 ELK.yml

ELK.yml

version: "3.5"  services:  elasticsearch:     container_name: elasticsearch     image: elasticsearch:7.6.0             #镱像(image)     restart: always                        #重启方式     environment:       discovery.type: single-node          #环境变量:运行模式 单例     ports:       - "9200:9200"                        #端口映射       - "9300:9300"  kibana:    container_name: kibana    image: kibana:7.6.0                     #镱像(image)    restart: always                         #重启方式    environment:      I18N_LOCALE: "zh-CN"                  #指定中文    ports:       - "5601:5601"                        #端口映射  logstash:    container_name: logstash    image: logstash:7.6.0    restart: always    volumes:                                #文件夹映射,本地:容器      - "/Users/iChochy/logs:/usr/share/logstash/logs"    ports:       - "5044:5044"      - "9600:9600"

volumes自定义监控的文件夹注:注意YML文件编写,不要出现 Tab 制表符,否则导致文件解析错误,启动容器(container)失败

# 错误信息yaml.scanner.ScannerError: mapping values are not allowed here

三、运行容器

宿主机hosts中添加

127.0.0.1      elasticsearch

命令启动

docker-compose -f ELK.yml up -d
docker-compose                 -f  #指定构建文件                up  #创建并启动容器                -d  #后台运行容器(container),打印容器(container)ID

四、检查容器的运行状态

elasticsearch 访问:http://127.0.0.1:9200

70ecb63b7f64fb11762a66e12fd0646a.png

logstash 访问:http://127.0.0.1:9600

71a768975a583634cf3d862f5818a96b.png

Kibana 访问:http://127.0.0.1:5601,进入 Kibana

0e938cf7cb6a271e70680ee115081a77.png

运行docker ps查询容器运行状态,可以查看到容器的ID

mleo$ docker psCONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                            NAMES1b8cb2effede        logstash:7.6.0        "/usr/local/bin/dock…"   2 hours ago         Up About an hour    0.0.0.0:5044->5044/tcp, 0.0.0.0:9600->9600/tcp   logstash69b8bc678e4e        kibana:7.6.0          "/usr/local/bin/dumb…"   3 weeks ago         Up 2 hours          0.0.0.0:5601->5601/tcp                           kibana8c655f5b7493        elasticsearch:7.6.0   "/usr/local/bin/dock…"   3 weeks ago         Up 2 hours          0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch

运行docker logs id查看容器运行日志

例:持续查看logstash日志docker logs 1b8cb2effede -f

五、修改logstash配置,监控日志文件

  • 运行docker exec -it 1b8cb2effede bash进入logstash
  • 运行vi pipeline/logstash.conf修改logstash默认配置
input {  beats {    port => 5044  }  file {    path => "/usr/share/logstash/logs/*"   #监控的文件路径  }}output {  stdout {    codec => rubydebug  }  elasticsearch {    hosts => ["http://elasticsearch:9200"]  #elasticsearch请求地址    index => "ichochy"                      #索引名称  }}
  • 运行docker restart 1b8cb2effede重启 logstash

六、采集日志

在logstash的监控的文件路径下动态添加日志文件,日志就可以自动采集到 elasticsearch

touch web.log   #创建日志文件echo "www.ichochy.com" > web.log  #添加日志信息

查看 logstash 日志信息可以看到打印的日志

{      "@version" => "1",          "path" => "/usr/share/logstash/logs/web.log",          "host" => "1b8cb2effede",    "@timestamp" => 2020-07-10T14:07:16.633Z,       "message" => "www.ichochy.com"}

七、搜索、分析日志

访问:http://127.0.0.1:5601,进入 Kibana

在Discover可以看到刚刚添加进来的日志数据,开始表演…………

3a9adcffbccfd70db467d76f1c0ba461.png

联系方式

网站:https://ichochy.com/

源文:https://ichochy.com/posts/20200710/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值