0

グラファナにグラファイトからメトリックを取得させるのに問題があります。エラーは、 graphite-apiが必要なグラファイト自体から発生しているようです。

これを機能させるには、 graphite-apiをインストールして実行する必要がありますか?

ご協力ありがとうございました。

curl を使用すると、すべてのメトリクス ツリーを取得できますが、ブラウザから引き続きメトリクス クエリに失敗したというエラーが表示されます。ここにすべての構成をコピーして貼り付ける必要があるかもしれません。

グラファイト nginx conf :

server {
listen     443;
ssl on;
ssl_certificate /etc/pki/tls/certs/dev.mydomain.net.crt;
ssl_certificate_key /etc/pki/tls/certs/dev.mydomain.net.key;

server_name  graphite.mydomain.net;

#charset koi8-r;
rewrite_log off;
access_log  /srv/www/graphite/access.log  main;
error_log   /srv/www/graphite/error.log debug;

# Proxy to Uchiwa on localhost:3000
#
location / {
    proxy_pass http://graphite:8000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;

    if ($http_origin ~*  "^http://metro.mydomain.net:80$"){
    set $cors "true";
    }       
    if ($request_method = 'OPTIONS') {
    set $cors "${cors}options";  
    }

    if ($request_method = 'GET') {
    set $cors "${cors}get";  
    }

    if ($request_method = 'POST') {
    set $cors "${cors}post";
    }

    if ($cors = 'true') {
    add_header  "Access-Control-Allow-Origin" "$http_origin";
    add_header  "Access-Control-Allow-Credentials" "true";
    add_header  "Access-Control-Allow-Methods" "GET, POST, OPTIONS";
    add_header  "Access-Control-Allow-Headers" "Authorization, origin, accept";
    }

    if ($cors = "trueoptions") {
    add_header 'Access-Control-Allow-Origin' "$http_origin";
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    add_header 'Access-Control-Max-Age' 1728000;
    add_header 'Content-Type' 'text/plain charset=UTF-8';
    add_header 'Content-Length' 0;

    return 204;
    }

    if ($cors = "truepost") {
    add_header 'Access-Control-Allow-Origin' "$http_origin";
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    }

    if ($cors = "trueget") {
    add_header 'Access-Control-Allow-Origin' "$http_origin";
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    }


  }
}

grafana nginx conf :

server {
#listen     443;
listen     80;
#ssl on;
#ssl_certificate /etc/pki/tls/certs/dev.mydomain.net.crt;
#ssl_certificate_key /etc/pki/tls/certs/dev.mydomain.net.key;

server_name  metro.mydomain.net;
root   /var/www/html/grafana;
index index.html
client_max_body_size 30M;

#charset koi8-r;
rewrite_log off;
access_log  /var/www/html/grafana.access.log  main;
error_log   /var/www/html/grafana.error.log debug;
}

グラファナ config.js :

   // Graphite & Elasticsearch example setup
   datasources: {
  graphite: {
    default: true,
    type: 'graphite',
    url:  "http://graphite.mydomain.net:8000",
    render_method: 'GET',
  },
 /* elasticsearch: {
    type: 'elasticsearch',
    url: "http://my.elastic.server.com:9200",
    index: 'grafana-dash',
    grafanaDB: true,
  }*/
},

ログにはリンクが含まれているため、ここにログをコピーして貼り付けることはできません。また、2 つ以上のリンクを投稿するには、少なくとも 10 のレピュテーションが必要であるとサイトに示されています。それらは実際のリンクではなく、サーバー上の単なる URL ですが、投稿できるようにプレーン テキストに変換する方法がわかりません。その後、質問を編集するためにすべてのログ メッセージを削除する必要がありました。

私を助けてください????

ありがとう。

よろしく

4

1 に答える 1

1

投稿を更新しませんでした。グラファイト Web でグラファナ UI をセットアップすることに成功しました。問題は、js でクロス ドメインを使用できないことと、ブラウザ (クライアント) がグラファナ/グラファイトと同じマシン上にないことです。私がしたことは、grafana の URL 自体を config.js のデータソースに配置し、それをローカルのグラファイト ドメインにローカルにリダイレクトすることでした。これは私の nginx と grafana/graphite の構成です:

グラファイト nginx conf :

server {
listen     443;
ssl on;
ssl_certificate /etc/pki/tls/certs/dev.mydomain.net.crt; 
ssl_certificate_key /etc/pki/tls/certs/dev.mydomain.net.key;

server_name  graphite.mydomain.net;

#charset koi8-r;
rewrite_log off;
access_log  /srv/www/graphite/access.log  main;
error_log   /srv/www/graphite/error.log debug;

#
location / {
proxy_pass http://graphite:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;

if ($http_origin ~*  "^https://metro.mydomain.net:443$"){
set $cors "true";
}       
if ($request_method = 'OPTIONS') {
set $cors "${cors}options";  
}

if ($request_method = 'GET') {
set $cors "${cors}get";  
}

if ($request_method = 'POST') {
set $cors "${cors}post";
}

if ($cors = 'true') {
add_header  "Access-Control-Allow-Origin" "$http_origin";
add_header  "Access-Control-Allow-Credentials" "true";
add_header  "Access-Control-Allow-Methods" "GET, POST, OPTIONS";
add_header  "Access-Control-Allow-Headers" "Authorization, origin, accept";
}

if ($cors = "trueoptions") {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;

return 204;
}

if ($cors = "truepost") {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}

if ($cors = "trueget") {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
     }
   }
}

grafana nginx conf :

server {
listen     443;
ssl on;
ssl_certificate /etc/pki/tls/certs/dev.mydomain.net.crt;
ssl_certificate_key /etc/pki/tls/certs/dev.mydomain.net.key;

server_name  metro.mydomain.net;
root   /var/www/html/grafana;
index index.html
client_max_body_size 30M;

#charset koi8-r;
rewrite_log off;
access_log  /var/www/html/grafana.access.log  main;
error_log   /var/www/html/grafana.error.log debug;

location /render {
    proxy_pass http://graphite:8000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
location /metric {
    proxy_pass http://graphite:8000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}

グラファナ config.js :

 // Graphite & Elasticsearch example setup
 datasources: {
 graphite: {
 default: true,
 type: 'graphite',
 url:  "https://metro.mydomain.net",
 render_method: 'GET',
},
/* elasticsearch: {
type: 'elasticsearch',
url: "http://my.elastic.server.com:9200",
index: 'grafana-dash',
grafanaDB: true,
  }*/
 },

ここで、URL のグラファイトを localhost に置き換えることができ、それでも機能することに注意してください。

グラフを作成して保存できるようになりました

これがグラファナのセットアップに直面している他の人々に役立つことを願っています。

よろしく、

于 2014-09-19T07:33:41.613 に答える