通过监控进行日志显示
首先
当你注意到的时候,Elastic Stack已经添加了许多新功能。这次是一个小巧的功能,但相当令人振奋(或许?)。
在监控中显示日志
监控功能中显示了每个节点和索引的指标,现在已添加了与基础设施应用程序的日志协同显示功能。

然而,默认情况下,只会显示消息,没有其他内容出现。
按照所写的方式,正确设置Filebeat并进行显示。
Filebeat的配置
设定大致是这样的。
将Filebeat安装在装有Elasticsearch的服务器上。由于本次没有用于监控的集群,所以直接发送到本地的Elasticsearch中。
filebeat.config:
modules:
path: /etc/filebeat/modules.d/*.yml
module: elasticsearch
output.elasticsearch:
hosts: ["localhost:9200"]
以这个设置启动后,会出现以下这样的画面。

虽然和之前的版本不同,嗯,就当作是调皮一点好了
根据查看GitHub上的Issue,似乎会以不同的颜色提供警告信息。
显示日志
对于概述:
概述一词的情况

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

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

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

在索引的情况下

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

将东西嵌入容器中
在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}'
最后
如果日志也会显示出来的话,那么我们也想要运营一个用于监控的集群。
另外,如果其他产品组也能够查看日志,那就太好了。