1

StackdriverモニタリングとモニタリングエージェントでGoogle Dataprocクラスタを設定するたびに、Dataprocがジョブを取得するたびにStackdriverが接続を失うことに気付きました。スタックドライバUIでは、ほとんどの場合2分を超えてはいけないと言うレイテンシ値があります。この値は、私が仕事を提出してからの時間(しばしば数時間)であり、Compute EngineのWebページでは見ることのできない指標がありません。Google Stackdriver Dataprocへの接続が失われている

dataprocでスタックドライバの監視を行う方法はありますか?可能であれば私の仕事のRAM使用量を監視できるようにしたいと思います。

スタックドライブモニタリングは組織で実行して設定していますが、すべての機能にアクセスできるようです。私たちはHTTPプロキシを使用しません。監視エージェントは、Google's documentationにあるコマンドを使用して設定されます。 gsutilのコピー・コマンドだけのカップルである「その他の初期化詰め込む」:

#!/bin/bash 
cd /tmp 
curl -O "https://repo.stackdriver.com/stack-install.sh" 
bash stack-install.sh --write-gcm 
# ... other initialization stuffs 

編集:私はこのようになりますマスターと労働者の両方に対して実行スタートアップスクリプト(--initialization-アクションフラグを)持っていますローカルマシンにいくつかのリソースファイルを取得して、それが違いを生むならば。

私は、他のコマンドの後にエージェントのインストールを移動しようとしましたが、ファイルをコピーする際に絶対パスを使用することを推奨しているため、/ tmpのみを使用します(ドキュメントはどこにあるのか忘れていました。

ここには、私がstackdriverで見ているものの要望に応じたスクリーンショットがあります。 CPU使用率以外のすべてのメトリックが垂直線でどのように停止するかに注目してください。 grep stackdriver-agent /var/logs/syslog

Stackdriver screenshot

結果::

Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: Starting Stackdriver metrics collection agent: stackdriver-agentoption = Hostname; value = 3431688934917455875; 
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = Interval; value = 60.000000; 
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: Created new plugin context. 
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = PIDFile; value = /var/run/stackdriver-agent.pid; 
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = Hostname; value = 3431688934917455875; 
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = Interval; value = 60.000000; 
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: Created new plugin context. 
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: . 
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3823]: Stopping Stackdriver metrics collection agent: stackdriver-agent. 
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: Starting Stackdriver metrics collection agent: stackdriver-agentoption = Interval; value = 60.000000; 
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: Created new plugin context. 
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: option = PIDFile; value = /var/run/stackdriver-agent.pid; 
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: option = Interval; value = 60.000000; 
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: Created new plugin context. 
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: . 

EDIT:フルクラスタ作成コマンドは次のとおりです。

gcloud dataproc clusters create <cluster-name> --master-machine-type n1-highmem-2 --worker-machine-type n1-highmem-2 --initialization-actions <path-to-script> --master-boot-disk-size 50GB --worker-boot-disk-size 50GB --num-workers 16 --network internal --zone us-east1-c --scopes https://www.googleapis.com/auth/cloud-platform --project <project-name> --tags dataproc 

dataprocタグが開き、ジョブが今日スパークに提出されたときです私の組織内のすべてのポートでファイアウォールを起動します。私はあなたのステップのうちのいくつかをrepro'd、私はできませんが

root  3851 0.0 0.0 1004704 9096 ?  Ssl 12:50 0:00 /opt/stackdriver/collectd/sbin/stackdriver-collectd -C 
/opt/stackdriver/collectd/etc/collectd.conf -P /var/run/stackdriver-agent.pid 
7053 0.0 0.0 12732 2068 pts/0 S+ 13:14 0:00 grep stackdriver-agent 
+0

あなたの監視エージェント?あなたはあなたがUIで見ているもののスクリーンショットを共有することができますか? –

+0

オリジナルの投稿を編集しました。さらに詳しい情報が必要な場合は教えてください – jbird

+0

これを実行した場所でクラスタがまだ起きている場合は、 'grep stackdriver-agent/var/log/syslog'を確認できますか? –

答えて

0

sudo ps wwaux | grep stackdriver-agent

stackdriver-agent.service  active running 
LSB: start and stop Stackdriver Agent 

結果:internalネットワークがsudo systemctl | grep stackdriver-agentのよりも良いdefault

結果を機能することがわかりました。私がDataprocの内部をデバッグせずに指示を適用しようとしたときに最初に実行したことがあったので、あなたが仕事を提出するまでモニタリングのように見えるかもしれないと言うと、 Dataprocクラスターに適切なスコープを与えて、スタックドライバーエージェントがそのメトリックをAPIに書き込めるようにすることです。つまり、以下は同じ初期化アクションを保ち、私のために働くように見えた:

gcloud dataproc clusters create dhuo-stackdriver \ 
    --initialization-actions gs://<my-bucket>/install_stackdriver.sh \ 
    --scopes https://www.googleapis.com/auth/monitoring.write 

を別の方法として、あなたはそのようなより広いcloud-platformスコープとしてStackdriver documentationに記載されている他のスコープを使用することができます。

#!/bin/bash 
cd /tmp 
curl -O "https://repo.stackdriver.com/stack-install.sh" 
bash stack-install.sh --write-gcm 

:初期化アクションとしてちょうどあなたのスニペットと

https://www.googleapis.com/auth/bigquery 
https://www.googleapis.com/auth/bigtable.admin.table 
https://www.googleapis.com/auth/bigtable.data 
https://www.googleapis.com/auth/devstorage.full_control 

私のローカルテスト:これは何のユーザー指定のスコープが使用されていない場合は正常に追加された他のいくつかのデフォルトのスコープのミックスインを無効にすることができることに注意してくださいプラスhttps://www.googleapis.com/auth/monitoring.writeは、ジョブの投入を含め、私のテストプロジェクトで働いていた:あなたは監視のStackdriverを設定する方法

Stackdriver page for Dataproc cluster

+0

私は '--scopes https:// www.googleapis.com/auth/cloud-platform'を使ってクラスターを作成したことを述べておきたいと思います。 – jbird

関連する問題