您可以从stack-driver 到pub-sub 中的日志创建一个接收器,然后使用logstash-input-google_pubsub 插件 - 它将所有日志导出到弹性
使用logstash-input-google_pubsub image,
见source code
将日志导出到 pub-sub
-
在 pubsub 中创建主题和订阅
按照指示here
-
在日志查看器page 中单击create export,确保您已过滤到应用程序的日志(GKE Container -> cluster-name, app-name),
输入接收器名称,选择 Cloud Pubsub 作为接收器服务,现在在接收器目标中选择您的主题。
从现在开始的日志被导出到 pub-sub
配置logstash管道
这是pubsub-elastic.conf 文件:
input {
google_pubsub {
project_id => "my-gcloud-project-id"
topic => "elastic-pubsub-test"
subscription => "elastic-pubsub-test"
json_key_file => "/etc/logstash/gcloud-service-account-key.json"
}
}
output {
elasticsearch {
hosts => "https://example.us-east-1.aws.found.io:9243"
user => "elastic"
password => "mypassword"
}
}
这是我的 Docker 文件:
FROM sphereio/logstash-input-google_pubsub
# Logstash config
COPY gcloud-service-account-key.json /etc/logstash/gcloud-service-account-key.json
COPY config /etc/logstash/conf.d
COPY logstash.yml /etc/logstash/logstash.yml
现在您应该构建映像并运行
如果在 kubernetes 上运行,请使用以下内容:
这里是deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: logstash-input-google-pubsub
spec:
replicas: 1
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: logstash-input-google-pubsub
spec:
containers:
- name: logstash-input-google-pubsub
image: us.gcr.io/my-gcloud-project-id/logstash-input-google_pubsub:1.0.0
构建你的镜像并推送到注册表
docker build --rm -t us.gcr.io/my-gcloud-project-id/logstash-input-google_pubsub:1.0.0 .
gcloud docker -- push us.gcr.io/my-gcloud-project-id/logstash-input-google_pubsub:1.0.0
现在创建实例kubectl create -f deployment.yaml
完成!