Skip to content


ssh连接时清除终端shell乱码方法

当用cat或tail命令显示一个二进制文件后终端可能会变成乱码

解决方法:

1.输入clean命令或按ctrl+L

2.输入reset命令

3.按ctrl+v再按ctrl+o 会出现个^O再按回车 ctrl+v 表示下一输入为特殊字符 ctrl+o 表示^O 切换为原来字符集

参考: http://www.cyut.edu.tw/~ckhung/b/mi/textmode.php

Posted in linux 维护优化, 技术.

Tagged with .


nagios 使用check_file.pl 检查服务是否运行

服务运行时通常会产生个pid文件,我们可以检查这个文件是否存在来简单判定服务是否在运行。

http://exchange.nagios.org/directory/Plugins/Uncategorized/Operating-Systems/Linux/checkfile/details

check_file.pl

#!/usr/bin/perl -w ############################## check_file.pl ############## # Version : 0.1 # Date : Oct 15 2007 # Author : Samuel Mutel # Licence : GPL – http://www.fsf.org/licenses/gpl.txt ########################################################### use strict; use Getopt::Long; my $Version=’0.1′; my %ERRORS=(‘OK’=>0,’WARNING’=>1,’CRITICAL’=>2,’UNKNOWN’=>3,’DEPENDENT’=>4); my $o_help=undef; # wan’t some help ? my $o_version=undef; # print version my $o_exist=undef; # Check if file exist my $o_nexist=undef; # Check if a file doesn’t exist my $o_empty=undef; # Check if a file is empty my $o_nempty=undef; # Check if a file is not empty my $o_paramok=undef; sub print_version { print “check_file version : $Version\n”; } sub print_usage { print “Usage: check_file.pl [-v] [-h] [-e|-n|-m|-t] \n”; } sub print_help { print “\nNagios Plugin to check if a file exist/doesn’t exist.\n”; print “It check too if a file is empty or not.\n\n”; print_usage(); print \$o_help, ‘help’ => \$o_help, ‘v’ => \$o_version, ‘version’ => \$o_version, ‘e’ => \$o_exist, ‘exist’ => \$o_exist, ‘n’ => \$o_nexist, ‘nexist’ => \$o_nexist, ‘m’ => \$o_empty, ’empty’ => \$o_empty, ‘t’ => \$o_nempty, ‘nempty’ => \$o_nempty, ); if (defined ($o_help)) { print_help(); exit $ERRORS{“UNKNOWN”}}; if (defined ($o_version)) { print_version(); exit $ERRORS{“UNKNOWN”}}; if (!defined ($o_exist) && !defined ($o_nexist) && !defined ($o_empty) && !defined ($o_nempty)) { print_usage(); exit $ERRORS{“UNKNOWN”}};; } ###### MAIN ###### check_options(); if (@ARGV != 1) { print_usage(); exit $ERRORS{“UNKNOWN”}; } my $file = $ARGV[0]; if (defined ($o_exist)) { if (-e $file) { print “File ” . $file . ” exist.”; exit $ERRORS{“OK”} } else { print “File ” . $file . ” does not exist.”; exit $ERRORS{“CRITICAL”} } } if (defined ($o_nexist)) { if (! -e $file) { print “File ” . $file . ” does not exist.”; exit $ERRORS{“OK”} } else { print “File ” . $file . ” exist.”; exit $ERRORS{“CRITICAL”} } } if (defined ($o_empty)) { if (! -s $file) { print “File ” . $file . ” is empty.”; exit $ERRORS{“OK”} } else { print “File ” . $file . ” is not empty.”; exit $ERRORS{“CRITICAL”} } } if (defined ($o_nempty)) { if (-s $file) { print “File ” . $file . ” is not empty.”; exit $ERRORS{“OK”} } else { print “File ” . $file . ” is empty.”; exit $ERRORS{“CRITICAL”} } }

在被监控机上 wget http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=1094&cf_id=24

mv check_file.pl /usr/local/nagios/libexec/ cd !$ chown nagios:nagios check_file.pl chmod 0775 check_file.pl

#在nrpe.cfg中增加

command[check_msnbot]=/usr/local/nagios/libexec/check_file.pl -e /opt/lampp/htdocs/msnbot/log/msnbot.pid

