RRDTool 详解
[root@node1 ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [root@node1 ~]# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
[root@node1 ~]# ntpdate 202.120.2.101
[root@node1 ~]# wget ftp://195.220.108.108/linux/centos/6.4/os/x86_64/Packages/rrdtool-1.3.8-6.el6.x86_64.rpm
[root@node1 ~]# yum -y localinstall --nogpgcheck rrdtool-1.3.8-6.el6.x86_64.rpm
[root@node1 ~]# rpm -qa | grep rrdtool rrdtool-1.3.8-6.el6.x86_64 [root@node1 ~]# rpm -ql rrdtool /usr/bin/rrdcgi /usr/bin/rrdtool #命令行工具 /usr/bin/rrdupdate /usr/lib64/librrd.so.4 #下面是库文件 /usr/lib64/librrd.so.4.0.7 /usr/lib64/librrd_th.so.4 /usr/lib64/librrd_th.so.4.0.7 /usr/share/man/man1/bin_dec_hex.1.gz #下面是帮助文档 /usr/share/man/man1/cdeftutorial.1.gz /usr/share/man/man1/rpntutorial.1.gz /usr/share/man/man1/rrd-beginners.1.gz /usr/share/man/man1/rrdbuild.1.gz /usr/share/man/man1/rrdcgi.1.gz /usr/share/man/man1/rrdcreate.1.gz /usr/share/man/man1/rrddump.1.gz /usr/share/man/man1/rrdfetch.1.gz /usr/share/man/man1/rrdfirst.1.gz /usr/share/man/man1/rrdgraph.1.gz /usr/share/man/man1/rrdgraph_data.1.gz /usr/share/man/man1/rrdgraph_examples.1.gz /usr/share/man/man1/rrdgraph_graph.1.gz /usr/share/man/man1/rrdgraph_rpn.1.gz /usr/share/man/man1/rrdinfo.1.gz /usr/share/man/man1/rrdlast.1.gz /usr/share/man/man1/rrdlastupdate.1.gz /usr/share/man/man1/rrdresize.1.gz /usr/share/man/man1/rrdrestore.1.gz /usr/share/man/man1/rrdthreads.1.gz /usr/share/man/man1/rrdtool.1.gz /usr/share/man/man1/rrdtune.1.gz /usr/share/man/man1/rrdtutorial.1.gz /usr/share/man/man1/rrdupdate.1.gz /usr/share/man/man1/rrdxport.1.gz /usr/share/rrdtool
[root@node1 ~]# rrdtool -h RRDtool 1.3.8 Copyright 1997-2009 by Tobias Oetiker <tobi@oetiker.ch> Compiled Aug 21 2010 10:57:18 Usage: rrdtool [options] command command_options Valid commands: create, update, updatev, graph, graphv, dump, restore, last, lastupdate, first, info, fetch, tune, resize, xport RRDtool is distributed under the Terms of the GNU General Public License Version 2. (www.gnu.org/copyleft/gpl.html) For more information read the RRD manpages
rrdtool create filename [--start|-b start time] [--step|-s step] DS:ds-name:DST:dst arguments #后获取的数据是PDP,更新数据时要考滤DS顺序(*把所有要更新的数据,按照DS定义的顺序用冒号格开*) RRA:CF:cf arguments #后获取的数据是CDP,绘图时使用的是这些数据
[root@node1 ~]# rrdtool create eth0.rrd \ > --step 300 \ > DS:eth0_in:COUNTER:600:0:12500000 \ # 600 是 heartbeat;0 是小值;12500000 表示大值; > DS:eth0_out:COUNER:600:0:12500000 \ # 如果没有小值/大值,可以用 U 代替,例如 U:U > RRA:AVERAGE:0.5:1:600 \ # 1 表示对1个 PDP 取平均。实际上就等于 PDP 的值 > RRA:AVERAGE:0.5:4:600 \ # 4 表示每4个 PDP 合成为一个 CDP,也就是20分钟。方法是对4个PDP取平均, > RRA:AVERAGE:0.5:24:600 \ # 同上,但改为24个,也就是24*5=120分钟=2小时。 > RRA:AVERAGE:0.5:288:730 # 同上,但改为288个,也就是 288*5=1440分钟=1天 [root@node1 ~]# ll -h eth0.rrd -rw-r--r-- 1 root root 41K 10月 11 10:16 eth0.rrd
[root@node1 ~]# snmpget -v 2c -c public 192.168.18.201 ifInOctets.2 IF-MIB::ifInOctets.2 = Counter32: 57266195
[root@node1 ~]# snmpget -v 2c -c public 192.168.18.201 ifInOctets.2 | sed -e 's/.*ter32: \(.*\)/\1/' 57463513
rrdtool update filename [--template|-t ds-name[:dsname]...] N|timestamp:value[:value...] filename RRD数据库文件名称 --template|-t ds-name[:ds-name] 要更新RRD数据库中数据源的名称,其中-t指定数据源的顺序 N|timestamp:value[:value...] 时间:要更新的值
[root@node1 ~]#rrdtool update eth0.rrd 1381467942:60723022 或 [root@node1 ~]# rrdtool update eth0.rrd N:60723022
[root@node1 ~]# rrdtool fetch eth0.rrd AVERAGE
rrdtool graph filename [option ...] [data definition ...] [data calculation ...] [variable definition ...] [graph element ...] [print element ...] 其中的 data definiton、variable definition 、data calculation、分别是下面的格式, DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>][:end=<time>][:reduce=<CF>] VDEF:vname=RPN expression CDEF:vname=RPN expression
rrdtool graph filename [option ...] [data definition ...] [data calculation ...] [variable definition ...] [graph element ...] [print element ...]
[root@node1 ~]# yum install -y mysql-server
[root@node1 ~]# chkconfig mysqld on [root@node1 ~]# service mysqld start 初始化 MySQL 数据库: Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h node1.test.com password 'new-password' Alternatively you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /usr/mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/bin/mysqlbug script! [确定] 正在启动 mysqld: [确定] [root@node1 ~]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.1.69 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec) mysql>
[root@node1 ~]# rrdtool create mysql.rrd --step 3 DS:mysqlselect:COUNTER:5:0:U RRA:AVERAGE:0.5:1:28800 RRA:AVERAGE:0.5:10:2880 RRA:MAX:0.5:10:2880 RRA:LAST:0.5:10:2880 [root@node1 ~]# ll -h 总用量 620K -rw-------. 1 root root 970 8月 17 18:50 anaconda-ks.cfg -rw-r--r--. 1 root root 16K 8月 17 18:50 install.log -rw-r--r--. 1 root root 4.1K 8月 17 18:48 install.log.syslog -rw-r--r-- 1 root root 294K 10月 11 15:57 mysql.rrd -rw-r--r-- 1 root root 294K 10月 10 21:53 rrdtool-1.3.8-6.el6.x86_64.rpm
[root@node1 ~]# mysql --batch -e "show global status like 'com_select'" | awk '/Com_select/{print $2}' 5
[root@node1 ~]# vim getselect.sh #!/bin/bash # while true; do SELECT=`mysql --batch -e "show global status like 'com_select'" | awk '/Com_select/{print $2}'` rrdtool update mysql.rrd N:$SELECT sleep 3 done [root@node1 ~]# bash -n getselect.sh [root@node1 ~]# bash -x getselect.sh + true ++ mysql --batch -e 'show global status like '\''com_select'\''' ++ awk '/Com_select/{print $2}' + SELECT=10 + rrdtool update mysql.rrd N:10 + sleep 3 + true ++ awk '/Com_select/{print $2}' ++ mysql --batch -e 'show global status like '\''com_select'\''' + SELECT=11 + rrdtool update mysql.rrd N:11 + sleep 3 + true ++ mysql --batch -e 'show global status like '\''com_select'\''' ++ awk '/Com_select/{print $2}' + SELECT=12 + rrdtool update mysql.rrd N:12
[root@node1 ~]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 55 Server version: 5.1.69 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database testdb; Query OK, 1 row affected (0.01 sec) mysql> use testdb; Database changed mysql> create table tb1 (id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name char(50) NOT NULL); Query OK, 0 rows affected (0.02 sec) mysql> show tables; +------------------+ | Tables_in_testdb | +------------------+ | tb1 | +------------------+ 1 row in set (0.00 sec) mysql>
[root@node1 ~]# vim insert.sh #!/bin/bash # for I in {1..200000}; do mysql -e "INSERT INTO testdb.tb1(name) VALUES ('stu$I')" mysql -e "SELECT * FROM testdb.tb1" &> /dev/null done ~ [root@node1 ~]# bash -n insert.sh [root@node1 ~]# bash -x insert.sh
[root@node1 ~]# rrdtool fetch -r 3 mysql.rrd AVERAGE 1381478757: -nan 1381478760: -nan 1381478763: -nan 1381478766: -nan 1381478769: -nan 1381478772: -nan 1381478775: 2.7153386392e-01 1381478778: 3.2831536999e-01 1381478781: 3.2891623754e-01 1381478784: 3.2705226490e-01 1381478787: 3.2799497906e-01 1381478790: 3.2750147283e-01 1381478793: 3.2962107218e-01 1381478796: 3.3022497969e-01 1381478799: 3.3027211905e-01 1381478802: 3.3020369194e-01 1381478805: 3.2946024073e-01 1381478808: 3.2988230260e-01 1381478811: 3.2969005472e-01 1381478814: 3.2974230463e-01 1381478817: 3.3001057711e-01 1381478820: 3.3019278582e-01 1381478823: 3.3083777490e-01 1381478826: 3.3015850009e-01 1381478829: 3.2968813815e-01 1381478832: 3.3021007195e-01 1381478835: 3.2890877932e-01 1381478838: 3.2919982365e-01 1381478841: 3.2820752812e-01 1381478844: 3.2498916047e-01 1381478847: 3.2435105446e-01 1381478850: 3.2631508451e-01 1381478853: 3.2927988387e-01 1381478856: 3.3061808059e-01 1381478859: 3.3065099981e-01 1381478862: 3.3079060547e-01 1381478865: 3.2993297013e-01 1381478868: 3.2998088978e-01 1381478871: 3.3045720109e-01 1381478874: 3.3052361682e-01 1381478877: 3.3021445518e-01 1381478880: 3.3033678729e-01 1381478883: 3.3017146110e-01 1381478886: 3.2932443118e-01 1381478889: 3.2872916025e-01 1381478892: 3.2942230122e-01 1381478895: 3.3004157568e-01 1381478898: 3.3035752652e-01 1381478901: 3.3026495130e-01 1381478904: 4.2927608935e-01 1381478907: 5.6199888336e-01 1381478910: 3.2960053815e-01 1381478913: 3.3019513627e-01 1381478916: 3.3008973582e-01 1381478919: 3.3023471404e-01 1381478922: 3.3044897038e-01 1381478925: 3.3025127245e-01 1381478928: 3.2999671137e-01 1381478931: 3.2995130475e-01 1381478934: 3.3001845566e-01 1381478937: 3.3004261932e-01 1381478940: 3.2985954162e-01 1381478943: 3.2962262303e-01 1381478946: 3.3033462847e-01 1381478949: 3.3000997317e-01 1381478952: 3.3023836505e-01 1381478955: 3.2987551061e-01 1381478958: 3.3038940726e-01 1381478961: 3.3047901095e-01 1381478964: 3.2999606597e-01 1381478967: 3.3021352982e-01 1381478970: 3.2998445954e-01 1381478973: 3.3029458891e-01 1381478976: 3.3009257605e-01 1381478979: 3.3008453893e-01 1381478982: 3.2998650516e-01 1381478985: 3.3014434356e-01 1381478988: 3.2950044395e-01
[root@node1 ~]# rrdtool graph mysql.png -s 1381478754 -t "mysql select" -v "selects/3" DEF:select3=mysql.rrd:mysqlselect:AVERAGE:step=3 LINE1:select3#FF0000:"select" 497x174
相关文章