作者 主題: [教學]大作 rrdtool (像 mrtg 的東東) 完全攻略  (閱讀 330390 次)

0 會員 與 1 訪客 正在閱讀本文。

peteryang

  • 憂鬱的高中生
  • ***
  • 文章數: 105
    • 檢視個人資料
更新rrdtool有問題
« 回覆 #120 於: 2005-09-26 16:29 »
abelyang兄您好:
小弟參考您的script寫了一個抓windows的資料,但是在update時出現error,下面是script 的內容
引用
#!/bin/sh
#RRDFILE="/var/www/html/sys/mrtg/rrd/pdcadhw.rrd"
RRDFILE="/etc/mrtg/test/pdcadhw.rrd"
TITLE="PDCAD HardWare Lording"
now=`date "+%Y/%m/%d %H-%M-%S"`
`snmpwalk -On -c public -v 1 192.168.200.1 > pdchw`
cpuad=`cat pdchw | grep .1.3.6.1.2.1.25.3.3.1.2.2`
pdcadcpu=${cpuad:36}
vmm=`cat pdchw | grep .1.3.6.1.2.1.25.2.3.1.6.7`
pdcvmm=${vmm:36}
pm=`cat pdchw | grep .1.3.6.1.2.1.25.2.3.1.6.8`
pdcpm=${pm:36}

echo $pdcadcpu
echo $pdcvmm
echo $pdcpm

/usr/local/rrdtool/bin/rrdtool update $RRDFILE `date +%s`:$pdcadcpu:$pdcvmm:$pdcpm


面是error的訊息
引用
[root@pdcgw test]# ./winhw.sh
0
4236
1806
ERROR: expected 3 data source readings (got 1) from 1127723298::..

小弟看不出來是什麼原因,煩請您及各位先進不吝指教謝謝

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #121 於: 2005-09-26 16:32 »
/usr/local/rrdtool/bin/rrdtool update $RRDFILE `date +%s`:$pdcadcpu:$pdcvmm:$pdcpm

把這整行輸出....它說應該要有三個 data source , 但是只有得到一個
所以你的問題要在這上面找

peteryang

  • 憂鬱的高中生
  • ***
  • 文章數: 105
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #122 於: 2005-09-26 16:53 »
abelyang兄
小弟後來沒有用變數來做,可以update
那是不是小弟的變數有設錯呢??
煩請指教,謝謝

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #123 於: 2005-09-26 16:57 »
/usr/local/rrdtool/bin/rrdtool update $RRDFILE `date +%s`:$pdcadcpu:$pdcvmm:$pdcpm

改成
echo /usr/local/rrdtool/bin/rrdtool update $RRDFILE `date +%s`:$pdcadcpu:$pdcvmm:$pdcpm

整行輸出,看看整個 command 對不對

peteryang

  • 憂鬱的高中生
  • ***
  • 文章數: 105
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #124 於: 2005-09-26 17:01 »
abelyang兄
小弟跑出來如下:
代碼: [選擇]
[root@pdcgw test]# ./winhw.sh
1
4284
1819
/usr/local/rrdtool/bin/rrdtool update /etc/mrtg/test/pdcadhw.rrd 1127725236: 1: 4284: 1819

會不會是空白所造成的呢???

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #125 於: 2005-09-26 17:02 »
引述: "peteryang"
abelyang兄
小弟跑出來如下:
代碼: [選擇]
[root@pdcgw test]# ./winhw.sh
1
4284
1819
/usr/local/rrdtool/bin/rrdtool update /etc/mrtg/test/pdcadhw.rrd 1127725236: 1: 4284: 1819

會不會是空白所造成的呢???

是的~這就是原因所在

peteryang

  • 憂鬱的高中生
  • ***
  • 文章數: 105
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #126 於: 2005-09-26 17:03 »
小弟後來再試果然是再抓取字串時,有一個空白,但是用echo跑出來卻沒有出現,導致script會判斷錯誤,謝謝abelyang兄的指導,謝謝