#重启nrpe ps aux|grep nrpe kill $pid sudo -u nagios /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

在监控机上 在需要监控的服务器配置文件中增加

define service{ use local-service ; Name of service template to use host_name c1gserver service_description msnbot check_command check_nrpe!check_msnbot notifications_enabled 1 }

重启nagios服务后就可以看到了

service nagios reload

Posted in Nagios, 技术.

Tagged with , .


世界海底光缆分布图

底光缆是国际互联网的骨架。光缆的多少,代表一国与互联网的联系是否紧密。

有人利用微软的Bing地图,以及wikipedia的数据,做出了一幅互动式的世界海底光缆分布图。真是厉害啊。

idc1 我见过的这类地图中,它是最好用的一个。

从地图上可以看到,中国大陆的海底光缆连接点只有三个,因此非常容易对出入境的信息进行控制。

idc2

第一个是青岛(2条光缆)。

idc3

第二个是上海(6条光缆)。

id4

第三个是汕头(3条光缆)。

idc5

由于光缆之间存在重合,所以实际上,中国大陆与Internet的所有通道,就是3个入口6条光缆。

  1. APCN2(亚太二号)海底光缆

带宽:2.56Tbps

长度:19000km

经过地区:中国大陆、香港、台湾、日本、韩国、马来西亚、菲律宾。

入境地点:汕头,上海。

网址:http://en.wikipedia.org/wiki/APCN_2_(cable_system)

idc6

  1. CUCN(中美)海底光缆

带宽:2.2Tbps

长度:30000km

经过地区:中国大陆,台湾,日本,韩国,美国。

入境地点:汕头,上海。

网址:http://en.wikipedia.org/wiki/CUCN_(cable_system)

idc7

  1. SEA-ME-WE 3(亚欧)海底光缆

带宽:960Gbps

长度:39000km

经过地区:东亚,东南亚,中东,西欧。

入境地点:汕头,上海。

网址:http://en.wikipedia.org/wiki/SEA-ME-WE_3

idc8

  1. EAC-C2C海底光缆

带宽:10.24Tbps

长度:36800km

经过地区:亚太地区

入境地点:上海,青岛

网址:http://en.wikipedia.org/wiki/C2C_(cable_system)

idc9

  1. FLAG海底光缆

带宽:10Gbps

长度:27000km

经过地区:西欧,中东,南亚,东亚

入境地点:上海

网址: http://en.wikipedia.org/wiki/Fiber-Optic_Link_Around_the_Globe

idc10

  1. Trans-Pacific Express(TPE,泛太平洋)海底光缆

带宽:5.12Tbps

长度:17700km

经过地区:中国大陆,台湾,韩国,美国

入境地点:上海,青岛

网址:http://en.wikipedia.org/wiki/TPE_(cable_system)

idc11

作为比较,台湾有9条光缆,香港和韩国各有11条光缆,而日本至少有11个入口15条光缆。

来源:阮一峰

Posted in IDC, 其它.

Tagged with , .


cacti 监控 mysql status

项目网址 http://code.google.com/p/mysql-cacti-templates/

下载包并取出ss_get_mysql_stats.php 文件

wget http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.7.tar.gz tar zxvf better-cacti-templates-1.1.7.tar.gz cd better-cacti-templates-1.1.7/scripts/ cp ss_get_mysql_stats.php /opt/htdocs/www/cacti/scripts/ cd !$ chown www:website ss_get_mysql_stats.php chmod 0775 ss_get_mysql_stats.php vi ss_get_mysql_stats.php

修改 ss_get_mysql_stats.php 中mysql配置

$mysql_user = ‘cacti’; $mysql_pass = ‘cacti’; $cache_dir = “/opt/htdocs/www/cacti/cache/”;

创建缓存目录

cd .. mkdir cache chown www:website cache chmod 0775 cache

mysql 创建用户cacti 给予process 权限,如果要监控InnoDB状态,还必须有”SUPER”权限

CREATE USER ‘cacti’@’192.168.0.1’ IDENTIFIED BY ‘***’; GRANT PROCESS ON * . * TO ‘cacti’@’192.168.0.1’ IDENTIFIED BY ‘***’ WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

在cacti管理界面Import Templates导入 cacti_host_template_x_mysql_server_ht_0.8.6i-sver1.1.7.xml

