centos jabber(centos-7)
zabbix无法连接Mysql怎么破
zabbixCS结构监控系统前直没整理安装:安装几都要重新看目前Zabbix配置安装进行整理Zabbix配置需要web、php、mysql、gcc等支持请自行配置接我始操作操作范例操作系统Centos5.2tarzxvfzabbix-1.6.2.tar.gzmysql-uroot-pmysql>createdatabaseszabbix;mysql>GRANTALLPRIVILEGESONzabbix.*TOzabbix@localhostIDENTIFIEDBY‘zabbix’WITHGRANTOPTION;mysql>usezabbix;mysql>source/usr/local/src/zabbix-1.6.2/create/schema/mysql.sqlmysql>source/usr/local/src/zabbix-1.6.2/create/data/data.sqlmysql>source/usr/local/src/zabbix-1.6.2/create/data/images_mysql.sqlcdzabbix-1.6.2./configure–prefix=/usr/local/zabbix/\//指定安装目录–enable-server\//安装server监控节点需要–enable-agent\//安装agent–with-mysql\//需要mysql支持需要指定目录–with-net-snmp//需要snmp支持需要指定目录用编译选项需要更看帮助–enable-staticBuildstaticallylinkedbinaries–enable-serverTurnonbuildofserver–enable-proxyTurnonbuildofproxyserver–enable-agentTurnonbuildofagent–enable-ipv6TurnonsupportofIPv6–with-mysql–with-oracle–with-pgsql–with-sqlite3–with-jabber–with-net-snmp–with-ucd-snmpZabbix配置客户端需执行:./configure–prefix=/usr/local/zabbix–enable-agentmake&&makeinstallZabbix配置安装程没报错基本OK接增加应端口:vi/etc/services加入zabbix_agent10050/tcp#zabbixagentzabbix_agent10050/udp#zabbixagentzabbix_trapper10051/tcp#zabbixtrapperzabbix_trapper10051/udp#zabbixtrapper复制配置文件服务启脚本cp-rfmisc/conf/opt/app/zabbix/etc-Rmisc/init.d/选择自合适自环境启脚本或者自写添加zabbix用户useraddzabbix用脚本启zabbix_serverzabbix_agentd[root@zabbix~]#ll/usr/local/zabbix/sbin/total2344-rwxr-xr-x1rootroot362581Apr1622:55zabbix_agent-rwxr-xr-x1rootroot425336Apr1622:55zabbix_agentd-rwxr-xr-x1rootroot136854Apr1622:55zabbix_get-rwxr-xr-x1rootroot163086Apr1622:55zabbix_sender-rwxr-xr-x1rootroot1284665Apr1622:55zabbix_serverZabbix配置zabbix编译目录:配置文件:mkdir/etc/zabbixcpmisc/conf/*/etc/zabbix/vifrontends/php/include/db.inc.php更改数据库相关内容:$DB_TYPE="MYSQL";$DB_SERVER="localhost";$DB_DATABASE="zabbix";$DB_USER="zabbix";$DB_PWD="zabbix";cp-rffrontends/php/var/patible)OkImageformats:PNGOkPHPTimezone:Asia/Shanghai注:gd-devel没安装web端安装应其要安装比net-snmp通yum安装便[root@zabbix~]#rpm-qa|grepgdgd-devel-2.0.33-9.4.el5_1.1gd-2.0.33-9.4.el5_1.1安装php-bcmathyum-yinstallphp-bcmath修改区Vi/etc/php.inidate.timezone=Asia/Shanghai何安装Zabbix介绍
如何生成每秒百万级别的 http 请求
在进行负责测试时要牢记一件重要的事:你能在 Linux上建立多少个 socket连接。这个**是硬编码在内核里的,最典型的就是临时 W端口的**。(在某种程度上)你可以在/etc/sysctl.conf里扩展它。但是基本上,一台 Linux机器只能同时打开大约 64,000个 socket。因此在负载测试时,我们不得不通过在单一的连接上尽可能多地发出请求来充分利用 socket。除此之外,我们还需要不止一台的机器来产生负载。否则,负载生成器会把可用的 socket占用导致不能产生足够的负载。
我一开始用的是‘ab’,Apache Bench。它是我所知道的 http基准测试工具中最简单、最通用的。并且它是 Apache附带的产品,因此它可能已经存在于你的系统中。不幸的是,我在使用它的时候每秒大约只能生成 900个请求。虽然我见过其他人使用它每秒能达到 2,000个请求,但我可以立即告诉你,‘ab’并不适合我们的基准测试。
Httperf
接着,我尝试了‘httperf’。这个工具更强大,但是它依然相对简单并且功能有限。要算出每秒生产了多少个请求并不是仅传递参数那么简单。经过我的多次尝试,获取了每秒超过几百请求的结果。例如:
它以每秒 1,000个的速率创建了 100,000个会话(session)。每次会话发起 5次请求,时间间隔为 2秒。
httperf--hog--server=192.168.122.10--wsess=100000,5,2--rate 1000--timeout 5
Total: connections 117557 requests 219121 replies 116697 test-duration 111.423 s
Connection rate: 1055.0 conn/s(0.9 ms/conn,<=1022 concurrent connections)
Connection time [ms]: min 0.3 avg 865.9 max 7912.5 median 459.5 stddev 993.1
Connection time [ms]: connect 31.1
Connection length [replies/conn]: 1.000
Request rate: 1966.6 req/s(0.5 ms/req)
Request size [B]: 91.0
Reply rate [replies/s]: min 59.4 avg 1060.3 max 1639.7 stddev 475.2(22 samples)
Reply time [ms]: response 56.3 transfer 0.0
Reply size [B]: header 267.0 content 18.0 footer 0.0(total 285.0)
Reply status: 1xx=0 2xx=116697 3xx=0 4xx=0 5xx=0
CPU time [s]: user 9.68 system 101.72(user 8.7% system 91.3% total 100.0%)
Net I/O: 467.5 KB/s(3.8*10^6 bps)
最终,我使用这些设置达到了每秒 6,622个连接:
httperf--hog--server 192.168.122.10--num-conn 100000--ra 20000--timeout 5
(总共创建了 100,000个连接,并且以每秒 20,000个连接的固定速率创建)
它还有一些潜在的优势,并且拥有比‘ab‘更多的特性。但它不是我要用在这个项目里的重量级工具。我需要的是能够支持分布式多负载测试节点的工具。因此,我的下一个尝试是:Jmeter。
Apache Jmeter
这是一个功能齐全的 web应用测试套件,它可以模拟真实用户的所有行为。你可以使用 Jmeter的代理去访问你的网站,进行点击、登陆、模仿用户可以做的所有行为。Jemeter会把这些行为记录下来作为测试用例。然后 Jmeter会反复执行这些动作来模拟你想要的用户数量。尽管配置 Jmeter比‘ab‘和’httperf‘复杂得多,但它是一个很有趣的工具!
根据我的测试,它每秒可以产生 14,000个请求!这绝对是一个好的进展。
我使用了 Googlle Code project上的一些插件,并且使用它们的“Stepping Threads”和“HTTP RAW”请求,最终每秒大约可以产生 30,000个请求!但这已经达到极限了,所以还要寻找另一个工具。这里有一个我之前的 Jmeter配置,希望可以帮助到其他人。虽然这个配置离完美相差甚远,但有时它可以满足你的要求。
Tsung:重型的(heavy-duty)、分布式的、多协议测试工具
它每秒基本可以产生 40,000个请求,这绝对是我们想要的工具。类似于 Jmeter,你可以把一些行为记录下来在测试时运行,并且可以测试大多数的协议。比如 SSL、HHTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP和 Jabber/XMPP。与 Jmeter不同的是,它没有让人感到迷茫的 GUI设置,它仅有一个 XML配置文件,和一些你选择的分布式节点的 SSH密钥。它的简洁和效率对我的吸引力,完全不亚于它的健壮性和可扩展性。我发现它是一个很强大的工具,在正确的配置下它可以每秒产生百万级的 HTTP请求。
除此之外,Tsung还可以在 html上产生图表以及输入你的测试的详细报告。测试的结果通俗易懂,并且你甚至可以把这些图片展示给你的 boss看!
在这个系列文章的剩余部分,我还会讲解这个工具。现在你可以继续浏览下面的配置说明,或者直接跳到下一页。
在 CentOS 6.2上安装 Tsung
首先,你要安装(Erlang需要的) EPEL源。因此,在进行下一步之前要把它安装好。安装完后,继续安装你用来产生负载的每个节点需要的包。如果你还没有在节点之间建立无密码 SSH密钥(passwordless SSH key),那么请建立之。
yum-y install erlang perl perl-RRD-**.noarch perl-Log-Log4perl-RRDs.noarch gnuplot perl-Template-Toolkit firefox
从 Github或者 Tsung的官网上下载最新的 Tsung。
wget
解压并且编译。
tar zxfv tsung-1.4.2.tar.gz
cd tsung-1.4.2
./configure&& make&& make install
把示例配置复制到~/.tsung目录里。这是 Tsung的配置文件和日志文件的存放地方。
cp/usr/share/doc/tsung/examples/http_**.xml/root/.tsung/tsung.xml
你可以根据你的需求去编辑这个配置文件,或者使用我的配置文件。经过大量的尝试以及失败后,我目前的配置文件在使用 7个分布式节点时可以每秒产生 5百万个 HTTP请求。
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM"/usr/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" version="1.0">
<clients>
<client host="localhost" weight="1" cpu="10" maxusers="40000">
<ip value="192.168.122.2"/>
</client>
<client host="loadnode1" weight="1" cpu="9" maxusers="40000">
<ip value="192.168.122.2"/>
</client>
<client host="loadnode2" weight="1" maxusers="40000" cpu="8">
<ip value="192.168.122.3"/>
</client>
<client host="loadnode3" weight="1" maxusers="40000" cpu="9">
<ip value="192.168.122.21"/>
</client>
<client host="loadnode4" weight="1" maxusers="40000" cpu="9">
<ip value="192.168.122.11"/>
</client>
<client host="loadnode5" weight="1" maxusers="40000" cpu="9">
<ip value="192.168.122.12"/>
</client>
<client host="loadnode6" weight="1" maxusers="40000" cpu="9">
<ip value="192.168.122.13"/>
</client>
<client host="loadnode7" weight="1" maxusers="40000" cpu="9">
<ip value="192.168.122.14"/>
</client>
</clients>
<servers>
<server host="192.168.122.10" port="80" type="tcp"/>
</servers>
<load>
<arrivalphase phase="1" duration="10" unit="minute">
<users maxnumber="15000" arrivalrate="8" unit="second"/>
</arrivalphase>
<arrivalphase phase="2" duration="10" unit="minute">
<users maxnumber="15000" arrivalrate="8" unit="second"/>
</arrivalphase>
<arrivalphase phase="3" duration="30" unit="minute">
<users maxnumber="20000" arrivalrate="3" unit="second"/>
</arrivalphase>
</load>
<sessions>
<session probability="100" name="ab" type="ts_http">
<for from="1" to="10000000" var="i">
<request><http url="/test.txt" method="GET" version="1.1"/></request>
</for>
</session>
</sessions>
</tsung>