ericblue

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
引述: "abelyang"
嗯~您的學習方式是對的...
官網上對 fetch 很清楚的解釋,
我的說明大柢上只是引領大家進入 rrdtool 的路...
(最難的是對 create 的語法理解),再來路怎麼走怎麼修就得看個
人發揮了

ericblue

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
可以教我 rrdtool xport 如何把資料匯出來做分析呢?





 thanks !!!!!!!!!!!!

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
引述: "ericblue"
可以教我 rrdtool xport 如何把資料匯出來做分析呢?
 thanks !!!!!!!!!!!!

這問題有點奇怪
你做了什麼努力, xport 輸出是什麼及什麼格式,
你要做什麼分析 ?
你自己不花點心力學習甚至解釋問題,
何以寄望別人呢 ?

v16822

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
RRDTOOL問題
« 回覆 #130 於: 2005-12-03 01:26 »
rrdtool update filename [--template|-t ds-name[:ds-name]...] N|timestamp:value[:value...]


$>rrdtool update tcpdump.rrd  1061811856:114:0:50:1199:0:821073  


我想問的是1061811856:114:0:50:1199:0:821073  這些數字是如何產生出來的,還有建完檔後,更新的葯在哪邊執行還是要寫程式要寫在哪哩,還有建檔後如果想再加東西是要怎麼重建,還是要加入東西就好,我想請問有沒有有關主機部分跟封包部分的一些資料

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
Re: RRDTOOL問題
« 回覆 #131 於: 2005-12-05 11:08 »
引述: "v16822"
rrdtool update filename [--template|-t ds-name[:ds-name]...] N|timestamp:value[:value...]


$>rrdtool update tcpdump.rrd  1061811856:114:0:50:1199:0:821073  


我想問的是1061811856:114:0:50:1199:0:821073  這些數字是如何產生出來的,還有建完檔後,更新的葯在哪邊執行還是要寫程式要寫在哪哩,還有建檔後如果想再加東西是要怎麼重建,還是要加入東西就好,我想請問有沒有有關主機部分跟封包部分的一些資料

你的問題在於學習方法不對,
請你把本文在看個十次,另外佐以 www.rrdtool.org 再來問題
這個東西不是看三遍就會的東西

书剑&

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
rrdtool info输出的数值是怎么回事?
« 回覆 #132 於: 2006-02-28 20:04 »
我是rrdtool的初学者,有些地方不太明白,哪位知道帮忙解答一下,好吗?我用rrdtool info命令看rrd数据库中的记录,怎么.value那一项的数据那么奇怪呢,我更新数据时给的数值是100,可.value那一项却是3.2500000e+04什么的,这是怎么回事呢?还有我按论坛上教的方法做tcpdump的那个图形,我每次更新的数据都是300多,500多,600多的,怎么出来的值那么小呢?我看最大值才是152.rrd的数据到底是怎么回事呢?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
Re: rrdtool info输出的数值是怎么回事?
« 回覆 #133 於: 2006-03-01 13:49 »
引述: "书剑&"
我是rrdtool的初学者,有些地方不太明白,哪位知道帮忙解答一下,好吗?我用rrdtool info命令看rrd数据库中的记录,怎么.value那一项的数据那么奇怪呢,我更新数据时给的数值是100,可.value那一项却是3.2500000e+04什么的,这是怎么回事呢?还有我按论坛上教的方法做tcpdump的那个图形,我每次更新的数据都是300多,500多,600多的,怎么出来的值那么小呢?我看最大值才是152.rrd的数据到底是怎么回事呢?

3.2500000e+04 的意思是 3.250000*10^4  (10的4次方)
(你們的數學或物理教育沒有教這個嗎?)

至於數值問題
Values       = 300, 600, 900, 1200
Step         = 300 seconds
COUNTER DS   =    1,  1,   1,    1
DERIVE DS    =    1,  1,   1,    1
ABSOLUTE DS  =    1,  2,   3,    4
GAUGE DS     = 300, 600, 900, 1200