添加图表 New Graphs 选择已有Devices在Associated Graph Templates中添加 X MySQL Connections GT 然后点击Create按钮 过几分钟就可以看到图表

cacti_mysql

====================2014-10-27更新 支持多端口

  1. 在Console -> Data Templates 找到mysql-cacti-templates的mysql模板, 在这里面把Port的Use Per-Data Source Value (Ignore this Value)选中,意思是由用户输入这个参数的值,然后保存。

  2. 在Console->Data Input Methods内,把所有有关mysql数据项的Port都改成不请允许为空 取消选中Allow Empty Input,保存。

  3. 上面全部改完后,在创建图型的时候会提示输入端口: 输入你自己的mysql server端口。然后点create就好了。

参考 http://xok.la/2009/05/cacti_mysql_monitor.html http://www.linuxidc.com/Linux/2011-08/41438.htm

Posted in Cacti, 技术.

Tagged with , , .


cacti 监控 nginx status 支持ip及用户验证

Cacti监控主机:192.168.0.1

Nginx被监控服务器:192.168.0.2

1。首先在编译nginx时允许http_stub_status_module,不然是监控不到nginx的运行状态的

2。编辑配置文件,在要监控的虚拟主机里加入如下内容:

vi /opt/nginx/conf/nginx.conf

###nginx monitor location /nginx_status { stub_status on; access_log off; allow 192.168.0.1; deny all; }

3。重新加载nginx的配置文件

/etc/init.d/nginx restart

4。下载cacti for nginx插件包

wget http://forums.cacti.net/download.php?id=12676

解压后一共有5个文件

tar xvfz cacti-nginx.tar.gz

cp get_nginx_clients_status.pl

/scripts/ cp get_nginx_socket_status.pl /scripts/ chmod 0755 /scripts/get_nginx_socket_status.pl chmod 0755 /scripts/get_nginx_clients_status.pl 5。 检查插件 get_nginx_clients_status.pl http://nginx.server.tld/nginx_status 可以看到如下返回: nginx_accepts:113869 nginx_handled:113869 nginx_requests:122594 6。在后台导入模板文件Import Templates-> Import Template from Local File 把2个监控模板文件导入 cacti_graph_template_nginx_clients_stat.xml cacti_graph_template_nginx_sockets_stat.xml 7。添加图表 New Graphs 选择已有Devices在Associated Graph Templates中添加 Nginx Clients Stat 保存后输入地址如:http://192.168.0.2/nginx 过几分钟就可以看到图表 nginx status 带身份认证 auth_basic “Web_ADMIN”; auth_basic_user_file htpasswd; 方法一: 使用带认证的地址 http://username:[email protected]/nginx 方法二: 修改下get_nginx_clients_status.pl ,把adminname和password换成你的。 适用于所有的主机都使用相同的用户和密码。 15 my $ua = LWP::UserAgent->new(timeout => 5); 16 my $req = HTTP::Headers->new; 17 $req = HTTP::Request->new(GET => $ARGV[0]); 18 19 $req->authorization_basic(‘adminname’,’password’); 20 21 #my $response = $ua->request(HTTP::Request->new(‘GET’,$ARGV[0])); 22 my $response = $ua->request($req); 23 24 my @content = split (/\n/, $response->content); cacti_nginx 参考: http://forums.cacti.net/about26458.html http://www.sitepoint.com/forums/showthread.php?t=597455

Posted in Cacti, 技术.

Tagged with , , .


wordpress open_basedir restriction in effect问题

nginx-0.8.46 php-5.2.14 mysql-5.1.37 eaccelerator-0.9.6.1 wordpress 为官方3.0英文版

安装后在页面出现错误信息

Warning: require() [function.require]: open_basedir restriction in effect. File() is not within the allowed path(s): (/opt/htdocs:/opt/lampp/htdocs:/opt/php/lib/php:/tmp/session:/tmp/upload) in /opt/lampp/htdocs/wordpress/wp-settings.php on line 132

php.ini 中的配置也没错

open_basedir = “/opt/htdocs:/opt/lampp/htdocs:/opt/php/lib/php:/tmp/session:/tmp/upload”

关闭open_basedir或去掉[eaccelerator]之后不会报错,安全起见open_basedir一定要开,eaccelerator换成0.9.5.3后没问题了。

