オンプレのOpenShiftでもログはCloudWatch Logsに転送しよう
OpenShift LoggingのElasticSearchは、正直ちょっと安定的に運用するのが普通は無理だと思うので、それでもログ集約してGUIでログ参照したい場合はAmazon CloudWatch Logsに転送するのが現状はベストじゃないかと思う。オンプレ環境だったとしても。
ClusterLogForwarderでのCloudWatchへのログ転送が、たぶんROSAのGAに関連してだと思うが、OpenShift 4.8から出来るようになっている。
以下はそのやり方。簡単。
1.AWSでIAMユーザーとアクセスキーを作成する
AWSのIAMで、認証タイプがアクセスキーのユーザーを作る。
アクセス許可にCloudWatchFullAccessを付ける。
タグは任意で。ユーザーを作成したらアクセスキーIDとシークレットアクセスキーを手に入れる。
例えば
アクセスキーID: AKIASBHLFJQFVNNFOGOT
シークレットアクセスキー: 4rGScURvVfAgdZppB9+KNzB+y0ZdqMuOJD5U2FxL
OpenShiftでBase64にした文字列が必要なので、base64コマンドか適当なWebのアプリでbase64変換しておく。
アクセスキーID(base64): QUtJQVNCSExGSlFGVk5ORk9HT1QK
シークレットアクセスキー(base64): NHJHU2NVUnZWZkFnZFpwcEI5K0tOekIreTBaZHFNdU9KRDVVMkZ4TAo=
2.OpenShiftでLoggingオペレーターを導入する
OperatorHubからLoggingオペレーターを導入する。
なおClusterLogForwarderを使いたいだけだったら、ElasticSearchを前提オペレーターとして導入する必要はない。
オペレーターがインストールされたら、ClusterLoggingのインスタンスを下記のyamlで作成する。
ElasticSearch、kibanaを導入しないので、logStore、visualizationのスタンザが不要。
apiVersion: "logging.openshift.io/v1"
kind: "ClusterLogging"
metadata:
name: "instance"
namespace: "openshift-logging"
spec:
managementState: "Managed"
collection:
logs:
type: "fluentd"
fluentd: {}
3.ClusterLogForwarderを設定する
まずは、AWSにアクセスするためのsecretを作る。
画面右上の「+」をクリックして以下を入力、アクセスキーIDとシークレットアクセスキーを先ほど入手したbase64エンコード済みのものに置き換え、作成。
apiVersion: v1
kind: Secret
metadata:
name: cw-secret
namespace: openshift-logging
data:
aws_access_key_id: QUtJQVNCSExGSlFGVk5ORk9HT1QK
aws_secret_access_key: NHJHU2NVUnZWZkFnZFpwcEI5K0tOekIreTBaZHFNdU9KRDVVMkZ4TAo=
同じく「+」ボタンから作ってもいいのだが、一応OperatorのClusterLogForwardersからClusterLogForwarderの作成から、下記のyamlで作成する。
groupPrefixはオプションだが、指定すればCloudWatch Logsに「my-cluster.audit」みたいな形でロググループが作成される。
region: ap-northeast-1 は、東京に作るの意。
apiVersion: "logging.openshift.io/v1"
kind: ClusterLogForwarder
metadata:
name: instance
namespace: openshift-logging
spec:
outputs:
- name: cw
type: cloudwatch
cloudwatch:
groupBy: logType
groupPrefix: my-cluster
region: ap-northeast-1
secret:
name: cw-secret
pipelines:
- name: infra-logs
inputRefs:
- infrastructure
- audit
- application
outputRefs:
- cw
4.ログが転送されていることを確認する
設定後、割とすぐにCloudWatch Logsに以下の画面のようなロググループが作成される。
作成されない場合は、IAMユーザーのアクセス権が違うか、Secretが間違っているか。
openshift-logging/fluentd-*のログを参照すると原因がわかる事があるかも。
AWS側、Log Insightsを使って転送されたログを解析することができる。
指定するクエリは、infrastructureの場合はfieldsの「@message
」から@を外して「message」としたほうが見やすい。
Author And Source
この問題について(オンプレのOpenShiftでもログはCloudWatch Logsに転送しよう), 我々は、より多くの情報をここで見つけました https://qiita.com/rk05231977/items/7eab4d5aa6c6346eec9f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .