共计 11791 个字符,预计需要花费 30 分钟才能阅读完成。
前言
在日常运维工作中,难免会遇到这样或那样的故障,如何能在第一时间发现故障,并及时定位故障原因,保证业务不受影响,我想这应该是做好一个运维必须要掌握的技能。但人力不可能实时掌控系统的变化,于是监控系统应运而生,监控便是运维的眼睛,把监控和性能管理做好后,运维就是一件很轻松的事情。目前比较流行的开源监控工具有 Cacti、Nagios(Icinga)、Zabbix 等。本文带来的是 Zabbix 基于 Proxy 分布式部署实现 Web 监控。
Zabbix
简介
Zabbix 是一个基于 Web 界面提供分布式系统监视以及网络监视功能的企业级的开源解决方案。它能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位 / 解决存在的各种问题。
基本功能
数据采集方式:zabbix agent,agent(active),SNMP,SSH 等
数据存储方式:RDBMS,如 MySQL,Pgsql 等
数据展示方式:php,web,gui
报警功能:支持报警升级
组件及基础架构
Zabbix 主要由 zabbix server 和 zabbix agent 组成
server 端负责从 agent 端收集监控数据,并存储在数据库中,同时对数据进行分析展示,并触发相关报警
agent 端负责监控数据的采集,并发送给 server 端
数据采集方式除了在被监控主机上部署 agent 程序外,还可通过 ICMP/IPMI/SNMP 等协议对网络设备进行监控,同时配置 web 监控方式可以监控 web 页面的下载速率和响应时间等重要参数
Zabbix proxy 是在大规模分布式监控场景中,采用的一种用以分担 server 端压力的分层结构,Proxy 只负责一定区域内的数据采集工作,然后定期将数据一次性发送给 server,极大的减轻了 server 的负载压力,使得可以支持更大规模的监控需求
一些 Zabbix 相关教程集合:
Ubuntu 14.04 下 Zabbix2.4.5 源码编译安装 http://www.linuxidc.com/Linux/2015-05/117657.htm
安装部署分布式监控系统 Zabbix 2.06 http://www.linuxidc.com/Linux/2013-07/86942.htm
《安装部署分布式监控系统 Zabbix 2.06》http://www.linuxidc.com/Linux/2013-07/86942.htm
CentOS 6.3 下 Zabbix 安装部署 http://www.linuxidc.com/Linux/2013-05/83786.htm
Zabbix 分布式监控系统实践 http://www.linuxidc.com/Linux/2013-06/85758.htm
CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm
CentOS 6.3 下 Zabbix 监控 MySQL 数据库参数 http://www.linuxidc.com/Linux/2013-05/84800.htm
64 位 CentOS 6.2 下安装 Zabbix 2.0.6 http://www.linuxidc.com/Linux/2014-11/109541.htm
实现过程
实验拓扑
# 系统环境:CentOS6.6
#Zabbix Server 为 LAMP 环境
#Zabbix Proxy 需数据库支持
#Zabbix Server 与 Zabbix Proxy 需时间同步,全部节点已做同步
Zabbix Server 配置
快速构建 LAMP
[root@node4 ~]# yum install httpd mysql mysql-libs php php-mysql mysql-server php-bcmath
php-gd php-mbstring -y
安装 Zabbix Server 所需软件包
[root@node4 ~]# cd zabbix-2.4/
[root@scholar zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[root@node4 zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.e
l6.x86_64.rpm zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-se* zabbix-web-* -y
数据库准备
[root@node4 ~]# vim /etc/my.cnf
[mysqld]
default-character-set = utf8 #此项可确保 zabbix 中文界面不乱码
[root@node4 ~]# service mysqld start
Starting mysqld: [OK]
#授权
mysql> create database zabbix;
Query OK, 1 row affected (0.01 sec)
mysql> grant all on zabbix.* to 'zbuser'@localhost identified by 'zbpass';
Query OK, 0 rows affected (0.09 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#导入 zabbix 数据
[root@node4 ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create/
[root@node4 create]# mysql --default-character-set=utf8 zabbix < schema.sql
[root@node4 create]# mysql --default-character-set=utf8 zabbix < images.sql
[root@node4 create]# mysql --default-character-set=utf8 zabbix < data.sql
#--default-character-set=utf8 此项为防止中文乱码,不用中文则可忽略
配置 Zabbix Server
[root@node4 ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost # 指定数据库
DBName=zabbix # 数据库名
DBUser=zbuser # 数据库用户
DBPassword=zbpass # 数据库密码
# 其他参数根据实际需求修改即可
[root@node4 ~]# vim /etc/zabbix/zabbix_agentd.conf
# 配置本身 agent 用以监控自己
Server=127.0.0.1,172.16.10.126
ServerActive=127.0.0.1,172.16.10.126
Hostname=node4.scholar.com
[root@node4 ~]# vim /etc/php.ini #配置时区
date.timezone = Asia/Shanghai
[root@node4 ~]# service httpd restart
Stopping httpd: [OK ]
Starting httpd: [OK ]
[root@node4 ~]# service zabbix-server start
Starting Zabbix server: [OK ]
[root@node4 ~]# service zabbix-agent start
Starting Zabbix agent: [OK ]
开始安装
访问 http://172.16.10.126/zabbix
安装检测,如有错误,安装所需依赖包即可
填写数据库信息
Name 可自定义
Next-Next-Finish 即可完成安装
登陆界面如下,默认用户 admin,密码 zabbix
zabbix2.4 默认屏蔽了中文显示,设置显示中文
[root@node4 ~]# vim /usr/share/zabbix/include/locales.inc.php
# 将 false 改为 true
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => true),
# 为防止乱码用楷体替换默认字体
[root@node4 ~]# mv simkai.ttf /usr/share/zabbix/fonts/
[root@node4 ~]# vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'simkai');
define('ZBX_FONT_NAME', 'simkai');
[root@node4 ~]# service httpd restart
Stopping httpd: [OK ]
Starting httpd: [OK ]
修改语言
Zabbix Server 配置先到这里,接下来我们去配置 Proxy 和 Agent
Zabbix Proxy 配置
安装 Zabbix Proxy 所需软件包
[root@node3 ~]# cd zabbix-2.4/
[root@node3 zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[root@node3 zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-get-2.4.0-1.el6
.x86_64.rpm zabbix-proxy-* -y
数据库准备
#Proxy 端已有数据库
mysql> create database zabbix_proxy;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix_proxy.* to 'zbuser'@localhost identified by 'zbpass';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)
#导入数据
[root@node3 ~]# mysql zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-2.4.0/create/schema.sql
配置 Zabbix Proxy
[root@node3 ~]# vim /etc/zabbix/zabbix_proxy.conf
Server=172.16.10.126 # 指向 Zabbix Server
Hostname=node3.scholar.com # 主机名
DBHost=localhost # 指定数据库
DBName=zabbix_proxy # 数据库名
DBUser=zbuser # 数据库用户
DBPassword=zbpass # 数据库密码
ConfigFrequency=60 # 配置文件同步间隔
DataSenderFrequency=5 # 数据同步间隔
# 其他参数根据自己实际需求修改即可
[root@node3 ~]# service zabbix-proxy start
Starting Zabbix proxy: [OK ]
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-07/133094p2.htm
Zabbix Agent 配置
安装 Zabbix Agent 所需软件包
[root@node1 ~]# cd zabbix-2.4/
[root@node1 zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[root@node1 zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.e
l6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm -y
# 两个 Agent 端都执行此安装操作
配置 Zabbix Agent
[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.10.125 # 指向 proxy
ServerActive=172.16.10.125
Hostname=node1.scholar.com
[root@node1 ~]# service zabbix-agent start
Starting Zabbix agent: [OK ]
# 全部 Agent 节点都执行以上配置
添加监控
添加代理
添加监控主机,选择代理监控
添加模板
# 两台监控主机都执行以上添加操作
查看监控图表,验证是否被监控
已经可以获取监控主机的信息,Proxy 分布式监控部署成功
创建 web 监控
点击应用集(Applications), 创建应用集
点击 web 场景,自定义场景
创建相关步骤
# 两台需要监控的 web 主机都需创建
查看 web 状态
以上便是 Zabbix 基于 Proxy 分布式部署实现 Web 监控的简单过程,时间有限,就不往下继续具体完善了,有兴趣的朋友可以继续实现报警功能
The end
Zabbix 是一个很强大且开源的监控系统,于由本人水平有限,很多功能还有待了解,通过以上配置大概实现了基于 Proxy 的 Web 监控。有兴趣的朋友可继续完善,部署过程中遇到问题可留言交流。以上仅为个人学习整理,如有错漏,大神勿喷~~~
ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133094.htm
前言
在日常运维工作中,难免会遇到这样或那样的故障,如何能在第一时间发现故障,并及时定位故障原因,保证业务不受影响,我想这应该是做好一个运维必须要掌握的技能。但人力不可能实时掌控系统的变化,于是监控系统应运而生,监控便是运维的眼睛,把监控和性能管理做好后,运维就是一件很轻松的事情。目前比较流行的开源监控工具有 Cacti、Nagios(Icinga)、Zabbix 等。本文带来的是 Zabbix 基于 Proxy 分布式部署实现 Web 监控。
Zabbix
简介
Zabbix 是一个基于 Web 界面提供分布式系统监视以及网络监视功能的企业级的开源解决方案。它能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位 / 解决存在的各种问题。
基本功能
数据采集方式:zabbix agent,agent(active),SNMP,SSH 等
数据存储方式:RDBMS,如 MySQL,Pgsql 等
数据展示方式:php,web,gui
报警功能:支持报警升级
组件及基础架构
Zabbix 主要由 zabbix server 和 zabbix agent 组成
server 端负责从 agent 端收集监控数据,并存储在数据库中,同时对数据进行分析展示,并触发相关报警
agent 端负责监控数据的采集,并发送给 server 端
数据采集方式除了在被监控主机上部署 agent 程序外,还可通过 ICMP/IPMI/SNMP 等协议对网络设备进行监控,同时配置 web 监控方式可以监控 web 页面的下载速率和响应时间等重要参数
Zabbix proxy 是在大规模分布式监控场景中,采用的一种用以分担 server 端压力的分层结构,Proxy 只负责一定区域内的数据采集工作,然后定期将数据一次性发送给 server,极大的减轻了 server 的负载压力,使得可以支持更大规模的监控需求
一些 Zabbix 相关教程集合:
Ubuntu 14.04 下 Zabbix2.4.5 源码编译安装 http://www.linuxidc.com/Linux/2015-05/117657.htm
安装部署分布式监控系统 Zabbix 2.06 http://www.linuxidc.com/Linux/2013-07/86942.htm
《安装部署分布式监控系统 Zabbix 2.06》http://www.linuxidc.com/Linux/2013-07/86942.htm
CentOS 6.3 下 Zabbix 安装部署 http://www.linuxidc.com/Linux/2013-05/83786.htm
Zabbix 分布式监控系统实践 http://www.linuxidc.com/Linux/2013-06/85758.htm
CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm
CentOS 6.3 下 Zabbix 监控 MySQL 数据库参数 http://www.linuxidc.com/Linux/2013-05/84800.htm
64 位 CentOS 6.2 下安装 Zabbix 2.0.6 http://www.linuxidc.com/Linux/2014-11/109541.htm
实现过程
实验拓扑
# 系统环境:CentOS6.6
#Zabbix Server 为 LAMP 环境
#Zabbix Proxy 需数据库支持
#Zabbix Server 与 Zabbix Proxy 需时间同步,全部节点已做同步
Zabbix Server 配置
快速构建 LAMP
[root@node4 ~]# yum install httpd mysql mysql-libs php php-mysql mysql-server php-bcmath
php-gd php-mbstring -y
安装 Zabbix Server 所需软件包
[root@node4 ~]# cd zabbix-2.4/
[root@scholar zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[root@node4 zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.e
l6.x86_64.rpm zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-se* zabbix-web-* -y
数据库准备
[root@node4 ~]# vim /etc/my.cnf
[mysqld]
default-character-set = utf8 #此项可确保 zabbix 中文界面不乱码
[root@node4 ~]# service mysqld start
Starting mysqld: [OK]
#授权
mysql> create database zabbix;
Query OK, 1 row affected (0.01 sec)
mysql> grant all on zabbix.* to 'zbuser'@localhost identified by 'zbpass';
Query OK, 0 rows affected (0.09 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#导入 zabbix 数据
[root@node4 ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create/
[root@node4 create]# mysql --default-character-set=utf8 zabbix < schema.sql
[root@node4 create]# mysql --default-character-set=utf8 zabbix < images.sql
[root@node4 create]# mysql --default-character-set=utf8 zabbix < data.sql
#--default-character-set=utf8 此项为防止中文乱码,不用中文则可忽略
配置 Zabbix Server
[root@node4 ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost # 指定数据库
DBName=zabbix # 数据库名
DBUser=zbuser # 数据库用户
DBPassword=zbpass # 数据库密码
# 其他参数根据实际需求修改即可
[root@node4 ~]# vim /etc/zabbix/zabbix_agentd.conf
# 配置本身 agent 用以监控自己
Server=127.0.0.1,172.16.10.126
ServerActive=127.0.0.1,172.16.10.126
Hostname=node4.scholar.com
[root@node4 ~]# vim /etc/php.ini #配置时区
date.timezone = Asia/Shanghai
[root@node4 ~]# service httpd restart
Stopping httpd: [OK ]
Starting httpd: [OK ]
[root@node4 ~]# service zabbix-server start
Starting Zabbix server: [OK ]
[root@node4 ~]# service zabbix-agent start
Starting Zabbix agent: [OK ]
开始安装
访问 http://172.16.10.126/zabbix
安装检测,如有错误,安装所需依赖包即可
填写数据库信息
Name 可自定义
Next-Next-Finish 即可完成安装
登陆界面如下,默认用户 admin,密码 zabbix
zabbix2.4 默认屏蔽了中文显示,设置显示中文
[root@node4 ~]# vim /usr/share/zabbix/include/locales.inc.php
# 将 false 改为 true
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => true),
# 为防止乱码用楷体替换默认字体
[root@node4 ~]# mv simkai.ttf /usr/share/zabbix/fonts/
[root@node4 ~]# vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'simkai');
define('ZBX_FONT_NAME', 'simkai');
[root@node4 ~]# service httpd restart
Stopping httpd: [OK ]
Starting httpd: [OK ]
修改语言
Zabbix Server 配置先到这里,接下来我们去配置 Proxy 和 Agent
Zabbix Proxy 配置
安装 Zabbix Proxy 所需软件包
[root@node3 ~]# cd zabbix-2.4/
[root@node3 zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[root@node3 zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-get-2.4.0-1.el6
.x86_64.rpm zabbix-proxy-* -y
数据库准备
#Proxy 端已有数据库
mysql> create database zabbix_proxy;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix_proxy.* to 'zbuser'@localhost identified by 'zbpass';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)
#导入数据
[root@node3 ~]# mysql zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-2.4.0/create/schema.sql
配置 Zabbix Proxy
[root@node3 ~]# vim /etc/zabbix/zabbix_proxy.conf
Server=172.16.10.126 # 指向 Zabbix Server
Hostname=node3.scholar.com # 主机名
DBHost=localhost # 指定数据库
DBName=zabbix_proxy # 数据库名
DBUser=zbuser # 数据库用户
DBPassword=zbpass # 数据库密码
ConfigFrequency=60 # 配置文件同步间隔
DataSenderFrequency=5 # 数据同步间隔
# 其他参数根据自己实际需求修改即可
[root@node3 ~]# service zabbix-proxy start
Starting Zabbix proxy: [OK ]
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-07/133094p2.htm