tar jxvf eaccelerator-0.9.5.3.tar.bz2 cd eaccelerator-0.9.5.3/ /opt/php/bin/phpize ./configure –enable-eaccelerator=shared –with-php-config=/opt/php/bin/php-config make make install

参考: http://linux.chinaunix.net/bbs/redirect.php?tid=1162653&goto=lastpost

Posted in PHP, 技术.

Tagged with , , .


Linux下硬盘检测工具smartmontools(smartctl)使用方法

安装: yum install smartmontools

help: #smartctl –help smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen Home page is http://smartmontools.sourceforge.net/

Usage: smartctl [options] device

============================================ SHOW INFORMATION OPTIONS =====

-h, –help, –usage Display this help and exit

-V, –version, –copyright, –license Print license, copyright, and version information and exit

-i, –info
Show identity information for device

-a, –all
Show all SMART information for device

================================== SMARTCTL RUN-TIME BEHAVIOR OPTIONS =====

-q TYPE, –quietmode=TYPE (ATA) Set smartctl quiet mode to one of: errorsonly, silent, noserial

-d TYPE, –device=TYPE Specify device type to one of: ata, scsi, marvell, sat, 3ware,N

-T TYPE, –tolerance=TYPE (ATA) Tolerance: normal, conservative, permissive, verypermissive

-b TYPE, –badsum=TYPE (ATA) Set action on bad checksum to one of: warn, exit, ignore

-r TYPE, –report=TYPE Report transactions (see man page)

-n MODE, –nocheck=MODE (ATA) No check if: never, sleep, standby, idle (see man page)

============================== DEVICE FEATURE ENABLE/DISABLE COMMANDS =====

-s VALUE, –smart=VALUE Enable/disable SMART on device (on/off)

-o VALUE, –offlineauto=VALUE (ATA) Enable/disable automatic offline testing on device (on/off)

-S VALUE, –saveauto=VALUE (ATA) Enable/disable Attribute autosave on device (on/off)

======================================= READ AND DISPLAY DATA OPTIONS =====

-H, –health Show device SMART health status

-c, –capabilities (ATA) Show device SMART capabilities

-A, –attributes
Show device SMART vendor-specific Attributes and values

-l TYPE, –log=TYPE Show device log. TYPE: error, selftest, selective, directory, background, scttemp[sts,hist]

-v N,OPTION , –vendorattribute=N,OPTION (ATA) Set display OPTION for vendor Attribute N (see man page)

-F TYPE, –firmwarebug=TYPE (ATA) Use firmware bug workaround: none, samsung, samsung2, samsung3, swapid

-P TYPE, –presets=TYPE (ATA) Drive-specific presets: use, ignore, show, showall

============================================ DEVICE SELF-TEST OPTIONS =====

-t TEST, –test=TEST Run test. TEST: offline short long conveyance select,M-N pending,N afterselect,[on|off] scttempint,N[,p]

-C, –captive Do test in captive mode (along with -t)

-X, –abort Abort any non-captive test on device

=================================================== SMARTCTL EXAMPLES =====

smartctl –all /dev/hda (Prints all SMART information)

smartctl –smart=on –offlineauto=on –saveauto=on /dev/hda (Enables SMART on first disk)

smartctl –test=long /dev/hda (Executes extended disk self-test)

smartctl –attributes –log=selftest –quietmode=errorsonly /dev/hda (Prints Self-Test & Attribute errors) smartctl –all –device=3ware,2 /dev/sda smartctl –all –device=3ware,2 /dev/twe0 smartctl –all –device=3ware,2 /dev/twa0 (Prints all SMART info for 3rd ATA disk on 3ware RAID controller) smartctl –all –device=hpt,1/1/3 /dev/sda (Prints all SMART info for the SATA disk attached to the 3rd PMPort of the 1st channel on the 1st HighPoint RAID controller)

简单用法: 1、smartctl -a

检查该设备是否已经打开SMART技术。 2、smartctl -s on 如果没有打开SMART技术,使用该命令打开SMART技术。 3、smartctl -t short 后台检测硬盘,消耗时间短; smartctl -t long 后台检测硬盘,消耗时间长; smartctl -C -t short 前台检测硬盘,消耗时间短; smartctl -C -t long 前台检测硬盘,消耗时间长。其实就是利用硬盘SMART的自检程序。 4、smartctl -X 中断后台检测硬盘。 5、smartctl -l selftest 显示硬盘检测日志。 6、smartctl -l error 显示硬盘错误汇总。