你好好想想這個表,再加上我前面說的
或是參考
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/tut/rrd-beginners.en.html

sunxh

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
呵呵,问个问题
« 回覆 #134 於: 2006-03-08 18:04 »
你好abelyang,首先感谢你的文章使我很快了解了rrd。我在照你的步骤学习的过程中遇到了一些问题,特来请教。
我生成了那个1.cmd,里面也有如下内容:
rrdtool update tcpdump.rrd 1141800554:51:0:15571,
我只画三个数据http、ftp,和total,
可是我做出的图没有数据,不知道那出了问题。

另外我想问一下*.rrd用vi打开是一个规整的数据库,还是一些乱码,我生成的*.rrd用vi打开后什么都看不懂,是乱码,这样正常吗?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
Re: 呵呵,问个问题
« 回覆 #135 於: 2006-03-09 09:32 »
引述: "sunxh"
你好abelyang,首先感谢你的文章使我很快了解了rrd。我在照你的步骤学习的过程中遇到了一些问题,特来请教。
我生成了那个1.cmd,里面也有如下内容:
rrdtool update tcpdump.rrd 1141800554:51:0:15571,
我只画三个数据http、ftp,和total,
可是我做出的图没有数据,不知道那出了问题。

另外我想问一下*.rrd用vi打开是一个规整的数据库,还是一些乱码,我生成的*.rrd用vi打开后什么都看不懂,是乱码,这样正常吗?

1. 你生成的數據要做 update 幾次,讓它至少有一個完整以上的 step
ex: step=300 時,你每五分做一次,做三次後再來畫圖

2. .rrd 是 binary 檔

lorcs

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #136 於: 2006-03-12 23:25 »
你好Abel兄!我修改了rrdtool
1.2.12,想将生成的图相的标题能支持中文简体.但不知为什麽连X轴的日期也自动变成中文.请教问题在哪里?怎样才能保留原有的英文?以下是所生图相和rrdtool所改的原码。



/usr/local/rrdtool-1.2.12/bin/rrdtool graph - \
--imgformat=PNG \
--start=1140961169 \
--end=1142170769 \
--title="主网接入 Fa5/0" \
--rigid \
--base=1000 \
--height=120 \
--width=500 \
--alt-autoscale-max \
--lower-limit=0 \
COMMENT:"From 2006/Feb/26 21\:39\:29 To 2006/Mar/12 21\:39\:29\c" \
COMMENT:"  \n" \
--vertical-label="bits per second" \
--slope-mode \
--font TITLE:12:/usr/share/fonts/chinese/TrueType/gkai00mp.ttf \
--font AXIS:8:/usr/share/fonts/chinese/TrueType/gkai00mp.ttf \
--font LEGEND:10:/usr/share/fonts/chinese/TrueType/gkai00mp.ttf \
--font UNIT:8:/usr/share/fonts/chinese/TrueType/gkai00mp.ttf \
DEF:a="/var/www/html/avatac/rra/_traffic_in_60.rrd":traffic_in:AVERAGE \
DEF:b="/var/www/html/avatac/rra/_traffic_in_60.rrd":traffic_out:AVERAGE \
CDEF:cdefa=a,8,* \
CDEF:cdefe=b,8,* \
AREA:cdefa#00CF00:"Inbound"  \
GPRINT:cdefa:LAST:" Current\:%8.2lf %s"  \
GPRINT:cdefa:AVERAGE:"Average\:%8.2lf %s"  \
GPRINT:cdefa:MAX:"Maximum\:%8.2lf %s\n"  \
LINE1:cdefe#002A97:"Outbound"  \
GPRINT:cdefe:LAST:"Current\:%8.2lf %s"  \
GPRINT:cdefe:AVERAGE:"Average\:%8.2lf %s"  \
GPRINT:cdefe:MAX:"Maximum\:%8.2lf %s\n"  \
HRULE:7382833.23#FF0000:"95 Percentile Outbound\: 7.38 mbit\n"  \
HRULE:8258809.65#4668E4:"95 Percentile Inbound\: 8.26 mbit"  \
COMMENT:"The report is last updated in Sun 12 Mar 22\:30\:10 HKT 2006"

