购买VPS前主要是使用一些网络测试工具如ping、tracert、WinMTR之类的工具进行测试,确定VPS所走线路的好坏,购买后主要测试VPS的性能。下面主要介绍一下常用的工具:
http://www.17ce.com/ 主要用来测试国内各地市、香港、台湾、少量国外的ping值、路由跟踪。
http://www.webkaka.com/Ping.aspx 主要用来测试国内各地市的ping值,也有香港、美国、日本的ping服务器节点。
http://cloudmonitor.ca.com/en/ping.php 主要用来测试世界各地的ping值。
http://ping.chinaz.com/ 主要用来测试国内的ping值。
http://www.17ce.com/ 路由跟踪测试
http://www.webkaka.com/Tracert.aspx 路由节点跟踪
WinMTR windows上的一个tracert工具工具比Win系统自带的tracert快很多,功能上也要强大。
具体使用方法及参数介绍:
在【Host】文本框中输入要要查询的主机的域名或IP,然后点【Start】。随后下面将会显示查询的结果。每个栏位所代表的意思是:
Hostname:主机名
Nr:节点的数量。
Loss%: ping 数据包回应失败的百分比。
Sent:已经发送的数据包。
Recv:成功接收的数据包数。
Best:回应时间的最小值。
Avrg:平均回应时间。
Worst:回应时间的最大值。
Last:最后一个数据包的回应时间。
本地测试从VPS上下载速度:下载测试主要依赖浏览器,最好使用单线程下载,如用IE。
服务器上测试VPS上的下载速度:使用wget命令下载其他美国机房的文件。
VPS上运行:wget http://cachefly.cachefly.net/100mb.test && rm -f 100mb.test
1、
http://www.vpser.net/opt/unixbench.html :比较常用的性能测试工具
2、硬盘性能测试:
Linux上运行:dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync && rm -f test
此命令最好慎用,会占比较多的磁盘IO,有些服务商可能会不高兴。
hdparm -Tt也是不错的硬盘IO测试工具,主要用来测试SSD硬盘。
Windows上可以使用HD Tune进行测试。
3、搭建好环境对http://www.vpser.net/opt/webserver-test.html (web服务器进行性能测试)可以使用:http_load、webbench、ab、Siege 这些工具,教程:http://www.vpser.net/opt/webserver-test.html
cat /proc/cpuinfo
cpu利用率,是一段时间内cpu的使用情况,通过这个指标可以查看某一个时间段cpu被占用的情况,如果cpu被占用时间很长又很高,要考虑cpu可能已经超负荷运转,对硬件本身来说是一种伤害
Load Average是 CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息,load average从另一个角度展现cpu的使用状态
关系:load average越高,说明对cpu的资源的竞争越激烈,cpu资源越短缺。所以在这种高Average Load的情况下CPU资源的长期“热竞争”也是对于硬件的一种损害
如何评估性能需求中合理的Load Average?
一般来说,Load Average是与机器内核数有关的。以一个单核的机器为例,load=0.5表示CPU还有一半的资源可以处理其他的线程请求,load=1表示CPU所有的资源都在处理请求,没有剩余的资源可以利用了,而load=2则表示CPU已经超负荷运作,另外还有一倍的线程正在等待处理。所以,对于单核机器来说,理想状态下,Load Average要小于1。同理,对于双核处理器来说,Load Average要小于2。结论是:多核处理器中,你的Load Average不应该高于处理器核心的总数量。
free -m
这里分享一个一键脚本检测Linux VPS性能:CPU核心、内存、在线时间、下载速度
cat vpsdownloadtest.sh
#!/bin/bash cname=$( awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo ) cores=$( awk -F: '/model name/ {core++} END {print core}' /proc/cpuinfo ) freq=$( awk -F: ' /cpu MHz/ {freq=$2} END {print freq}' /proc/cpuinfo ) tram=$( free -m | awk 'NR==2 {print $2}' ) swap=$( free -m | awk 'NR==4 {print $2}' ) up=$(uptime|awk '{ $1=$2=$(NF-6)=$(NF-5)=$(NF-4)=$(NF-3)=$(NF-2)=$(NF-1)=$NF=""; print }') echo "CPU model : $cname" echo "Number of cores : $cores" echo "CPU frequency : $freq MHz" echo "Total amount of ram : $tram MB" echo "Total amount of swap : $swap MB" echo "System uptime : $up" cachefly=$( wget -O /dev/null http://cachefly.cachefly.net/100mb.test 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) echo "Download speed from CacheFly: $cachefly " coloatatl=$( wget -O /dev/null http://speed.atl.coloat.com/100mb.test 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) echo "Download speed from Coloat, Atlanta GA: $coloatatl " sldltx=$( wget -O /dev/null http://speedtest.dal05.softlayer.com/downloads/test100.zip 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) echo "Download speed from Softlayer, Dallas, TX: $sldltx " linodejp=$( wget -O /dev/null http://speedtest.tokyo.linode.com/100MB-tokyo.bin 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) echo "Download speed from Linode, Tokyo, JP: $linodejp " i3d=$( wget -O /dev/null http://mirror.i3d.net/100mb.bin 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) echo "Download speed from i3d.net, Rotterdam, NL: $i3d" #linodeuk=$( wget -O /dev/null http://speedtest.london.linode.com/100MB-london.bin 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) #echo "Download speed from Linode, London, UK: $linodeuk " leaseweb=$( wget -O /dev/null http://mirror.leaseweb.com/speedtest/100mb.bin 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) echo "Download speed from Leaseweb, Haarlem, NL: $leaseweb " slsg=$( wget -O /dev/null http://speedtest.sng01.softlayer.com/downloads/test100.zip 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) echo "Download speed from Softlayer, Singapore: $slsg " slwa=$( wget -O /dev/null http://speedtest.sea01.softlayer.com/downloads/test100.zip 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) echo "Download speed from Softlayer, Seattle, WA: $slwa " slsjc=$( wget -O /dev/null http://speedtest.sjc01.softlayer.com/downloads/test100.zip 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) echo "Download speed from Softlayer, San Jose, CA: $slsjc " slwdc=$( wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test100.zip 2>&1 | awk '/\/dev\/null/ {speed=$3 $4} END {gsub(/\(|\)/,"",speed); print speed}' ) echo "Download speed from Softlayer, Washington, DC: $slwdc " io=$( ( dd if=/dev/zero of=test_$$ bs=64k count=16k conv=fdatasync && rm -f test_$$ ) 2>&1 | awk -F, '{io=$NF} END { print io}' ) echo "I/O speed : $io"
Zabbix分布式监控平台安装部署
http://www.svipc.com/thread-451-1-1.html
http://www.jfedu.net/thread-1718-1-1.html
http://oceanszf.blog.51cto.com/6268931/1619671
http://www.jfedu.net/thread-82-1-1.html http://oceanszf.blog.51cto.com/6268931/1533687
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位、解决存在的各种问题。
安装zabbix之前需要LAMP架构,为了快速上手,我们这里采用yum安装LAMP,如果你想尝试,也可以使用源码版LAMP,效果是一样,都是为了解析zabbix php代码。执行如下命令安装LAMP环境:
yum install httpd httpd-devel php php-mbstring php-bcmath php-gd php-xml php-devel gd gd-devel mysql mysql-server mysql-devel php-mysql -y
1、实战环境:
Server端:192.168.149.128
Agent端:192.168.149.129
2、下载zabbix版本:
wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz/download
3、在server端和agent执行:
yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI libssh2-devel
groupadd zabbix
useradd -g zabbix -M -s /sbin/nologin zabbix
4、Server端如下配置:
初始化MySQL,/etc/init.d/mysqld restart ;
进入mysql �Curoot -p,创建zabbix数据库,执行授权命令:
create database zabbix;
grant all on zabbix.* to zabbix@localhost identified by '123456';
然后解压zabbix并导入数据到zabbix数据库。
tar zxvf zabbix-2.0.6.tar.gz
cd zabbix-2.0.6
mysql -uzabbix -p123456 zabbix <database/mysql/schema.sql
mysql -uzabbix -p123456 zabbix <database/mysql/images.sql
mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
同时导入数据库完毕后,在zabbix-2.0.6源码解压目录执行编译zabbix,命令如下:
./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql
--enable-ipv6 --with-net-snmp --with-libcurl --with-ssh2 --enable-java
make install
ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/
安装完毕,进入/usr/local/zabbix/etc/下,如下图:
执行如下命令,zabbix_server.conf内容:
grep -v "^#" zabbix_server.conf|grep -v ^$ 内容修改为如下:
LogFile=/tmp/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/var/lib/mysql/mysql.sock
同时拷贝zabbix_server脚本,启动zabbix_server, 默认端口为10051
cd zabbix-2.0.6
cp misc/init.d/tru64/zabbix_server /etc/init.d/zabbix_server
chmod o+x /etc/init.d/zabbix_server
配置Apache发布zabbix php代码,方法如下:
cp -a /root/zabbix-2.0.6/frontends/php/* /var/www/html/zabbix/
sed -i '/date.timezone/i date.timezone = Asia/Shanghai' /etc/php.ini
sed -i '/post_max_size/s/8/16/g;/max_execution_time/s/30/300/g;/max_input_time/s/60/300/g;' /etc/php.ini
5、Agent客户端如下配置:
解压zabbix-2.0.6.tar.gz源码,解压目录执行编译zabbix,命令如下:
./configure --prefix=/usr/local/zabbix --enable-agent
make install
ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/
执行如下命令,zabbix_agentd.conf内容:
PidFile=/tmp/zabbix_agentd.pid ###zabbix agent的pid文件
LogFile=/tmp/zabbix_agentd.log ###zabbix agent被监控端的日志文件
Server=192.168.149.128 ##zabbix server的ip地址
ServerActive=192.168.149.128:10051 ##zabbix server的ip地址加上zabbix server监听端口号10051
Hostname=192.168.149.129 zabbix agent被监控端的ip地址或者hostname
Timeout=20 ###zabbix server和agent端超时时间,默认为3s
UnsafeUserParameters=1 ##开启自定义,默认为0,不开启自定义
同时拷贝zabbix_agentd脚本, 在被监控的机器上运行zabbix_agentd,默认端口为10050
cd zabbix-2.0.6
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd
chmod o+x /etc/init.d/zabbix_agentd
chkconfig --add zabbix_agentd出现下面报错
“service nginx does not support chkconfig”
解决方法:
如果想添加脚本用service启动,必须要脚本里面包含这2行:
# chkconfig: - 85 15
# description: nginx is a World Wide monitor server. It is used to serve
6、启动所有服务安装zabbix:
重启服务端zabbix_server:
/etc/init.d/zabbix_server restart
/etc/init.d/httpd restart
/etc/init.d/mysqld restart 即可。
重启客户端zabbix_agentd:
/etc/init.d/zabbix_agentd restart
添加防火墙规则并重启防火墙
-I INPUT -p tcp --dport 10050:10051 -j ACCEPT
-I INPUT -p udp --dport 10050:10051 -j ACCEPT
7、浏览器访问zabbix:
通过浏览器http://192.168.149.128/zabbix 就可以访问zabbix了.
点击下一步,如果出现相关红色,使用yum进行安装即可
然后如下图,在/var/www/htm/conf下,执行如下命令:
cd /var/www/html/conf/
cp zabbix.conf.php.example zabbix.conf.php
sed -i 's/zabbix_password/123456/g' zabbix.conf.php
同时修改配置文件内容如下:
然后点击retry重试,如下图显示OK。
然后登陆,默认用户名和密码:Admin/zabbix
8、添加zabbix客户端:
添加客户端之前,需要执行第五步操作,配置zabbix_agentd.conf,把server改成服务端IP或者主机名hostname,但是使用hostname时候,需要在server监控端和被监控端agent里面/etc/hosts做相应的解析才可以成功。
第一步选择-configuration―hosts---add---输入IP和agent ip和端口,同时选择添加templates模板―选择add―勾选Template OS Linux即可。
windows客户端上安装zabbix agent
说明:在Windows_x64系统环境下安装Zabbix客户端。
一、手动安装方式
1、程序
安装程序依然使用同一个软件包zabbix-2.2.5.tar.gz
官方下载主页:
http://www.zabbix.com/download.php
这里我们下载和服务端一样的版本:
http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.5/zabbix-2.2.5.tar.gz
解压缩后将zabbix-2.2.5\bin\win64\
{zabbix_agentd.exe,zabbix_get.exe,zabbix_sender.exe}三个程序复制到C:\zabbix\目录里。
2、配置
将abbix-2.2.5\conf\zabbix_agentd.win.conf放到C:\zabbix\中并重命名为zabbix_agentd.conf
修改配置文件zabbix_agentd.conf:
Server=10.188.1.103 Hostname=ywzhou-PC ListenIP=10.188.1.172 LogFile=c:\zabbix\zabbix_agentd.log EnableRemoteCommands=1 UnsafeUserParameters=1 UserParameter=tcpportlisten,c:\zabbix\discovertcpport.bat UserParameter=servicestate,c:\zabbix\discoverservice.bat
说明:Server设置服务端IP,Hostname和ListenIP设置客户端名称和IP;
最下面两个是自定义的自动监听端口和服务的脚本,详见以下链接:
http://ywzhou.blog.51cto.com/2785388/1579936
http://ywzhou.blog.51cto.com/2785388/1579973
3、安装
c:\zabbix>zabbix_agentd.exe --install -c "c:\zabbix\zabbix_agentd.conf" zabbix_agentd.exe [6387]: service [Zabbix Agent] installed successfully zabbix_agentd.exe [6387]: event source [Zabbix Agent] installed successfully c:\zabbix>zabbix_agentd.exe --start -c "c:\zabbix\zabbix_agentd.co zabbix_agentd.exe [7260]: service [Zabbix Agent] started successfully
说明:需要以管理员身份运行CMD,否则会报以下错误:
zabbix_agentd.exe [2912]: ERROR: cannot connect to Service Manager
4、检查
检查zabbix server服务是否启动:
防火墙添加入站规则:
高级安全windows防火墙--入站规则--新建入站规则--端口--TCP特定本地端口10050--下一步--下一步--名称zabbix--完成
二、自动安装方式
1、编写自动安装脚本
新建C:\zabbix\zabbix_agent_install_for_windows.bat,右键点击文件选择编辑:
@echo off for /f "tokens=2 delims=:" %%b in ('ipconfig^|find /i "ip"^|find /i "ipv4"^|find /i "10.188.1."') do set fsip=%%b Set fsip=%fsip: =% echo Modiy config echo ListenIP=%fsip% >> C:\zabbix\zabbix_agentd.conf echo Hostname=%COMPUTERNAME% >> C:\zabbix\zabbix_agentd.conf echo Copy start file mkdir C:\zabbix\bin if exist %windir%\SysWOW64 (set system_bit=64) else set system_bit=32 if %system_bit% EQU 64 copy /y C:\zabbix\win64 C:\zabbix\bin\ if %system_bit% EQU 32 copy /y C:\zabbix\win32 C:\zabbix\bin\ echo install zabbix service net stop "Zabbix Agent" sc delete "Zabbix Agent" C:\zabbix\bin\zabbix_agentd.exe -i -c C:\zabbix\zabbix_agentd.conf echo start zabbix service net start "Zabbix Agent" echo set zabbix service auto sc config "Zabbix Agent" start= auto echo open firewall for zabbix netsh advfirewall firewall add rule name="Zabbix" dir=in program="c:\zabbix\bin\zabbix_agentd.exe" action=allow pause
脚本解释:
首先会搜索网卡IP,找到10.188.1.开头的,将IP和计算机名插入到配置文件中;
然后创建文件夹c:\zabbix\bin,通过条件判断语句自动根据系统位数将相应的程序复制到bin中;
之后停止zabbix agent服务并删除此服务,这是为了防止已经安装过此服务,方便重装用;
再然后zabbix_agentd.exe -i进行安装、net start启动、并设为自动启动了;
最后就是添加防火墙规则了,pause暂停以便管理员观察安装过程。
2、创建配置文件
新建配置文件c:\zabbix\zabbix_agentd.conf,内容如下:
LogFile=c:\zabbix\zabbix_agentd.log Server=10.188.1.103 EnableRemoteCommands=1 UnsafeUserParameters=1 UserParameter=tcpportlisten,c:\zabbix\discovertcpport.bat UserParameter=servicestate,c:\zabbix\discoverservice.bat
说明:这里只指定了服务端IP,客户端的Hostname和ListenIP将通过安装脚本自动添加。
3、Zabbix文件夹目录
说明:将下载的软件包zabbix-2.2.5.tar.gz解压,将zabbix-2.2.5\bin中的win32和win64两个文件夹复制到c:\zabbix\中;
整个zabbix目录文件如下,备份好一份,需要给客户端安装时,复制zabbix文件夹过去,双击安装脚本即可:
4、执行安装配置
双击zabbix_agent_install_for_windows.bat文件执行自动安装:
5、检查结果
如果执行多次,会在配置文件中重复插入配置信息,将多余的删除:
查看服务:
查看防火墙规则,自动生成的,跟手动安装方式不一样。
结论:自动安装非常方便快捷,需要对CMD命令有一定的了解,整个过程需要注意的是IP地址根据你的网络环境来修改。
http://ywzhou.blog.51cto.com/2785388/1579165
http://qicheng0211.blog.51cto.com/3958621/1650789
常见问题如下:
1. PHP中缺少php-bcmath
解决方法1:yum -y install php-bcmath
方法二:bcmath这个扩展在php的压缩包中都是有的,需要重新编译一下才能够支持;
cd php-5.2.7/ext/bcmath
/usr/local/php5/bin/phpize
./configure --with-php-config=/usr/local/php5/bin/php-config
make && make install (make 可以得到so路径)
so路径拷贝到 extension路径
vim php.ini
extension=bcmath.so
重启apache服务
2.# cat /tmp/zabbix_server.log
17376:20121025:143052.725 cannot send list of active checks to [127.0.0.1]: host [station3.example.com] not found
是因为zabbix_agentd.conf未设置IP:Port
# vim /etc/zabbix/zabbix_agentd.conf
ServerActive=192.168.1.3:10051 这里指向监控端的IP地址
3. zabbix_agentd [28720]: Is this process already running? Could not lock PID file [/var/log/zabbix_agentd.pid]: [11] Resource temporarily unavailable
重启不成功,当然不能加载修改过的配置文件,把pid文件放在/tmp/zabbix_agentd.pid下面,重启zabbix,问题解决。
网上方法: zabbix_agentd.conf中有个Timeout配置的,默认为3秒,可以修改为Timeout=20
4、断电导致zabbix数据库表出错
query failed: [145] Table './zabbix/history' is marked as crashed and should be repaired [insert into history
处理方法:
myisamchk -c -r /usr/local/mysql5173/data/zabbix/*.MYI ##修复数据库即可,如果是单个表问题也可以用phpmyadmin来修复。
5. 当zabbix的server端在进行重启zabbix_agentd时候查看zabbix_agentd.log时候发现下面错误日志
16795:20130325:144550.580 listener failed: zbx_tcp_listen() fatal error: unable to serve on any address [[-]:10050]
解决方法:
修改/usr/local/zabbix/etc/zabbix_agentd.conf文件如下
PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
Server=119.29.3.224 #zabbix的server端IP地址
ServerActive=119.29.3.224:10051
Hostname=115.159.3.225 #被监控端的IP地址 如果是zabbix的server端本身,就是119.29.3.224
6. zabbix的日志存放在/tmp下,服务器端对应的日志是zabbix_server.log,
被监控端对应的日志是zabbix_agentd.log
需要注意的是:每次修改完配置文件之后都需要重新启动对应的zabbix server或者zabbix agentd。
部分运行脚本在做restart时无法关闭zabbix导致服务无法重新启动,可用kill的命令把zabbix相关的进程杀掉再启动。
7. zabbix_server.log出现的提示
2009:20121023:193549.354 Sending list of active checks to [192.168.30.3] failed: host [CentOS-3] not found
这是因为zabbix_agentd.conf配置文件中的Hostname与web中添加的主机名应该相同.
8.网页中了出现 Get value from agent failed: cannot connect to [[192.168.30.2]:10050]: [111] Connection refused错误
192.168.30.2是我的zabbix server服务器,本身也有监控自己本身的agent功能。出现这种错误是因为忘记在zabbix服务器开启zabbix_agentd
解决方法:开启zabbix_agentd即可。
10.网页中出现Get value from agent failed: cannot connect to [[192.168.30.3]:10050]: [113] No route to host。与网络连接有关。
排除的方法如下:
a)查看192.168.30.3这台机器是否已开机
b)在zabbix server端向这台机器ping,看网络是否通
c)用telnet 登录10050和10051端口,看该主机是否允许这两个端口通讯
d)查看iptables防火墙规则是否拦截10050、10051端口
11.网页中不停地有以下红色提示:
zabbix server is not running: the information displayed may not be current.
查看/tmp/zabbix_server.log和/tmp/zabbix_agent.log无任何异常。看zabbix_server和zabbix_agent进程、端口都正常。
解决方法:
1.zabbix受selinux的影响
查看selinux产生的log,确实有错误提示:
#tail -f /var/log/audit/audit.log
type=AVC msg=audit(1351863204.990:32): avc: denied { name_connect } for pid=1575 comm="httpd" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket
type=SYSCALL msg=audit(1351863204.990:32): arch=40000003 syscall=102 success=no exit=-13 a0=3 a1=bfd494b0 a2=b76b0ad8 a3=d items=0 ppid=1434 pid=1575 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)
然后让selinux允许它通过
setsebool -P httpd_can_network_connect on 或者将selinux设置为disabled
2.修改hostname为IP的做法
编辑zabbix.conf.php文件,把$ZBX_SERVER的值改为本机的IP地址
$ZBX_SERVER = '192.168.30.2'; #######用IP代替hostname
12.用户自定义的脚本运行的时间可能比较长,如超过10秒的20秒的。这时在执行zabbix_agentd -p 或者zabbix_agentd -t时就可能出现“Alarm clock”,从而得不到想要的结果。这是因为zabbix agentd配置文件中定义Timeout时间默认为3秒,脚本运行取结果的时间超过了3秒就会出现这种情况。
解决方法:
编辑配置文件/etc/zabbix/zabbix_agentd.conf,找到"Timeout"把它定义为30秒或小于30秒。
对用户自定义脚本运行时间长的情况还需要注意对zabbix服务器端的配置,如我自己定义的脚本
UserParameter=ping.avgtime,ping 192.168.30.2 -c 10 -w 29 |grep 'avg' |awk -F "/" '{print $5}'
对192.168.30.2 ping 10取平均值,-w参数是对ping限定时间为29秒
这个脚本运行的大概时间为10秒左右,此时在agent端虽然可以用zabbix_agentd -t得到结果,但是在zabbix服务器端日志会不断的出现
1762:20121023:191941.360 resuming Zabbix agent checks on host [Zabbix server]: connection restored
1761:20121023:191952.149 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: first network error, wait for 15 seconds
1762:20121023:192010.610 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: another network error, wait for 15 seconds
1762:20121023:192028.628 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: another network error, wait for 15 seconds
这样的错误日志,并且在web端也没有画出图来。
解决方法:
①编辑zabbix服务器端的配置文件/etc/zabbix/zabbix_server.conf找到"Timeout"把它定义为30秒或小于30秒。
②如果还有类似提示则应该是zabbix服务器的内存设置得太小了,加大服务器内存便可。
13.在zabbix_agentd.conf里添加了一条监控项:
UserParameter=router_est,netstat -lantup|grep router|grep -c EST
重启代理进程后,发现监控里的值为0,看了下日志发现不停地输出如下的log:
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
原因:权限问题,zabbix_agentd是zabbix用户启动的,默认不能执行netstat -p等命令,导致从服务器取到的自动发现脚本为空 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all
解决方法 :
chmod +s /bin/netstat
14. zabbix报下面错误
Can't allocate shared memory of size 29361092 [Invalid argument]
解决方法:
vim /etc/sysctl.conf
修改下面参数
kernel.shmmax = 536870912
sysctl -p 使修改生效。重启zabbix,就可以正常工作
15. Zabbix-agent报[8576]:ERROR:cannot connect to Service Manager:[0x00000005]
刚开如一直没有找到错误的原因,后来发现是安装时没有用administrator造成的,后来用administrator权限去安装,问题解决.
zabbix_get是一个用来与zabbix agent通信并从zabbix agent获取所需信息的程序。
/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"
-s --host <host name or IP> 指定主机的域名或ip地址,推荐使用ip地址
-p --port <port number> 指定该主机的agent端口,默认是10050
-I --source-address <IP address> 指定源ip地址(从哪执行这个命令),默认是本机
-k --key <item key> 指定想要获取数据的监控项关键字
-h --help 获得本帮助
-V --version 打印出版本信息
zabbix_get在Windows上以类似下列方式运行
zabbix_get.exe [options]