zabbix 简介:
- Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决
方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。
Zabbix 功能
- 具备常见的商业监控软件所具备的功能:主机的性能监控、网络设备性能监控、数据库性能监控、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制等。
- 支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
- 支持自动发现(low discovery)key 实现动态监控项的批量监控(需写脚本)
- 支持分布式,能集中展示、管理分布式的监控点
- 扩展性强,server 提供通用接口(api 功能),可以自己开发完善各类监控(根据相关接
口编写程序实现) - 编写插件容易,可以自定义监控项,报警级别的设置。
- 数据收集:可用和性能检测、支持 snmp(包括 trapping and polling),IPMI,JMX,SSH,TELNET、自定义的检测、自定义收集数据的频率、服务器/代理和客户端模式
- 灵活的触发器:可以定义非常灵活的问题阈值,称为触发器,从后端数据库的参考值
- 高可定制的报警:发送通知,可定制的报警升级,收件人,媒体类型、通知可以使用宏变量有用的变量、自动操作包括远程命令
- 实时的绘图功能:监控项实时的将数据绘制在图形上面
- WEB 监控能力:ZABBIX 可以模拟鼠标点击了一个网站,并检查返回值和响应时间
- Api 功能:应用 api 功能,可以方便的和其他系统结合,包括手机客户端的使用。
- 更多功能请查看:https://www.zabbix.com/documentation/2.0/manual/introduction/features
优劣势
- 优点:
- 开源,无软件成本投入
- Server 对设备性能要求低
- 支持设备多,自带多种监控模板
- 支持分布式集中管理,有自动发现功能,可以实现自动化监控
- 开放式接口,扩展性强,插件编写容易
- 当监控的 item 比较多服务器队列比较大时可以采用被动状态,被监控客户端主动从server 端去下载需要监控的 item 然后取数据上传到 server 端。这种方式对服务器的负载比较小。
- Api 的支持,方便与其他系统结合
- 缺点:需在被监控主机上安装 agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。
安装部署
Zabbix Server 可以运行在 CentOS、RedHat Linux、Debain 等 Linux 系统上,这里以redhat7.3 作为部署环境。
主机 | ip |
---|---|
server4(server) | 172.25.60.4 |
server5(agent) | 172.25.60.5 |
- 先安装zabbix所需要的lamp环境:httpd、php、php-mysql、mariadb-server
[root@server4 ~]# yum install httpd php php-mysql mariadb-server -y
- 下载安装所需的软件包
- 开启maridb数据库,并初始化
[root@server4 4.0]# systemctl start mariadb
[root@server4 4.0]# mysql_secure_installation
- 进入数据库,授权
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';
- 导入zabbix数据库
- 此时登陆数据库可以查看到zabbix数据库
- 配置zabbix.server
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbixDBUser=zabbix
DBPassword=westos
- 配置php,更改时区
vim /etc/httpd/conf.d/zabbix.conf
- 启动zabbix-server、zabbix-agent、httpd
[root@server4 4.0]# systemctl start zabbix-server
[root@server4 4.0]# systemctl start zabbix-agent
[root@server4 4.0]# systemctl start httpd
- 通过web界面登陆zabbix
- 172.25.60.4/zabbix 按照要求提示安装并登陆:默认用户名:Admin、密码:zabbix
- 登陆后点击右上角的小人可以更改密码和语言
- 添加agent主机
- 在被监控端安装软件包:
- 配置zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
Server=172.25.60.4
ServerActive=172.25.60.4
Hostname=server5 #主机名需要有解析
- 在服务端创建主机:主机–>创建主机–>填写信息–>模板–>填写信息–>添加
- 启动zabbix-agent
- 刷新页面可看到添加的server5可用
- 自动发现主机(被动模式)
- 创建自动发现的动作并启用
- 编辑自动发现的动作
- 启用自动操作,编辑自动操作的模板
- 删除server2后刷新 60秒后就会自动发现agent主机(重启zabbix-server)
- 自动注册(主动模式)
- 再创建一台agent主机
- 将自动发现规则停用
- 编辑自动注册动作,开启自动注册
- 开启zabbix-agent:
systemctl start zabbix-agent
就可发现新的agent主机
使用API在zabbix监控系统重查看、创建、删除监控主机
- 编写登陆(login)脚本,查看zabbix监控系统的api接口:
- 给脚本执行权限并执行脚本result所返回的为zabbix监控的api(令牌)
- 编写查看zabbix主机和被监控主机信息的脚本(get)
- 执行脚本,可以查看到agent主机的信息
- 编写删除zabbix监控中的主机脚本(delete),端口号为以上对应的hostid
- 执行脚本
- 此时去web页面查看,server5主机已删除
如何查看groupid和templateid
- 再次编写添加主机的脚本,将主机重新添加
- 执行脚本后,可以从web界面上刷新看到server5又添加上了