1 Zabbix概述
1.1 什么是Zabbix
Zabbix由Alexei Vladishev编写,目前由Zabbix SIA积极开发和维护
Zabbix是一个企业级的开源分布式监控解决方案
Zabbix是一款用于监控众多服务器的健康情况、完整状态的软件,采用了灵活的预警通知机制,比如它允许用户设定通过email示警任何网络活动,从而使得服务器的问题能够被迅速反映出来
Zabbix具备出色的报告和数据可视化功能,所有的数据存储的在数据库中,这使得Zabbix具备很好的规划能力
Zabbix支持投票和陷阱(polling and trapping)。通过参数配置,所有Zabbix报告和统计资料都可以通过基于Web的前端访问到
通过正确的配置,您可以从任何地点评估您的服务器状态,这一点无论对于小企业还是大企业都是非常重要的
Zabbix是免费的,遵循GPL公共许可证第二版,这意味着其源代码是免费地分发提供给广大公众,并可以从Zabbix公司获得商业支持
1.2 Zabbix的功能
自动发现服务器和网络设备,分布式监控网络,集中式管理,支持polling和trapping机制,服务器端支持Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X系统,高性能本地代理(客户端软件支持Linux ,Solaris, HP-UX, AIX,Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000,Windows 2003, Windows XP, Windows Vista系统),无代理监控,有安全的用户认证功能,可灵活地分配用户权限,基于web的接口,可灵活地预定网络事件并使用邮件通知,高等级的资源监控,日志审计功能等...
1.3 Zabbix的优势
它是开源解决方案,提供类unix和win32平台的高效率代理,操作直观易于掌握,投入成本很低,配置简单,集中式监控管理,所有信息存储在关系型数据库中,高级别服务树,安装简便,支持snmp(v1和v2都支持),支持trapping和polling机制,可视化能力,支持多语言(包括中文) 等...
2 Zabbix Server的安装配置流程
2.1 LAMP/LNMP环境安装配置
LAMP/LNMP基础环境的安装和配置请参看我的其他博文(http://rolandqu.blog.51cto.com/3477736/d-3)
2.2 Zabbix Server安装
1. 首先从zabbix官方网站下载zabbix-1.8.14版(http://www.zabbix.com/download2.php):
2. 解压缩并进入zabbix源码目录:
- tar zxf zabbix-1.8.14.tar.gz
- cd zabbix-1.8.14
3. 创建zabbix用户和组:
- groupadd zabbix
4. 创建zabbix数据库:
- create database zabbix character set utf8;
5. 为zabbix用户授权
- grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
- grant all on zabbix.* to [email protected] identified by 'zabbix';
6. 导入zabbix表及数据
- mysql -uroot -p zabbix < create/schema/mysql.sql
- mysql -uroot -p zabbix < create/data/data.sql
- mysql -uroot -p zabbix < create/data/images_mysql.sql
7. Zabbix编译参数
- /configure –prefix=/usr/local/zabbix \
- --enable-server \
- --enable-proxy \
- --enable-agent \
- --with-mysql=/usr/local/mysql/bin/mysql_config
- --with-net-snmp
- --with-libcurl
8. 编译和安装
- make && make install
9. Zabbix编译参数说明
- --enable-server 安装 Zabbix Server
- --enable-proxy 安装 Zabbix Proxy
- --enable-agent 安装 Zabbix Agent
- --with-mysql 使用 mysql 做数据库服务器
- --with-net-snmp 支持 SNMP
- --with-libcurl 支持curl,用于web监控
2.3 Zabbix Server配置
1. 创建zabbix配置文件
- mkdir /etc/zabbix; mkdir /var/log/; chmod 777 –R /var/log/
- cp misc/conf/zabbix_server.conf /etc/zabbix/
- cp misc/conf/zabbix_proxy.conf /etc/zabbix/
- cp misc/conf/zabbix_agent.conf /etc/zabbix/
2. 修改zabbix server配置文件如下内容
- LogFile=/var/log/zabbix/zabbix_server.log
- PidFile=/var/log/zabbix/zabbix_server.pid
- DBName=zabbix
- DBUser=zabbix
- DBPassword=zabbix
- DBSocket=/tmp/mysql.sock //根据my.cnf配置进行修改
3. 安装zabbix启动脚本
- cp misc/init.d/redhat/zabbix_server_ctl /etc/init.d/zabbix_server
- chmod +x /etc/init.d/zabbix_server
4. 修改 zabbix_server 头部变量定义
- 在 #!/bin/bash 后添加
- # chkconfig: - 95 95
- # description: Zabbix Server
- 修改以下变量
- BASEDIR=/usr/local/zabbix
- PIDFILE=/var/log/zabbix/zabbix_server.pid
5. 建立zabbix log和pid目录
- mkdir -p /var/log/zabbix && chmod 777 /var/log/zabbix
6. 添加zabbix到服务并设置开机启动
- chkconfig --add zabbix_server
- chkconfig zabbix_server on
7. 启动zabbix server
- /etc/init.d/zabbix_server start
8. Zabbix Server启动后进程如下图
2.4 Zabbix WEB页面配置
1. 复制zabbix页面文件
- cp -fr zabbix-1.8.14/frontends/php/* /date/website/htdocs/
2. 修改php.ini配置文件
- date.timezone = Asia/Shanghai
- post_max_size = 128M
- max_execution_time = 600
3. 通过web登录zabbix,根据提示进行初始化配置,直到出现登录窗口代表安装和配置完成。
默认用户名和密码是:admin/zabbix
界面如下图所示:
2.5 关于Zabbix分布式部署的基础配置(详细解释请参看官方技术文档)
如果需要增加分布式功能,则需要设置主节点或子节点参数(NodeID是唯一的,1为主节点,其他为子节点)
修改zabbix_server配置文件,增加如下配置
- NodeID=1
关闭zabbix_server服务,执行转换命令
- ./zabbix_server -n 1 -c /etc/zabbix/zabbix_server.conf
启动 zabbix_server服务
最后在zabbix web页面配置各节点项。
3 Zabbix Agentd的安装配置流程
3.1 Zabbix Agentd安装
1. 如果没有安装过zabbix server程序,请先先从zabbix官方网站下载zabbix-1.8.14版(http://www.zabbix.com/download2.php):
2. 解压缩:tar zxf zabbix-1.8.14.tar.gz ,并进入zabbix源码目录 cd zabbix-1.8.14
3. 创建zabbix用户和组:groupadd zabbix
4. Zabbix编译参数
- /configure –prefix=/usr/local/zabbix \
- --enable-agent
5. 编译和安装
- make && make install
6. Zabbix编译参数说明
- --enable-agent 安装 Zabbix Agent
3.2 Zabbix Agentd配置
1. 定义服务端口(非必要,只用于显示端口对应的服务别名)
编辑 /etc/service 配置文件,在文件末尾追加
- zabbix-agent 10050/tcp Zabbix Agent
- zabbix-agent 10050/udp Zabbix Agent
- zabbix-trapper 10051/tcp Zabbix Trapper
- zabbix-trapper 10051/udp Zabbix Trapper
2. 创建zabbix配置文件
- mkdir /etc/zabbix
- cp misc/conf/zabbix_agentd.conf /etc/zabbix/
3. 修改zabbix agentd配置文件如下内容
- PidFile=/var/log/zabbix/zabbix_agentd.pid
- LogFile=/var/log/zabbix/zabbix_agentd.log
- Server=192.168.1.1 //此为zabbix server的IP地址
- Hostname=192.168.1.2 //此处添加本机IP地址,也就是zabbix添加监控对象时的IP地址,否则zabbix server log会有很多注意信息
4. 在zabbix agentd配置文件最后加入自定义监控项(关于自定义监控项将在今后博文中详细介绍)
- UserParameter=memory.status[*],/bin/bash /usr/local/zabbix/shell/zabbix_memory_status.sh $1
- UserParameter=disk.health[*],/usr/bin/sudo /usr/local/zabbix/shell/zabbix_disk_status.sh $1
- UserParameter=partion.readonly,/usr/bin/sudo /usr/local/zabbix/shell/zabbix_partion_readonly.sh
5. 安装zabbix启动脚本
- cp misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/zabbix_agentd
- chmod +x /etc/init.d/zabbix_agentd
6. 修改 zabbix_agentd 头部变量定义
- 在 #!/bin/bash 后添加
- # chkconfig: - 95 95
- # description: Zabbix Agentd
- 修改以下变量
- BASEDIR=/usr/local/zabbix
- PIDFILE=/var/log/zabbix/zabbix_agentd.pid
7. 建立zabbix log和pid目录
- mkdir -p /var/log/zabbix && chmod 777 /var/log/zabbix
8. 添加zabbix到服务并设置开机启动
- chkconfig --add zabbix_agentd
- chkconfig zabbix_agentd on
9. 启动zabbix agentd
- /etc/init.d/zabbix_agentd start
10. Zabbix agentd启动后进程如下
结束
至此Zabbix安装和配置的流程都已基本介绍完成。Zabbix还有很多高阶应用值得我们去认真研究,例如分布式监控,proxy代理监控,web监控,以及自定义监控项配置等。这些进阶配置将在今后的博文中陆续进行详细介绍。