通常采用EFK进行openshift集群日志管理。
EFK集群:Elasticsearch、Fluentd 和 Kibana 的组合
那么如果需要将openshift日志发给外部系统呢,当然有很多方法,比如通过Flentd或者Elasticsearch发送。
下面介绍通过Fluentd发送日志给外部日志服务器:
1.首先,要修改集群日志管理状态为“Unmanaged
”,命令如下,修改 managementState: Unmanaged
oc edit ClusterLogging instance -n openshift-logging
spec:
collection:
logs:
fluentd:
resources: null
rsyslog:
resources: null
type: fluentd
curation:
curator:
resources: null
schedule: 30 3 * * *
type: curator
logStore:
elasticsearch:
nodeCount: 3
redundancyPolicy: SingleRedundancy
resources:
limits:
memory: 2Gi
requests:
cpu: 100m
memory: 2Gi
storage:
size: 2G
type: elasticsearch
managementState: Unmanaged
2.设置fluentd daemonset环境变量
进入到openshift-logging project,添加环境变量如下:
spec:
template:
spec:
containers:
- name: fluentd
image: 'registry.redhat.io/openshift4/ose-logging-fluentd:v4.2'
env:
- name: REMOTE_SYSLOG_HOST
value: host1
- name: REMOTE_SYSLOG_HOST_BACKUP
value: host2
- name: REMOTE_SYSLOG_PORT_BACKUP
value: 5555
上述配置主要指定外部syslog服务器地址和端口。
另外也可以通过Fluentd将日志发送给外部的Elasticsearch等方式,详见https://docs.openshift.com/container-platform/4.2/logging/config/cluster-logging-external.html