首頁  >  文章  >  資料庫  >  日均百万PV架构第四弹(分布式监控)_MySQL

日均百万PV架构第四弹(分布式监控)_MySQL

WBOY
WBOY原創
2016-06-01 13:13:461413瀏覽

应该能更早出的第四弹,被虚拟机错误搅乱,迟迟没有上线,不得已将所有

节点用puppet完成上线,稍后整理第五弹(非你不可自动化)也即将上线 : )

wKiom1N4mKWiPepeAAF1cIW1BPs388.jpg

zabbix简介
   zabbix是基于Php的开源监控软件
   基于多重数据采集 SNMP , Agent , Ping , Port
   多重告警通知 Mail , Jabber , SMS
   可以完成多种操作平台甚至于设备(route,switch,io)的监控工作
   易于定制重用(模板机制,函数),甚至于二次开发
   告警及时几乎无延迟
   它与cacti最大的不同之处在于它还提供一个分布式企业监控解决方案

zabbix组成
   zabbix-server 主要完成监控数据的存储与分析告警
   zabbix-proxy 分布式环境重要一环,提server完成的数据存储压力
   zabbix-agent 数据采集重要节点
   zabbix-web 数据展示与监控配置
   这些节点便完成了自动化监控中: 数据采集 , 数据存储 , 数据展示 , 分析告警

zabbix组件关系示意

wKioL1N4mJWTwJQrAAF31fzdbT0477.jpg

规划如下

server.king.com 172.16.43.6  192.168.43.6

       zabbix-server , zabbix-web , php , httpd , mysql

proxy.king.com 172.16.43.5

       zabbix-proxy , mysql

slave1-4.king.com 172.16.43.1-4

配置过程如下

1 配置安装zabbix-server(172.16.43.6)

i)准备如下文件zabbix-2.0.8-3.el6.x86_64.rpmzabbix-get-2.0.8-3.el6.x86_64.rpmzabbix-server-2.0.8-3.el6.x86_64.rpmzabbix-server-mysql-2.0.8-3.el6.x86_64.rpmzabbix-web-2.0.8-3.el6.noarch.rpmzabbix-web-mysql-2.0.8-3.el6.noarch.rpmmariadb-10.0.10-linux-x86_64.tar.gz(安装过程参见)php-5.4.26.tar.bz2(安装过程参见)httpd-2.2(系统自带)##ii)安装配置yum -y install *.rpm# 创建zabbix数据库及账号mysql -e "create database zabbix;"mysql -e "grant all on *.* to 'zabbix'@'172.16.%.%' identified by 'zabbix';"mysql -e "flush privileges;"# 导入zabbix web所需表mysql -h172.16.43.6 -uzabbix -p -D zabbix <p># 查看10051端口是否开启</p><p><img src="http://img.bitscn.com/upimg/allimg/c140719/1405KI3Y21Z-93U8.jpg" title="2.png" alt="wKiom1N4mbqyEnxKAAopgQpwTYI698.jpg"></p><p># 浏览器访问配置</p><p>http://172.16.43.6/zabbix</p><p><img src="http://img.bitscn.com/upimg/allimg/c140719/1405KI3940620-103040.jpg" title="3.png" alt="wKiom1N4mdPCpyCnAAxjGdI64ks946.jpg"></p><p>2 代理服务器安装配置(172.16.43.5)</p><pre class="brush:php;toolbar:false">i) 准备如下文件zabbix-2.0.8-3.el6.x86_64.rpmzabbix-proxy-2.0.8-3.el6.x86_64.rpmzabbix-proxy-mysql-2.0.8-3.el6.x86_64.rpmmariadb-10.0.10-linux-x86_64.tar.gz(安装过程参见)##ii) 安装配置yum -y install *.rpm# 创建zabbix数据库及账号mysql -e "create database zabbixproxy;"mysql -e "grant all on *.* to 'zabbixproxy'@'172.16.%.%' identified by 'zabbixproxy';"mysql -e "flush privileges;"# 导入zabbix web所需表mysql -h172.16.43.5 -uroot -p -D zabbixproxy <p># 查看10051端口是否开启</p><p><img src="http://img.bitscn.com/upimg/allimg/c140719/1405KI3a3440-11YW.jpg" title="4.png" alt="wKioL1N4mffgnlebAAn8w8HKIOM463.jpg"></p><p>3 客户端配置(172.16.43.1 - 172.16.43.4)</p><pre class="brush:php;toolbar:false">i) 准备如下文件zabbix-2.0.8-3.el6.x86_64.rpmzabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-sender-2.0.8-3.el6.x86_64.rpm##ii) 安装配置yum -y install zabbix-2.0.8-3.el6.x86_64.rpm zabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-sender-2.0.8-3.el6.x86_64.rpm# 编辑配置文件vim /etc/zabbix/zabbix_agentd.confServer=172.16.43.5 (#86)ServerActive=172.16.43.5 (#127)Hostname=slave4.king.com (#138)# 启动zabbix-agent服务service zabbix-agent start