From rrd_gfx.c file
/* create a free type glyph string */
gfx_string gfx_string_create(gfx_canvas_t *canvas, FT_Face face,const char
*text,
        int rotation, double tabwidth, double size )
{

  FT_GlyphSlot  slot = face->glyph;  /* a small shortcut */
  FT_Bool       use_kerning;
  FT_UInt       previous;
  FT_Vector     ft_pen;

  gfx_string    string = (gfx_string) malloc (sizeof(struct gfx_string_s));

  gfx_char      glyph;          /* current glyph in table */
  int      n;
  int           error;
  int        gottab = 0;

  wchar_t* w_text;

#ifdef HAVE_MBSTOWCS
  wchar_t   *cstr;
  size_t   clen = strlen(text)+1;
  cstr = malloc(sizeof(wchar_t) * clen); /* yes we are allocating probably
too much here, I know */
  string->count=mbstowcs(cstr,text,clen);
  if ( string->count == -1){
  /* conversion did not work, so lets fall back to just use what we got */
   string->count=clen-1;
        for(n=0;text[n] != '\0';n++){
            cstr[n]=(unsigned char)text[n];
        }
  }
#else
  char      *cstr = strdup(text);
  string->count = strlen (text);
#endif

  ft_pen.x = 0;   /* start at (0,0) !! */
  ft_pen.y = 0;


  string->width = 0;
  string->height = 0;
  string->glyphs = (gfx_char) calloc (string->count,sizeof(struct
gfx_char_s));
  string->num_glyphs = 0;
  string->transform.xx = (FT_Fixed)( cos(M_PI*(rotation)/180.0)*0x10000);
  string->transform.xy = (FT_Fixed)(-sin(M_PI*(rotation)/180.0)*0x10000);
  string->transform.yx = (FT_Fixed)( sin(M_PI*(rotation)/180.0)*0x10000);
  string->transform.yy = (FT_Fixed)( cos(M_PI*(rotation)/180.0)*0x10000);

w_text = (wchar_t) calloc (string->count,sizeof(wchar_t));
  mbstowcs(w_text,text,string->count);


  use_kerning = FT_HAS_KERNING(face);
  previous    = 0;
  glyph = string->glyphs;
  for (n=0; n<string->count;glyph++,n++) {
    FT_Vector   vec;
    /* handle the tabs ...
       have a witespace glyph inserted, but set its width such that the
distance
    of the new right edge is x times tabwidth from 0,0 where x is an
integer. */
    unsigned int letter = cstr[n];
   letter = afm_fix_osx_charset(letter); /* unsafe macro */

    gottab = 0;
    if (letter == '\\' && n+1 < string->count && cstr[n+1] == 't'){
            /* we have a tab here so skip the backslash and
               set t to ' ' so that we get a white space */
            gottab = 1;
            n++;
            letter  = ' ';
    }
    if (letter == '\t'){
   letter = ' ';
        gottab = 1 ;
    }
    /* initialize each struct gfx_char_s */
    glyph->index = 0;
    glyph->pos.x = 0;
    glyph->pos.y = 0;
    glyph->image = NULL;

    glyph->index = FT_Get_Char_Index( face, w_text[n]);

    /* compute glyph origin */
    if ( use_kerning && previous && glyph->index ) {
      FT_Vector kerning;
      FT_Get_Kerning (face, previous, glyph->index,
          ft_kerning_default, &kerning);
      ft_pen.x += kerning.x;
      ft_pen.y += kerning.y;
    }

    /* load the glyph image (in its native format) */
    /* for now, we take a monochrome glyph bitmap */
    error = FT_Load_Glyph (face, glyph->index, size >
canvas->font_aa_threshold ?
                            canvas->aa_type == AA_NORMAL ?
FT_LOAD_TARGET_NORMAL :
                            canvas->aa_type == AA_LIGHT ?
FT_LOAD_TARGET_LIGHT :
                            FT_LOAD_TARGET_MONO : FT_LOAD_TARGET_MONO);
    if (error) {
      DPRINTF("couldn't load glyph:  %c\n", letter)
      continue;
    }
    error = FT_Get_Glyph (slot, &glyph->image);
    if (error) {
      DPRINTF("couldn't get glyph %c from slot %d\n", letter, (int)slot)
      continue;
    }
    /* if we are in tabbing mode, we replace the tab with a space and shift
the position
       of the space so that its left edge is where the tab was supposed to
land us */
    if (gottab){
       /* we are in gridfitting mode so the calculations happen in 1/64
pixles */
        ft_pen.x = tabwidth*64.0 * (float)(1 + (long)(ft_pen.x / (tabwidth *
64.0))) - slot->advance.x;
    }
    /* store current pen position */
    glyph->pos.x = ft_pen.x;
    glyph->pos.y = ft_pen.y;


    ft_pen.x   += slot->advance.x;
    ft_pen.y   += slot->advance.y;

    /* rotate glyph */
    vec = glyph->pos;
    FT_Vector_Transform (&vec, &string->transform);
    error = FT_Glyph_Transform (glyph->image, &string->transform, &vec);
    if (error) {
      DPRINTF("couldn't transform glyph id %d\n", letter)
      continue;
    }

    /* convert to a bitmap - destroy native image */
    error = FT_Glyph_To_Bitmap (&glyph->image, size >
canvas->font_aa_threshold ?
                            canvas->aa_type == AA_NORMAL ?
FT_RENDER_MODE_NORMAL :
                            canvas->aa_type == AA_LIGHT ?
FT_RENDER_MODE_LIGHT :
                            FT_RENDER_MODE_MONO : FT_RENDER_MODE_MONO, 0,
1);
    if (error) {
      DPRINTF("couldn't convert glyph id %d to bitmap\n", letter)
      continue;
    }

    /* increment number of glyphs */
    previous = glyph->index;
    string->num_glyphs++;
  }
  free(cstr);
/*  printf ("number of glyphs = %d\n", string->num_glyphs);*/
  compute_string_bbox( string );
  /* the last character was a tab */
  /* if (gottab) { */
      string->width = ft_pen.x;
  /* } else {
      string->width = string->bbox.xMax - string->bbox.xMin;
  } */
  string->height = string->bbox.yMax - string->bbox.yMin;

  free(w_text);

  return string;
}