Posted in Linux 命令, 技术.

Tagged with , .


Connection closed by remote server

#ssh -p 6022 [email protected]

Connection closed by 192.168.0.18

再ping一下,也没问题 #ping 192.168.0.18

PING 192.168.0.18 (192.168.0.18) 56(84) bytes of data. 64 bytes from 192.168.0.18: icmp_seq=1 ttl=64 time=1.09 ms 64 bytes from 192.168.0.18: icmp_seq=2 ttl=64 time=0.215 ms 64 bytes from 192.168.0.18: icmp_seq=3 ttl=64 time=0.138 ms — 192.168.0.18 ping statistics — 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev = 0.138/0.481/1.090/0.431 ms

看了下web也可以访问,再看一下ssh的详细信息 #ssh -vv -p 6022 192.168.0.18

OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug2: ssh_connect: needpriv 0 debug1: Connecting to 192.168.0.18 [192.168.0.18] port 6022. debug1: Connection established. debug1: identity file /home/c1g/.ssh/identity type -1 debug1: identity file /home/c1g/.ssh/id_rsa type -1 debug1: identity file /home/c1g/.ssh/id_dsa type -1 debug1: loaded 3 keys debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3 debug1: match: OpenSSH_4.3 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_4.3 debug2: fd 3 setting O_NONBLOCK debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: ssh-rsa,ssh-dss debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: none,[email protected],zlib debug2: kex_parse_kexinit: none,[email protected],zlib debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: first_kex_follows 0 debug2: kex_parse_kexinit: reserved 0 debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: ssh-rsa,ssh-dss debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: none,[email protected] debug2: kex_parse_kexinit: none,[email protected] debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: first_kex_follows 0 debug2: kex_parse_kexinit: reserved 0 debug2: mac_init: found hmac-md5 debug1: kex: server->client aes128-cbc hmac-md5 none debug2: mac_init: found hmac-md5 debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024

在输入密码后就断掉了,把机器重启下后,可以登录了。

查看/var/log/messages 和 /var/log/cron 发现从凌晨3点起就没有记录了,估计是磁盘出错变成不可写适成不能登录。

Posted in LINUX, 技术.

Tagged with .


RRDtool 1.4.4 安装

RRDtool介绍

rrdtool-3dlogo RRDTool是由Tobias Oetiker开发的自由软件,它使用RRD(Round Robin Database)作为存储格式,Round robin是一种处理定量数据、以及当前元素指针的技术。RRDTool主要用来跟踪对象的变化情况,生成这些变化的走势图。

stream-pop

07/09/10释放的cacti-0.8.7g已支持rrdtool-1.4X 我选择05-Jul-2010 最新释放的rrdtool-1.4.4.tar.gz 系统为centos 5.2,已安装yum

安装支持包 yum install libxml2-devel libpng-devel pkg-config glib pixman pango pango-devel freetype freetype-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel

安装rrdtool

wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.4.tar.gz tar zxvf rrdtool-1.4.4.tar.gz cd rrdtool-1.4.4 ./configure –prefix=/usr/local/rrdtool-1.4.4 –disable-tcl –disable-python ordering CD from http://tobi.oetiker.ch/wish …. just kidding ;-) —————————————————————- Config is DONE! With MMAP IO: yes Build rrd_getopt: no Static programs: no Perl Modules: perl_piped perl_shared Perl Binary: /usr/bin/perl Perl Version: 5.8.8 Perl Options: PREFIX=/usr/local/rrdtool-1.4.4 LIB=/usr/local/rrdtool-1.4.4/lib/perl/5.8.8 Ruby Modules: Ruby Binary: no Ruby Options: sitedir=/usr/local/rrdtool-1.4.4/lib/ruby Build Lua Bindings: no Build Tcl Bindings: no Build Python Bindings: no Build rrdcgi: yes Build librrd MT: yes Use gettext: yes With libDBI: no Libraries: -lxml2 -lcairo -lcairo -lcairo -lm -lcairo -lpng12 -lglib-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 Type ‘make’ to compile the software and use ‘make install’ to install everything to: /usr/local/rrdtool-1.4.4.

