2.4. Fuse Online での重要事項
Fuse Online ディストリビューションの Fuse 7.12 リリースにおける重要事項
- Fuse 7 が現在メンテナンスサポート中であるため、Fuse Online のサポートは非推奨になりました。Fuse 7 のサポートが終了すると、Fuse Online の今後の開発は行われません。
- Fuse Online のインストールは、OCP 3.11 ではサポート対象外となります。
- Fuse Online は Camel K ランタイムまたは KNative コネクターをサポートしなくなりました。
- Fuse Online が Red Hat インフラストラクチャーにインストールされ、プロビジョニングされる場合、アカウントは同時に実行可能な特定数のインテグレーションに制限されます。詳細は、価格プランを参照してください。
- Fuse Online にアップロードする OpenAPI スキーマに出入力タイプが定義されていないことがあります。Fuse Online が出入力タイプを指定しない OpenAPI からカスタム API クライアントを作成した場合、API クライアントが処理できるフィールドにインテグレーションデータをマップするインテグレーションや、API クライアントが処理したフィールドから統合データをマップするインテグレーションを作成できません。インテグレーションにカスタム API をマップ先またはマップ元とするマッピングが必要な場合、OpenAPI スキーマをアップロードするときに Review/Edit をクリックして API 編集ツールの API Designer を開き、出入力タイプの指定を追加します。
- Fuse 7.8 以降、カスタム API クライアントコネクターまたは API プロバイダーインテグレーションに使用する OpenAPI ドキュメントは、循環スキーマ参照を持つことができません。たとえば、リクエストまたは応答ボディーを指定する JSON スキーマは、そのスキーマ自体を全体的に参照することはできず、任意数の中間スキーマを介してそれ自体を部分的に参照することもできません。
OCP 4.9 (またはそれ以降) では、
application-monitoring
プロジェクトは機能しなくなりました。これは、Prometheus および Grafana で Fuse Online インテグレーションおよびインフラストラクチャーコンポーネントを監視するための前提条件です。この問題を回避するには、(
openshift-monitoring
namespace で) ビルトインのモニタリングスタック を使用してopenshift-user-workload-monitoring
機能およびgrafana-operator
を使用し、以下の OCP 4.9 (またはそれ以降) に Fuse Online 監視リソース (Prometheus および Grafana) を追加する の手順の説明にあるように、ops addon
を使用します。
2.4.1. OCP 4.9 (またはそれ以降) に Fuse Online 監視リソース (Prometheus および Grafana) を追加する
前提条件
- Fuse Online は、オンサイトで OCP 4.9 (またはそれ以降) にインストールされ、実行されている。
-
oc
クライアントツールがインストール済みであり、Fuse Online がインストールされている OCP クラスターに接続されている。 -
OCP クラスターへの
admin
アクセスがある。 Fuse Online インストールが
ops addon
が有効になっている状態で設定されている。必要に応じて、以下のコマンドで有効にすることができます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'
oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'
手順
既存の
openshift-monitoring
設定がある場合は、手順 2 に進みます。それ以外の場合には、ユーザーワークロードモニタリングオプションを
true
に設定するopenshift-monitoring
設定を作成し、手順 3 に進みます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f - <<EOF apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: enableUserWorkload: true EOF
oc apply -f - <<EOF apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: enableUserWorkload: true EOF
既存の
openshift-monitoring
設定がある場合:既存の
openshift-monitoring
設定をチェックして、ユーザーワークロードモニタリング オプションが true に設定されるかどうかを判別します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'
oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'
結果が
enableUserWorkload: true
の場合、ユーザーワークロードモニタリング オプションは true に設定されます。ステップ 3 に進みます。結果に他の設定が表示される場合には、次の手順に進み、ConfigMap を編集してユーザーワークロードの監視を有効にします。
以下のようにエディターで ConfigMap ファイルを開きます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n openshift-monitoring edit cm/cluster-monitoring-config
oc -n openshift-monitoring edit cm/cluster-monitoring-config
enableUserWorkload を true に設定します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: enableUserWorkload: true
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: enableUserWorkload: true
- ConfigMap ファイルを保存します。
以下のコマンドを使用して、
openshift-user-workload-monitoring
namespace の Pod のステータスを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n openshift-user-workload-monitoring get pods -w
oc -n openshift-user-workload-monitoring get pods -w
Pod のステータスが Running になるまで待機します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow prometheus-operator-5d989f48fd-2qbzd 2/2 Running prometheus-user-workload-0 5/5 Running prometheus-user-workload-1 5/5 Running thanos-ruler-user-workload-0 3/3 Running thanos-ruler-user-workload-1 3/3 Running
prometheus-operator-5d989f48fd-2qbzd 2/2 Running prometheus-user-workload-0 5/5 Running prometheus-user-workload-1 5/5 Running thanos-ruler-user-workload-0 3/3 Running thanos-ruler-user-workload-1 3/3 Running
Prometheus で Fuse Online のアラートルールが有効になっていることを確認します。
内部 prometheus インスタンスにアクセスします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
-
ブラウザーを開いて
localhost:9090
にアクセスします。 -
Status> Targets の順に選択します。3 つの
syndesis
エンドポイントが表示されるはずです。 -
CTRL-C を押して、
port-forward
プロセスを終了します。
-
OperatorHub から、Grafana Operator 4.1.0 を選択した namespace(例:
grafana-middleware
namespace) にインストールします。 クラスターロールとクラスターロールのバインディングを追加して、
grafana-operator
がノードおよび namespace をリスト表示できるようにします。grafana-operator
Web サイトからクラスターロール YAML ファイルをダウンロードします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/master/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/master/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
grafana-operator
のクラスターパーミッションを追加して、他の namespace およびノードを読み取ります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat <<EOF >> tmp_role.yaml - apiGroups: - "" resources: - namespaces - nodes verbs: - get - list - watch EOF
cat <<EOF >> tmp_role.yaml - apiGroups: - "" resources: - namespaces - nodes verbs: - get - list - watch EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f tmp_role.yaml
oc apply -f tmp_role.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: grafana-operator roleRef: name: grafana-operator kind: ClusterRole apiGroup: "" subjects: - kind: ServiceAccount name: grafana-operator-controller-manager namespace: grafana-middleware EOF
oc apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: grafana-operator roleRef: name: grafana-operator kind: ClusterRole apiGroup: "" subjects: - kind: ServiceAccount name: grafana-operator-controller-manager namespace: grafana-middleware EOF
DASHBOARD_NAMESPACES_ALL
環境変数を使用して namespace を制限することで、grafana-operator
が他の namespace から Grafana ダッシュボードを読み取れるようにします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'
oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'
grafana
Pod が再作成されていることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n grafana-middleware get pods -w
oc -n grafana-middleware get pods -w
必要に応じて、
grafana-operator
ログを表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
Grafana カスタムリソース を追加して、以下のように Grafana サーバー Pod を起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f - <<EOF apiVersion: integreatly.org/v1alpha1 kind: Grafana metadata: name: grafana-middleware namespace: grafana-middleware spec: config: auth: disable_signout_menu: true auth.anonymous: enabled: true log: level: warn mode: console security: admin_password: secret admin_user: root dashboardLabelSelector: - matchExpressions: - key: app operator: In values: - grafana - syndesis ingress: enabled: true EOF
oc apply -f - <<EOF apiVersion: integreatly.org/v1alpha1 kind: Grafana metadata: name: grafana-middleware namespace: grafana-middleware spec: config: auth: disable_signout_menu: true auth.anonymous: enabled: true log: level: warn mode: console security: admin_password: secret admin_user: root dashboardLabelSelector: - matchExpressions: - key: app operator: In values: - grafana - syndesis ingress: enabled: true EOF
grafana-operator
がモニタリング情報を読み取ることを許可します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
GrafanaDatasource
を追加して、thanos-querier
をクエリーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f - <<EOF apiVersion: integreatly.org/v1alpha1 kind: GrafanaDataSource metadata: name: prometheus-grafanadatasource namespace: grafana-middleware spec: datasources: - access: proxy editable: true isDefault: true jsonData: httpHeaderName1: 'Authorization' timeInterval: 5s tlsSkipVerify: true name: Prometheus secureJsonData: httpHeaderValue1: "Bearer $(oc -n grafana-middleware serviceaccounts get-token grafana-serviceaccount)" type: prometheus url: "https://$(oc get route thanos-querier -n openshift-monitoring -ojsonpath='{.spec.host}')" name: prometheus-grafanadatasource.yaml EOF
oc apply -f - <<EOF apiVersion: integreatly.org/v1alpha1 kind: GrafanaDataSource metadata: name: prometheus-grafanadatasource namespace: grafana-middleware spec: datasources: - access: proxy editable: true isDefault: true jsonData: httpHeaderName1: 'Authorization' timeInterval: 5s tlsSkipVerify: true name: Prometheus secureJsonData: httpHeaderValue1: "Bearer $(oc -n grafana-middleware serviceaccounts get-token grafana-serviceaccount)" type: prometheus url: "https://$(oc get route thanos-querier -n openshift-monitoring -ojsonpath='{.spec.host}')" name: prometheus-grafanadatasource.yaml EOF
grafana サーバーログを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs -f `oc get pods -l app=grafana -oname`
oc logs -f `oc get pods -l app=grafana -oname`
grafana URL にアクセスし、Fuse Online ダッシュボードを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')
echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')