修改IE默认源代码查看程序
默认是NOTEPAD…
老外有做专门的修改工具
ViewSourceEditor
一、zabbix server / agentd安装
zabbix安装文档网上到处都是,这里不再重复。
可以参考:
网络监控软件Zabbix详细安装步骤
二、proxy安装:
1、下载zabbix1.8.1解压后,需要net-snmp和libcurl支持
编译安装
./configure --enable-proxy --with-mysql --with-net-snmp –with-libcurl
make && make install
2、mysql设定
shell> mysql -u<username> -p<password>
mysql> create database zabbix character set utf8;
mysql> GRANT ALL ON zabbix.* TO zabbix@'localhost' IDENTIFIED BY 'zabbixpass';
mysql> flush privileges;
mysql> quit;
shell> cd create/schema
shell> cat mysql.sql | mysql -u<username> -p<password> zabbix3、zabbix_proxy.conf配置文件设定:
Server=zabbix_server #zabbix server的ip地址或者域名
Hostname=Telcom_proxy #proxy主机名,在zabbix web会以这个名字为准
#DB 设定档
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpass
ProxyLocalBuffer=0 #设定为0小时,除非有其他第三方应用和插件需要调用
ProxyOfflineBuffer=1 #proxy或者server无法连接时,保留离线的监控数据的时间,单位小时
ConfigFrequency=600 #server和proxy配置修改同步时间间隔,设定5-10分钟即可。
DataSenderFrequency=10 #数据发送时间间隔,10-30s;
#网络传输质量越好,可以设定间隔时间越短,监控效果也越迅速;
StartPollers=10 #开启多线程数,一般不要超过30个;
StartPollersUnreachable=1 #该线程用来单独监控无法连接的主机,1个即可;
StartTrappers=10 #trapper线程数
StartPingers=1 #fping线程数
CacheSize=64M #用来保存监控数据的缓存数,根据监控主机数量适当调整;
Timeout=10 #超时时间,设定不要超过30s,不然会拖慢其他监控数据抓取时间;
TrapperTimeout=30 #同上
FpingLocation=/usr/sbin/fping #配合simple check icmp检测使用,如不需要可关闭;其他配置默认即可;
4、在zabbix web interface中添加proxy:
Administration -> GM -> proxies [create proxy]

这里主机名要和proxy配置文件中设定相同,区分大小写;
三、proxy下的被监控主机的zabbix_agentd.conf设定:
Server=Telcom_proxy #输入Telcom_proxy的IP地址
重启zabbix agentd服务;在日志中看到
zabbix_agentd active check started [Telcom_proxy:10051]说明连接proxy成功;
五、检测代理是否正确使用
1、查看zabbix_proxy.log是否能看到被监控主机的错误报告信息;
2、在web中能看到主机的监控数据;
六、切换代理监控
需修改被监控主机的agentd 配置文件中的Server=切换的代理服务器ip,然后再web中修改主机为用其他代理服务器监控;
如不修改主机的agentd,及时修改用其他代理服务器监控也会被zabbix server自动改回原来的代理,这点请注意。
zabbix的 discovery功能可以很简单的实现批量添加主机的功能,但是默认添加的主机的hostname都是IP地址,这样不利于记忆和管理;
尤其当服务器数量庞大的时候,修改起来就非常的痛苦啦。
所以这里我推荐使用Configuration -> Actions -> auto registration,如图:

当安装完zabbix_agentd的服务器就会主动上报,加入到监控中。
需要在zabbix_agentd.conf中注明:
Hostname=hostserver-wwwXX
#无需开启active checks批量修改主机名可以自制rpm包安装来解决。
在zabbix_rpm.spec加入
%post
/bin/sed -i s/sedname/`/bin/hostname`/g /etc/zabbix/zabbix_agentd.conf最近新安装了cacti 0.8.7e
发现了个很莫名的问题:无法画图并且主机检测snmp error
在Console -> Utilities -> Technical Support中发现:
snmp Version:显示为空
RRDTool Version:ERROR: Installed RRDTool version does not match configured version.
Please visit the Configuration Settings and select the correct RRDTool Utility Version.
排查所有可能引起的问题。php 模块,rrdtool也从1.4换到1.3再到1.2.30搞郁闷啦。
最后到官网发现原来是0.8.7e的bug 打了官方补丁后ok啦。虽然Technical Support中还是显示错误,但可以画图和snmp检测主机啦。
以下脚本,大家如果发现有同样问题,可以复制保存为sh文件在cacti web目录中执行即可。
wget http://www.cacti.net/downloads/patches/0.8.7e/cli_add_graph.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/snmp_invalid_response.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/template_duplication.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/fix_icmp_on_windows_iis_servers.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/cross_site_fix.patch
patch -p1 -N < cli_add_graph.patch
patch -p1 -N < snmp_invalid_response.patch
patch -p1 -N < template_duplication.patch
patch -p1 -N < fix_icmp_on_windows_iis_servers.patch
patch -p1 -N < cross_site_fix.patch最近改造公司监控环境,解决南北互通的带来数据延时而不能及时报警,所以选择分布式监控系统zabbix,使用下来感觉效能不错,功能齐全。
特别是开放团队以sa为基础,操作上带来极大的快捷。为了提高监控操作和方便推广,近日我自己改了汉化配置文件,先发出给大家下载试用;
有些不够精确的地方,请大家修正。
点击下载:cn_zh.inc.php.tar
解压后,复制到wwwroot/zabbix/include/locales/下覆盖原来的文件;
然后点击zabbix 首页右上角porfile,language 中选择Chinese(CN)即可。
等我文档整理完毕,在添加zabbix各项强大功能的安装和配置,以及分布式优化等文档。
常常感觉系统资源不够用,一台机子上跑了不下3个比较重要的服务,但是每天我们还要在上面进行个备份压缩等处理,网络长时间传输,这在就很影响本就不够用的系统资源;
这个时候我们就可以把一些不太重要的比如copy/备份/同步等工作限定在一颗cpu上,或者是多核的cpu的一颗核心上进行处理,虽然这不一定是最有效的方法,但可以最大程度上利用了有效资源,降低那些不太重要的进程占用cpu资源;
查看系统下cpu信息:
#cat /proc/cpuinfotaskset就可以帮我们完成这项工作,而且操作非常简单;
该工具系统默认安装,rpm包名util-linux
#taskset --help
taskset (util-linux 2.13-pre7)
usage: taskset [options] [mask | cpu-list] [pid | cmd [args...]]
set or get the affinity of a process-p, –pid operate on existing given pid
-c, –cpu-list display and specify cpus in list format
-h, –help display this help
-v, –version output version information
举例:
1、开启一个只用0标记的cpu核心的新进程(job.sh是你的工作脚本)
#taskset -c 0 sh job.sh2、查找现有的进程号,调整该进程cpu核心使用情况(23328举例用的进程号)
#taskset -pc 0 23328
pid 23328's current affinity list: 0-3 #0-3表示使用所有4核进行处理
pid 23328's new affinity list: 0 #调整后改为仅适用0标记单核处理3、可在top中进行负载check
最后你可以在你的工作脚本中加入该指令来合理利用现有的cpu资源;
工作需要测试了一下tomcat并发连接。
注:只是测试并发请求处理。业务、数据库相关均没有测试。
OS:CentOS 4.6 x64
CPU:Intel(R) Xeon(R) CPU E5405 @ 2.00GHz x2
Mem: 8G
JDK:jdk-6u14-linux-i586i
Tomcat:apache-tomcat-6.0.20
测试工具:http_load
Tomcat中同一个应用开了8000~8005 一共6个端口。
测试的过程中为了能够让http_load尽可能的平均访问不同的端口,所以urls文件里面每个端口添加了10条记录。
测试1。
首先在urls文件里面添加10条8000端口的URL地址。
[root@localhost ~]# /usr/local/bin/http_load -parallel 200 -fetches 5000 urls
5000 fetches, 200 max parallel, 510000 bytes, in 1.0391 seconds
102 mean bytes/connection
4811.88 fetches/sec, 490811 bytes/sec
msecs/connect: 0.240075 mean, 0.68 max, 0.15 min
msecs/first-response: 40.4642 mean, 109.282 max, 0.452 min
HTTP response codes:
code 200 -- 5000
[root@localhost ~]# /usr/local/bin/http_load -parallel 300 -fetches 5000 urls.txt
5000 fetches, 300 max parallel, 510000 bytes, in 3.0123 seconds
102 mean bytes/connection
1659.86 fetches/sec, 169306 bytes/sec
msecs/connect: 12.2703 mean, 3000.36 max, 0.16 min
msecs/first-response: 52.6458 mean, 239.945 max, 1.006 min
HTTP response codes:
code 200 -- 5000
[root@localhost ~]# /usr/local/bin/http_load -parallel 300 -fetches 5000 urls.txt
5000 fetches, 300 max parallel, 510000 bytes, in 0.954591 seconds
102 mean bytes/connection
5237.85 fetches/sec, 534260 bytes/sec
msecs/connect: 0.279958 mean, 0.745 max, 0.155 min
msecs/first-response: 55.0805 mean, 113.472 max, 0.732 min
HTTP response codes:
code 200 -- 5000通过上面可以看出并发请求达到300的时候,msecs/connect、fetches/sec 已经开始变得不稳定。
[root@localhost ~]# /usr/local/bin/http_load -parallel 250 -fetches 5000 urls.txt
5000 fetches, 250 max parallel, 510000 bytes, in 3.00177 seconds
102 mean bytes/connection
1665.68 fetches/sec, 169900 bytes/sec
msecs/connect: 4.44925 mean, 2999.81 max, 0.148 min
msecs/first-response: 46.7389 mean, 112.785 max, 0.915 min
HTTP response codes:
code 200 -- 5000
[root@localhost ~]# /usr/local/bin/http_load -parallel 250 -fetches 5000 urls.txt
5000 fetches, 250 max parallel, 510000 bytes, in 0.981205 seconds
102 mean bytes/connection
5095.78 fetches/sec, 519769 bytes/sec
msecs/connect: 0.255888 mean, 0.946 max, 0.142 min
msecs/first-response: 47.5066 mean, 108.264 max, 0.901 min
HTTP response codes:
code 200 -- 5000并发250和300存在同样的问题。这也就是说明tomcat一个端口处理200个并发比较正常。这个太让人失望了。
之后我按照上面的方法每次增加一个端口,增大parallel 进行测试。发现fetches/sec始终保持在4500+。不知道这个还能不能提升。
google搜索了一下Tomcat并发优化。好像有人可以让tomcat单端口并发达到1000。但是文章里面提到的优化方法我测试之前已经做过。-_-b
对Java的东西接触的不多,希望哪位大大可以指点指点。我的MSN:ready.king@hotmail.com。请注明“hiadmin”。谢谢~~
一、实际问题
snmp监听端口默认为UPD 161,当监控服务器无法直接访问时,就需要用到端口映射来解决!
同样问题还有dns服务器的UPD 53端口。
二、使用nc来映射UPD端口
假设被监控服务器的IP为192.168.1.1;用于端口映射的主机为某个公网IP如59.1.1.1;需要映射的端口为UDP 161转发端口设为1161(自定义建议1024以上端口)
在端口映射服务器上操作,要安装nc,一般系统都会安装;
【注:nc存在安全漏洞,一定要设定防火墙】
在监控服务器上进行测试是否能采集到数据:
设定成功;这里存在一个问题就是nc监听的端口每次一连接就会挂起,采取一个比较笨的办法就是写个restart.sh脚本放在crontab中每分钟执行一次;
产生该问题的主要原因我在下面讲socat的时候会分析的;
针对snmp采集这样是没有问题,如果dns服务就不行啦!
三、采用nc升级版本的socat来实现UDP端口映射
软件包下载地址:http://www.dest-unreach.org/socat/download/
安装无非就是configure make make install
socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socket等
这里不一一介绍啦!
有兴趣可以查看官方文档:http://www.dest-unreach.org/socat/doc/socat.html
我们说说如何使用socat建立UPD端口映射
【注:nc就是因为缺少fork模式,所以每次监听只能处理一次连接】
socat是一个强大的软件,希望与有这方面需求的同仁一起学习这个好的工具!
ps:无论是nc方式还是socat方式,启动监听模式都是在前端占用一个shell,所以请在后台执行或者使用screen工具等等!
apachebench网上的资料很多
但是甚至包括国外的文章以及官方文档
出了help显示的内容之外就没有任何一丁点更详细些的内容了
要使用ab进行post数据测试.从help可以看出我们需要定义两个内容
一个是-p参数.指定需要post的数据
还有一个是-T参数,指定使用的content-type
我在服务器端简单的写了一个脚本.将获取到的post请求输出到文件
然后在本地生成post.txt文件
内容为test=abc
使用ab进行测试
ab -n 1 -p post.txt http://192.168.0.2/test.php
发现服务器端接受到了请求,但是没有受到post的数据
使用类型之后.也还是不行
ab -n 1 -p post.txt -T ‘text/html’ http://192.168.0.2/test.php
使用get方式测试
ab -n 1 http://192.168.0.2/test.php?test=abc
服务器端则可以正常工作
和开始说的一样.翻烂了google也没有找到
最后只能用wireshark抓包
最后发现content-type一定要设置成为
application/x-www-form-urlencoded
最后如下测试.才最后通过
ab -n 1 -p post.txt -T ‘application/x-www-form-urlencoded’ http://192.168.0.2/test.php
还有postfile
如果有多条记录
内容可以写成
类似这样即可
这个也是文档中没有提及的,让我一开始以为postfile的格式有误.
网上有提到过一种格式
这种是不对的
这样的ab会把整个
当作test1这个field传送出去
近期评论