出现下面信息可能缺少支持包

configure: error: Please fix the library issues listed above and try again. make make install ln -s /usr/local/rrdtool-1.4.4 /usr/local/rrdtool /usr/local/rrdtool/bin/rrdtool -v RRDtool 1.4.4 Copyright 1997-2010 by Tobias Oetiker Compiled Jul 22 2010 11:18:48 Usage: rrdtool [options] command command_options Valid commands: create, update, updatev, graph, graphv, dump, restore, last, lastupdate, first, info, fetch, tune, resize, xport, flushcached 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 1.3.7安装 https://blog.c1gstudio.com/archives/459

Posted in RRDtool.

Tagged with .


cacti 监控远程主机

环境介绍 安装cacti的监控机A,ip为 192.168.0.16 安装snmp的被监控机B,ip为 192.168.0.17 系统为centos 4/5

被监控B机安装snmp net-snmp 安装参考

修改B机snmp配置,充许外部访问 自带的snmp配置文件在/etc/snmp/snmpd.conf; 编译安装的snmp配置文件在/usr/local/etc/snmp/snmpd.conf; vi /etc/snmp/snmpd.conf

com2sec local localhost privatepass #安装教程中配置的本机访问要权限 com2sec mynetwork 192.168.0.16 privatepass #新增的外部访问权限,192.168.0.16为监控机ip,privatepass 为安全码可以和local不同 group MyROGroup v1 local group MyROGroup v2c local group MyROGroupnet v1 mynetwork #新增 group MyROGroupnet v2c mynetwork #新增 view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc view all included .1 80 #新增 access MyROGroup “” any noauth exact mib2 none none access MyROGroupnet “” any noauth exact all none none #新增 #以下为访问项目,如果想监控磁盘空间,load等需把注释去掉 #编译安装默认已去掉,自带安装的需手动把注释去掉 # Make sure mountd is running proc mountd #去掉前面的”#” # Make sure there are no more than 4 ntalkds running, but 0 is ok too. proc ntalkd 4 # Make sure at least one sendmail, but less than or equal to 10 are running. proc sendmail 10 1 # Check the / partition and make sure it contains at least 10 megs. disk / 10000 # Check for loads: load 12 14 14

重启snmpd服务 #/etc/init.d/snmpd restart 或 #killall -9 snmpd #/usr/local/sbin/snmpd

iptables规则 假如B机开启了iptables并且INPUT默认策略为DROP 在第一条插入充许192.168.0.16(监控机)以udp协议访问snmpd默认161端口的规则

/sbin/iptables -I INPUT -p udp -m udp -s 192.168.0.16 –dport 161 -j ACCEPT

保存一下,防止重启服务后失效

/etc/init.d/iptables save

测试snmp 在A机上先看下系统信息 #snmpwalk -v 2c -c privatepass 192.168.0.17 system