From rrd_graph.c

rrd_graph_init(image_desc_t *im)
{
    unsigned int i;

#ifdef HAVE_TZSET
    tzset();
#endif
#ifdef HAVE_SETLOCALE
    setlocale(LC_ALL,"zh_CN.UTF-8");
#endif

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #137 於: 2006-03-13 08:27 »
man 一下 setlocale() 看看吧. 不要用 LC_ALL, 改成你要的那些項目設成 zh_CN.UTF-8 就好了.

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #138 於: 2006-03-13 08:51 »
man setlocale
你要排除 LC_TIME

lorcs

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #139 於: 2006-03-14 23:30 »
多謝TWU2和Abel兄,我的問題解決了。

Ray

tigershen

  • 懷疑的國中生
  • **
  • 文章數: 32
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #140 於: 2006-04-03 17:38 »
FreeBSD的使用者要改這個才能使用中文.
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool-trac/changeset/772

书剑&

  • 可愛的小學生
  • *
  • 文章數: 2
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #141 於: 2006-04-06 09:16 »
楼主,有个问题能不能帮帮忙 .我想将rrdtool生成的图形放到网页上,用rrdcgi,我的脚本内容如下:
#!/usr/local/rrdtool/bin/rrdcgi
<RRD::GOODFOR 300>
<HTML>
<HEAD> <TITLE> RRD CGI DEMO </TITLE></HEAD>
<BODY bgcolor="#000000" text="#ffffff">
<RRD::SETVAR rrdname /home/zlf/shell/protocol.rrd>
<RRD::SETVAR imgedir /home/zlf/shell>
<RRD::GRAPH
<RRD::GETVAR imgedir>/tcp.png
--imginfo '<IMG SRC=/images/%s WIDTH=%lu HEIGHT=%lu>'
--lazy -w 800 -h 200
-c BACK#000000 -c CANVAS#000000 -c GRID#808080 -c MGID#ffffff
-c FONT#ffffff -c FRAME#808080
DEF:v1=<RRD::GETVAR rrdname>:TCP:AVERAGE "CDEF:t1=v1,1024,/"
AREA:t1#0066ff:"TCP"
>
</BODY>
</HTML>
可在地址栏内一输入地址就说ERROR: opening '/home/zlf/shell/protocol.rrd': Permission denied,我protocol.rrd的权限改成777都不行,这是怎么回事呢?楼主能帮一下忙吗?

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #142 於: 2006-04-07 10:09 »
我不知道為什麼,因為我沒有用過 rrdcgi
我想可能是 rrdcgi 先 delete 再做 create 圖檔的動作
所以你 rrd 777 可能仍有問題,把目錄也改成 777 試試看

paulso

  • 俺是博士!
  • *****
  • 文章數: 1966
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #143 於: 2006-04-27 18:53 »
我照著設定, ok 了, 不過想問怎樣控制 x axis 的東西?

1. 使用 rrdtool graph -s `date -d "-1 day" +"%s"`
但是 x axis 的東西是 00:00 02:00 etc...
怎樣改成 00:00 , 06:00 這樣?不想太密...

2. 使用 rrdtool graph -s `date -d "-1 week" +"%s"`
但是 x axis 的東西是 00:00 02:00 etc...
怎樣改成星期一, 星期二 這樣?

看了幾次也看不出應在哪裏設
謝謝

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #144 於: 2006-04-28 10:20 »
代碼: [選擇]

Grid

    X-Axis
        [-x|--x-grid GTM:GST:MTM:MST:LTM:LST:LPR:LFM]

        [-x|--x-grid none]

        The x-axis label is quite complex to configure. If you don't have very special needs it is probably best to rely on the autoconfiguration to get this right. You can specify the string none to suppress the grid and labels altogether.

        The grid is defined by specifying a certain amount of time in the ?TM positions. You can choose from SECOND, MINUTE, HOUR, DAY, WEEK, MONTH or YEAR. Then you define how many of these should pass between each line or label. This pair (?TM:?ST) needs to be specified for the base grid (G??), the major grid (M??) and the labels (L??). For the labels you also must define a precision in LPR and a strftime format string in LFM. LPR defines where each label will be placed. If it is zero, the label will be placed right under the corresponding line (useful for hours, dates etcetera). If you specify a number of seconds here the label is centered on this interval (useful for Monday, January etcetera).

        --x-grid MINUTE:10:HOUR:1:HOUR:4:0:%X

        This places grid lines every 10 minutes, major grid lines every hour, and labels every 4 hours. The labels are placed under the major grid lines as they specify exactly that time.

        --x-grid HOUR:8:DAY:1:DAY:1:0:%A

        This places grid lines every 8 hours, major grid lines and labels each day. The labels are placed exactly between two major grid lines as they specify the complete day and not just midnight.


 把官網上的 rrdgraph 看一下,因為這個功能我很少用,所以不做介紹
而且實際上我也覺得這個不好用

paulso

  • 俺是博士!
  • *****
  • 文章數: 1966
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #145 於: 2006-04-28 12:44 »
其實我又不是太刻意想修改 x axis:





我看到大大可以做到, 而我做不到, 但是看設定的步驟找不到那裏是
所以這樣問

也許我貼一貼我的設定檔:

引述: "create"
rrdtool create ./remoteserver.domain.com.rrd -s 600 -b `date +"%s"` \
DS:cpuSys:GAUGE:600:0:100 \
DS:cpuUser:GAUGE:600:0:100 \
DS:cpuIO:GAUGE:600:0:100 \
RRA:AVERAGE:0.5:1:14400 \
RRA:AVERAGE:0.5:6:4800 \
RRA:AVERAGE:0.5:24:1200 \
RRA:AVERAGE:0.5:288:600


引述: "cron"
#!/bin/bash
host=remoteserver.domain.com

cd /tmp
wget http://$host/cpu_user.html
wget http://$host/cpu_sys.html
wget http://$host/cpu_io.html
cpuUser=`cat cpu_user.html`
cpuSys=`cat cpu_sys.html`
cpuIO=`cat cpu_io.html`
# $cpu* store a int between 0~100
rm -f cpu_user.html cpu_sys.html cpu_io.html
/bin/rrdtool update /var/www/html/rrdtool/$host/$host.rrd N:$cpuUser:$cpuSys:$cpuIO


引述: "genGraph"
#!/bin/bash
host=remoteserver.domain.com

RRD_FILE=/var/www/html/rrdtool/$host/$host.rrd
rrdtool graph /var/www/html/rrdtool/$host/$host\_$1.png \
--title "$host CPU loading" \
DEF:t1=$RRD_FILE:cpuSys:AVERAGE \
DEF:t2=$RRD_FILE:cpuUser:AVERAGE \
DEF:t3=$RRD_FILE:cpuIO:AVERAGE \
STACK:t3#0000ff:"IO" \
STACK:t2#00ff00:"user" \
STACK:t1#ff0000:"system" \
-h 180 -w 480 -s `date -d "-1 $1" +"%s"` -v "(%)"


引述: "index.php"
<?php

$host="remoteserver.domain.com";

shell_exec("./genGraph day");
shell_exec("./genGraph week");

echo "<img src=".$host."_day.png><BR>";
echo "<img src=".$host."_week.png>";

?>

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #146 於: 2006-04-28 13:42 »
看起來有什麼問題呀,圖畫出來是如何呢 ?

你這個話圖的語法沒有問題嗎 ?
STACK:t3#0000ff:"IO" \
STACK:t2#00ff00:"user" \
STACK:t1#ff0000:"system" \

paulso

  • 俺是博士!
  • *****
  • 文章數: 1966
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #147 於: 2006-04-28 14:07 »
引述: "abelyang"
看起來有什麼問題呀,圖畫出來是如何呢 ?


圖是這樣





那些時間有些怪符號, 咦, 難道是其他編碼的關係… (猜的)


引述: "abelyang"
你這個話圖的語法沒有問題嗎 ?
STACK:t3#0000ff:"IO" \
STACK:t2#00ff00:"user" \
STACK:t1#ff0000:"system" \


看似沒問題...

abelyang

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 1097
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #148 於: 2006-04-28 14:14 »
是的,我可想是
你的 rrd 不支援 8bit 但你的 Locale 為 8bit 性質語系
或你的 rrd 巳是中文化版本,但是 Locale 不對
應這是這兩種可能之一

paulso

  • 俺是博士!
  • *****
  • 文章數: 1966
    • 檢視個人資料
[教學]大作 rrdtool (像 mrtg 的東東) 完全攻略
« 回覆 #149 於: 2006-04-28 16:40 »
嗯... 試過使用 abelyang 的 patch 和 rrdtool-1.0 abelyang 的 big5 版本
還未行, 比較麻煩... 我會再試

另外對於我所劃的圖有沒有什麼建議, 因為 cpu loading 的數據變動得大, 一時很高一時很低
不懂得怎樣弄靚它= =