|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
出力とクラスター・出力
ログオペレーターのドキュメントを参照して、`Flows`と`ClusterFlows`の設定方法の詳細を確認してください。
Rancherとログサービスの統合:トラブルシューティングを参照して、ログバッファのメモリ問題を解決する方法を確認してください。
出力
`Output`リソースは、`Flows`がログメッセージを送信できる場所を定義します。`Outputs`はログ`Flow`の最終段階です。
`Output`はネームスペース付きリソースであり、同じネームスペース内の`Flow`のみがアクセスできます。
これらの定義にはシークレットを使用できますが、同じネームスペース内に存在する必要があります。
`Outputs`はRancher UIのフォームに記入することで設定できます。
`Output`カスタムリソースの詳細については、 OutputSpec.を参照してください。
Rancher UIは、次の`Output`タイプの設定用フォームを提供します:
-
Amazon ElasticSearch
-
Azure Storage
-
Cloudwatch
-
Datadog
-
Elasticsearch
-
ファイル
-
Fluentd
-
GCS
-
Kafka
-
Kinesisストリーム
-
LogDNA
-
LogZ
-
Loki
-
New Relic
-
Splunk
-
SumoLogic
-
Syslog
Rancher UIは、`Output`タイプ、ターゲット、および適用可能な場合はアクセス資格情報の設定用フォームを提供します。
ログオペレーターによってサポートされている各ログプラグインの例の設定については、 ログオペレーターのドキュメントを参照してください。
ClusterOutputs
`ClusterOutput`はネームスペース制限のない`Output`を定義します。ログオペレーターと同じネームスペースにデプロイされた場合にのみ効果的です。
`ClusterOutputs`はRancher UIのフォームに記入することで設定できます。
ClusterOutput カスタムリソースの詳細については、 ClusterOutput.を参照してください。
YAMLの例
ログがインストールされたら、これらの例を使用して独自のログパイプラインを作成するのに役立てることができます。
Cluster Output to ElasticSearch
クラスター内のすべてのログを`elasticsearch`クラスターに送信したいとしましょう。まず、クラスター`Output`を作成します。
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterOutput
metadata:
name: "example-es"
namespace: "cattle-logging-system"
spec:
elasticsearch:
host: elasticsearch.example.com
port: 9200
scheme: http
私たちは、オペレーターと同じネームスペースに、Elasticsearchの設定なしでこの`ClusterOutput`を作成しました。`ClusterFlow`または`ClusterOutput`を作成するたびに、それを`cattle-logging-system`ネームスペースに配置する必要があります。
ログの行き先を設定したので、すべてのログがその`ClusterOutput`に送信されるように設定しましょう。
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterFlow
metadata:
name: "all-logs"
namespace: "cattle-logging-system"
spec:
globalOutputRefs:
- "example-es"
設定したインデックスにログが表示されるはずです。
Output to Splunk
特定のネームスペースからのログのみを`splunk`サーバーに送信したいアプリケーションチームがいる場合はどうなりますか?この場合、ネームスペース付きの`Outputs`と`Flows`を使用できます。
始める前に、そのチームのアプリケーションを設定しましょう:coolapp。
apiVersion: v1
kind: Namespace
metadata:
name: devteam
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: coolapp
namespace: devteam
labels:
app: coolapp
spec:
replicas: 2
selector:
matchLabels:
app: coolapp
template:
metadata:
labels:
app: coolapp
spec:
containers:
- name: generator
image: paynejacob/loggenerator:latest
`coolapp`が実行されている状態で、`ClusterOutput`を作成したときと同様の手順を踏みます。しかし、`ClusterOutputs`とは異なり、私たちはアプリケーションのネームスペースで`Output`を作成します。
apiVersion: logging.banzaicloud.io/v1beta1
kind: Output
metadata:
name: "devteam-splunk"
namespace: "devteam"
spec:
splunkHec:
hec_host: splunk.example.com
hec_port: 8088
protocol: http
再度、私たちの`Output`にログを供給しましょう:
apiVersion: logging.banzaicloud.io/v1beta1
kind: Flow
metadata:
name: "devteam-logs"
namespace: "devteam"
spec:
localOutputRefs:
- "devteam-splunk"
Syslogへの出力
クラスター内のすべてのログを`syslog`サーバーに送信したいとしましょう。まず、`ClusterOutput`を作成します:
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterOutput
metadata:
name: "example-syslog"
namespace: "cattle-logging-system"
spec:
syslog:
buffer:
timekey: 30s
timekey_use_utc: true
timekey_wait: 10s
flush_interval: 5s
format:
type: json
app_name_field: test
host: syslog.example.com
insecure: true
port: 514
transport: tcp
ログの行き先を設定したので、すべてのログがその`Output`に送信されるように設定しましょう。
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterFlow
metadata:
name: "all-logs"
namespace: cattle-logging-system
spec:
globalOutputRefs:
- "example-syslog"
サポートされていない出力
最後の例として、サポートされていない宛先にログを書き込むための`Output`を作成します:
|
syslogに関する注意:
`syslog`はサポートされている`Output`です。しかし、この例はサポートされていないプラグインの使用に関する概要を提供します。 |
apiVersion: v1
kind: Secret
metadata:
name: syslog-config
namespace: cattle-logging-system
type: Opaque
stringData:
fluent-bit.conf: |
[INPUT]
Name forward
Port 24224
[OUTPUT]
Name syslog
InstanceName syslog-output
Match *
Addr syslog.example.com
Port 514
Cluster ranchers
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: fluentbit-syslog-forwarder
namespace: cattle-logging-system
labels:
output: syslog
spec:
selector:
matchLabels:
output: syslog
template:
metadata:
labels:
output: syslog
spec:
containers:
- name: fluentbit
image: paynejacob/fluent-bit-out-syslog:latest
ports:
- containerPort: 24224
volumeMounts:
- mountPath: "/fluent-bit/etc/"
name: configuration
volumes:
- name: configuration
secret:
secretName: syslog-config
---
apiVersion: v1
kind: Service
metadata:
name: syslog-forwarder
namespace: cattle-logging-system
spec:
selector:
output: syslog
ports:
- protocol: TCP
port: 24224
targetPort: 24224
---
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterFlow
metadata:
name: all-logs
namespace: cattle-logging-system
spec:
globalOutputRefs:
- syslog
---
apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterOutput
metadata:
name: syslog
namespace: cattle-logging-system
spec:
forward:
servers:
- host: "syslog-forwarder.cattle-logging-system"
require_ack_response: false
ignore_network_errors_at_startup: false
ここで何が起こっているのかを分解しましょう。まず、追加の`syslog`プラグインを持ち、他の`fluentd`から転送されたログを受け入れるコンテナのデプロイメントを作成します。次に、私たちのデプロイメントに対してフォワーダーとして構成された`Output`を作成します。デプロイメント`fluentd`は、構成された`syslog`宛先にすべてのログを転送します。