SNMPv2-MIB::sysDescr.0 = STRING: Linux touareg 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (59664) 0:09:56.64 SNMPv2-MIB::sysContact.0 = STRING: Root (configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: touareg SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (7) 0:00:00.07 SNMPv2-MIB::sysORID.1 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.2 = OID: TCP-MIB::tcpMIB SNMPv2-MIB::sysORID.3 = OID: IP-MIB::ip SNMPv2-MIB::sysORID.4 = OID: UDP-MIB::udpMIB SNMPv2-MIB::sysORID.5 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup SNMPv2-MIB::sysORID.6 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMPv2-MIB::sysORID.7 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.8 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module for SNMPv2 entities SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for managing TCP implementations SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing IP and ICMP implementations SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing UDP implementations SNMPv2-MIB::sysORDescr.5 = STRING: View-based Access Control Model for SNMP. SNMPv2-MIB::sysORDescr.6 = STRING: The SNMP Management Architecture MIB. SNMPv2-MIB::sysORDescr.7 = STRING: The MIB for Message Processing and Dispatching. SNMPv2-MIB::sysORDescr.8 = STRING: The management information definitions for the SNMP User-based Security Model. SNMPv2-MIB::sysORUpTime.1 = Timeticks: (6) 0:00:00.06 SNMPv2-MIB::sysORUpTime.2 = Timeticks: (6) 0:00:00.06 SNMPv2-MIB::sysORUpTime.3 = Timeticks: (6) 0:00:00.06 SNMPv2-MIB::sysORUpTime.4 = Timeticks: (6) 0:00:00.06 SNMPv2-MIB::sysORUpTime.5 = Timeticks: (6) 0:00:00.06 SNMPv2-MIB::sysORUpTime.6 = Timeticks: (7) 0:00:00.07 SNMPv2-MIB::sysORUpTime.7 = Timeticks: (7) 0:00:00.07 SNMPv2-MIB::sysORUpTime.8 = Timeticks: (7) 0:00:00.07

没有问题,再看下磁盘信息 #snmpwalk -v 2c -c privatepass 192.168.0.17 .1.3.6.1.4.1.2021.9

UCD-SNMP-MIB::dskIndex.1 = INTEGER: 1 UCD-SNMP-MIB::dskPath.1 = STRING: / UCD-SNMP-MIB::dskDevice.1 = STRING: /dev/mapper/VolGroup00-LogVol01 UCD-SNMP-MIB::dskMinimum.1 = INTEGER: 10000 UCD-SNMP-MIB::dskMinPercent.1 = INTEGER: -1 UCD-SNMP-MIB::dskTotal.1 = INTEGER: 44628400 UCD-SNMP-MIB::dskAvail.1 = INTEGER: 22383404 UCD-SNMP-MIB::dskUsed.1 = INTEGER: 19941408 UCD-SNMP-MIB::dskPercent.1 = INTEGER: 47 UCD-SNMP-MIB::dskPercentNode.1 = INTEGER: 1 UCD-SNMP-MIB::dskErrorFlag.1 = INTEGER: noError(0) UCD-SNMP-MIB::dskErrorMsg.1 = STRING:

出现下面这个信息,你需要检查下A机snmpd.conf中“disk / 10000”前的注释有无去掉。

UCD-SNMP-MIB::dskTable = No Such Object available on this agent at this OID

“.1.3.6.1.4.1.2021.9″代表磁盘 “.1.3.6.1.4.1.2021.10″代表load,可以参考snmpd.conf中的注释

监控机cacti增加监控设备 Console -> Devices->add cacti add device 在设置页面配置

Description:touareg Hostname:192.168.0.17 Host Template:ucd/net SNMP Host Downed Device Detection:Ping and SNMP SNMP Version:预定义的设置

保存后在页面左上角可以看到调试信息

touareg (192.168.0.17) SNMP Information System:Linux touareg 2.6.18-128.el5 #1 SMP Wed Jan 21 10:41:14 EST 2009 x86_64 Uptime: 38790 (0 days, 0 hours, 6 minutes) Hostname: touareg Location: Unknown (edit /etc/snmp/snmpd.conf) Contact: Root root@localhost (configure /etc/snmp/snmp.local.conf) cacti graphs 1) ucd/net – CPU Usage Not Being Graphed (cpu负载,system,user,nice) 2) ucd/net – Load Average Not Being Graphed (系统平均负载,1分钟,5分钟,15分钟) 3) ucd/net – Memory Usage Not Being Graphed (内存使用,free,buffers,cache) 1) SNMP – Interface Statistics (网卡流量,in,out) 2) ucd/net – Get Monitored Partitions (根分区,free,used) Not Being Graphed 表示还末生成图像,创建图像后会变成Is Being Graphed 我们可以再添加一些更详细的监控 Host MIB – Processes 监控进程数量 Host MIB – Logged in Users 监控登录用户 SNMP – Get Mounted Partitions 更多分区大小,Memory Buffer,Real Memory,Swap Space SNMP – Get Processor Information 每个cpu的负载 临控对像增加图表 左则New Graphs 在host中选择touareg cacti graphs2 勾选右则后选择create,就完成了图表创建,真是很方便。 添加到Graph Trees 图表创建后在Graph Management里可以看到图表,但点击导航上方的”graphs”是看不到的,需要添加到graph trees中。 Console -> Graph Trees -> (Edit) -> Graph Tree Items
Tree Item Type:host Host:touareg
创建后就可以在graph中看到了 cacti graph tree 参考:http://docs.cacti.net/manual:087:2_basics.0_principles_of_operation#principles_of_operation

Posted in Cacti, 技术.

Tagged with , .