# 查看10050端口是否开启

4. 配置自动发现规则将客户端添加至监控体系

# 配置代理服务器

Administration -> DM -> Create Proxy (均指在WebGui下菜单栏路径)

wKiom1N4mp7g8iSoAAEOhZt7uyQ370.jpg

# 配置自动发现规则

Configuration -> Discovery -> Create discovery rule ->

wKioL1N4mqvCxrsmAAGS4mwglAI194.jpg

# 配置发现后的动作

Configuration -> Actions -> Create action -> Event source(Discovery) ->

wKioL1N4msjCQ-LVAAHLAK7rMVw909.jpg

wKiom1N4mvTCMDMOAAIH0sbkzRg341.jpg

wKioL1N4msmjtfC2AAEPU3qz59U014.jpg

# 配置完毕重启zabbix-proxy等待即可

wKiom1N4nT-jrNHbAAbR5CNqfPU505.jpg

wKioL1N4nRTQdR9AAAOVWq_jCZc624.jpg

5. 使用基本规则完成对cpu,io,net参数的监控

# zabbix内置了很多模板,我们可以使用来完成第5项的监控

# 改动刚才Actions除了发现主机将主机添加至监控列表外,额外定义link to templates即可

# 可以选择 Template OS Linux

# 这样发现之后的主机便可以完成对cpu,io,net的基本监控

wKioL1N4nTjCjTpSAAJxRuf7vwc822.jpg

# 最后我们还可以定义自动移除规则

Configuration -> Actions -> Create action -> Event source(Discovery) ->

wKiom1N4nYGDlENiAAHlSxqaTQI873.jpg

6. 使用自定义函数完成对 nginx , varnish , mysql等服务的监控

# zabbix已经对mysql的自定义参数做出了范例,我们可以进行访问来完成对更多服务的监控vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf## 监控nginx的连接活动数,访问数,处理个数vim /etc/zabbix/zabbix_agentd.d/nginx.confUserParameter=Nginx.active[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^Active/ {print $NF}'UserParameter=Nginx.accepted[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ /t]+[0-9]+[ /t]+[0-9]+[ /t]+[0-9]+/ {print $$1}'UserParameter=Nginx.handled[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ /t]+[0-9]+[ /t]+[0-9]+[ /t]+[0-9]+/ {print $$2}'## 监控varnish的连接数,命中数,命中率vim /etc/zabbix/zabbix_agentd.d/varnish.confUserParameter=varnish.conn,/usr/bin/varnishstat -1 | grep "client_conn" | awk '{print $2}' UserParameter=varnish.hit,/usr/bin/varnishstat -1 | grep "cache_hit" | awk '{print $2}'#

# 定义好后可以将自动key添加到item,

wKiom1N4niHQYcG_AASSTFhtx6I752.jpg

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn