通过监控进行日志显示

首先

当你注意到的时候,Elastic Stack已经添加了许多新功能。这次是一个小巧的功能,但相当令人振奋(或许?)。

在监控中显示日志

监控功能中显示了每个节点和索引的指标,现在已添加了与基础设施应用程序的日志协同显示功能。

Screenshot_2019-04-16 Stack Monitoring - Overview.png

然而,默认情况下,只会显示消息,没有其他内容出现。
按照所写的方式,正确设置Filebeat并进行显示。

Filebeat的配置

设定大致是这样的。
将Filebeat安装在装有Elasticsearch的服务器上。由于本次没有用于监控的集群,所以直接发送到本地的Elasticsearch中。

filebeat.config:
   modules:
     path: /etc/filebeat/modules.d/*.yml
   module: elasticsearch
output.elasticsearch:
   hosts: ["localhost:9200"]

以这个设置启动后,会出现以下这样的画面。

Screenshot_2019-04-16 Stack Monitoring - Overview(1).png

虽然和之前的版本不同,嗯,就当作是调皮一点好了

根据查看GitHub上的Issue,似乎会以不同的颜色提供警告信息。

显示日志

对于概述:
概述一词的情况

undefined

在这里显示的只有最新的10个项目。在日志下方还有Logs UI的链接,如果要查看全部日志,可以点击那里转到Logs UI界面。
点击后将跳转到Logs UI界面,并显示经过Cluster UUID筛选的日志。

Screenshot_2019-04-16 Logs - Kibana(2).png

如果是节点的情况

与概述相似,日志将会被显示出来。这里会显示与显示节点相关的内容。

undefined

查看日志的用户界面,经过正确的过滤。

Screenshot_2019-04-16 Logs - Kibana(1).png

在索引的情况下

Screenshot_2019-04-16 Stack Monitoring - Elasticsearch - Indices - filebeat-7 0 0-2019 04 16-000001 - Overview.png

我会在索引中过滤日志并显示它们。
我将跳转到日志界面中查看。

Screenshot_2019-04-16 Logs - Kibana.png

将东西嵌入容器中

在Docker或其他容器中启动Elasticsearch是可行的吗?为了方便查看日志,我们可以尝试将Filebeat集成进去。换句话说,我们将日志读取到单独的Filebeat容器中,然后将日志发送到Elasticsearch中。

我将按照以下方式创建docker-compose.yml和filebeat.yml文件。

version: '2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0-SNAPSHOT
    container_name: elasticsearch4
    environment:
      - cluster.name=docker-cluster
      - node.name=node-1
      - cluster.initial_master_nodes=node-1
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - path.repo=/usr/share/elasticsearch/snapshots
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9204:9200
    networks:
      - esnet
  kibana:
    image: docker.elastic.co/kibana/kibana:7.1.0-SNAPSHOT
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch4:9200
    container_name: kibana4
    ports:
      - 5605:5601
    networks:
      - esnet
  beats4:
    image: docker.elastic.co/beats/filebeat:7.1.0-SNAPSHOT
    user: root
    environment:
      - ELASTICSEARCH_CONTAINER_NAME=elasticsearch4
      - ELASTICSEARCH_HOSTS=http://elasticsearch4:9200
      - KIBANA_HOST=http://kibana4:5601
    volumes:
      - /var/lib/docker/containers:/var/lib/docker/containers:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./filebeat.yml:/usr/share/filebeat/filebeat.yml
    networks:
      - esnet

volumes:
  esdata1:
    driver: local

networks:
  esnet:

由于需要具有访问主机docker相关目录的权限,将Filebeat的启动用户设置为root。

filebeat.autodiscover:
  providers:
    - type: docker
      labels.dedot: true
      templates:
        - condition:
            contains:
              docker.container.name: ${ELASTICSEARCH_CONTAINER_NAME:elasticsearch}
          config:
             - module: elasticsearch
               server:
                 enabled: true
                 input:
                   type: docker
                   containers.ids:
                     - "${data.docker.container.id}"
setup.kibana:
  host: "${KIBANA_HOST:kibana:5601}"
output.elasticsearch:
  hosts: '${ELASTICSEARCH_HOSTS:elasticsearch:9200}'

最后

如果日志也会显示出来的话,那么我们也想要运营一个用于监控的集群。
另外,如果其他产品组也能够查看日志,那就太好了。

广告
将在 10 秒后关闭
bannerAds