1.1 Zabbix的概念
Zabbix是一款监控各类网络参数、服务器健康状况与整体性能的软件。Zabbix利用一套灵活的通知机制使系统管理员能够为任何可触发的事件配置例如基于邮件报警功能,这样有助于对服务器各种问题的快速响应。同时Zabbix还提供了非常优秀的数据报告功能与数据可视化特性,可以通过Zabbix web管理界面直接访问所有的Zabbix报告、数据统计、配置参数,这使得Zabbix成为企业生产规划的理想选择。
1.2 Zabbix架构
Zabbix环境是由多个主要软件搭建完成的,每个软件所提供的功能如下:
Server:Zabbix Server可以通过SNMP、Zabbix agent、ping、端口监视等方法提供对远程服务器/网络状态的监视、数据收集等功能,与Agent配合实现两种监视的方法:
- polling:Zabbix Server轮询Zabbix Agent主动接收监视数据
- trapping:Zabbix Server被动接受来自Zabbix Agent发送的数据
Database storage:所有Zabbix的配置信息以及获取的数据都存储在数据库中
Web Interface:通过Web管理接口,可以方便从任何地方管理Zabbix
Proxy:Zabbix Proxy可以替代ZabbixServer收集数据,是Zabbix环境的一种扩展方式,更为受益的是可以(实现地域性部署)减轻单一Zabbix Server的负载
Agent:Zabbix Agent安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存、CPU、服务等信息的收集,并报告给Zabbix Sever
1.3 Zabbix特点与功能
Zabbix的主要特点如下:
安装与配置简单,学习成本低
支持多语言
开源
自动发现服务器与网络设备
分布式监视及Web集中管理功能
可以无Agent监视
用户安全认证和柔软的授权方式
通过Web界面设置或查看监视结果
具有E-mail等报警功能
Zabbix主要功能如下:
CPU负荷
内存使用
磁盘使用
网络状况
端口监视
日志监视
1.4 Zabbix部署实施
从被监控服务器的规模、扩展性、维护性上来讲,Zabbix架构模型可供选择:
服务端 - 客户端(C/S)
服务端 - 代理端 - 客户端(Server -Proxy - Client)
这里先介绍第一种架构模型,及C/S。
实验环境如下:
主机名 IP地址 系统版本 服务器角色
server.test.com 192.168.100.19 CentOS 6.5 x86_64 ZabbixServer,集成LNMP架构
web.test.com 192.168.100.20 CentOS 6.5 x86_64 ZabbixAgent,提供httpd服务
mysql.test.com 192.168.100.21 CentOS 6.5 x86_64 ZabbixAgent,提供mysql服务
1.4.1 搭建LNMP环境
具体安装过程请查看文档"LNMP环境搭建(持续更新)"。
1.4.2 安装并初始化Zabbix Server
1. 安装设置Zabbix Server
创建zabbix用户及工作组,并安装相关依赖包:
[root@server src]# groupadd zabbix [root@server src]# useradd -g zabbix zabbix [root@server src]# yum install net-snmp-devel mysql-devel curl-devel
从官网http://www.zabbix.com/download.php下载zabbix源码包,目前最新版本是zabbix-2.2.5.tar.gz,下载解压后向MySQL数据库导入相关数据:
[root@server src]# tar zxf zabbix-2.2.5.tar.gz [root@server src]# cd zabbix-2.2.5 [root@server zabbix-2.2.5]# /usr/local/mysql/bin/mysql -u root -p Enter password: mysql> create database zabbixcharacter set utf8; mysql> grant all privileges onzabbix.* to 'zabbix'@'192.168.100.19' identified by 'zabbix'; mysql> flush privileges; mysql> use zabbix; mysql> source /usr/local/src/zabbix-2.2.5/database/mysql/schema.sql mysql> source /usr/local/src/zabbix-2.2.5/database/mysql/images.sql mysql> source /usr/local/src/zabbix-2.2.5/database/mysql/data.sql mysql> exit
编译安装zabbix,并设置zabbix_server与zabbix_agentd为开机自启,开启agent是为了监控本机:
[root@server zabbix-2.2.5]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql--with-net-snmp --with-libcurl --with-libxml2 [root@server zabbix-2.2.5]# make && make install [root@server zabbix-2.2.5]# cp misc/init.d/fedora/core5/zabbix_* /etc/init.d/ [root@server zabbix-2.2.5]# vi /etc/init.d/zabbix_server ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server" [root@server zabbix-2.2.5]# chkconfig --add zabbix_server [root@server zabbix-2.2.5]# chkconfig zabbix_server on [root@server zabbix-2.2.5]# vi /etc/init.d/zabbix_agentd ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd" [root@server zabbix-2.2.5]# chkconfig --add zabbix_agentd [root@server zabbix-2.2.5]# chkconfig zabbix_agentd on
设置Zabbix Server配置文件,并启动服务:
[root@server zabbix-2.2.5]# cd /usr/local/zabbix/etc [root@server etc]# cp zabbix_server.conf{,.bak} [root@server etc]# > zabbix_server.conf [root@server etc]# vi zabbix_server.conf ListenIP=192.168.100.19 ListenPort=10051 LogFile=/tmp/zabbix_server.log DBHost=192.168.100.19 DBName=zabbix DBUser=zabbix DBPassword=zabbix DBSocket=/tmp/mysql.sock DBPort=3306 [root@server etc]# mkdir /home/wwwroot/zabbix [root@server etc]# cp -a /usr/local/src/zabbix-2.2.5/frontends/php/* /home/wwwroot/zabbix/ [root@server etc]# chown -R www.www /home/wwwroot/zabbix/ [root@server etc]# /etc/init.d/zabbix_server start [root@server etc]# cp zabbix_agentd.conf{,.bak} [root@server etc]# > zabbix_agentd.conf [root@server etc]# vi zabbix_agentd.conf ListenIP=192.168.100.19 ListenPort=10050 LogFile=/tmp/zabbix_agentd.log Server=192.168.100.19 ServerActive=192.168.100.19 # 主动向zabbix server发送监控内容 Hostname=server.test.com # 需要能够解析域名,可以设置DNS或者直接添加到/etc/hosts文件中 [root@server etc]# /etc/init.d/zabbix_agentd start
2. 初始化Zabbix Server Web界面
访问网页http://192.168.100.19/zabbix/setup.php:
根据提示修改php.ini配置文件相关设置:
[root@server ~]# cd /usr/local/php/etc/ [root@server etc]# cp php.ini{,.bak} [root@server etc]# vi php.ini post_max_size = 16M max_execution_time = 300 max_input_time = 300 date.timezone = "Asia/Shanghai" [root@server etc]# /etc/init.d/php-fpm reload
排错:如果有如下错误,原因是zabbix网页目录属主问题,使用chown命令修改属主即可修复:
[root@server ~]# chown -R www.www /home/wwwroot/zabbix/
安装完毕后,即可登录Zabbix管理页面。zabbix默认用户名为admin,密码为zabbix:
看到的管理界面如下:
3. 激活本地监控
接下来需要开启对Zabbix Server的本地监控,点击"Configure" -> "Hosts",可以查看到当前本机的状态为"not monitored":
点击该状态"Enable host",此时机器状态变为"Monitored":
现在可通过点击相关标签来查看当前与本机相关的一些监控数据,稍后进行部分详解。