Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。 官方网站:http://www.zabbix.com Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。 被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据 Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端展示。 Zabbix运行条件: Server: Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低 Agent: 目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows SNMP:
Zabbix优点
zabbix易于部署,运行稳定。对于基础监控例如,内存,cpu,磁盘等基础监控项还是很准确。报警机制较为方便,对比prometheus的报警配置,个人感觉zabbix的报警配置更加方便。方便管理,适用于大规模集群。本人在之前使用并管理300台以上机器,对于这种中型架构完全没压力。缺点 5. 功能不够完善,对于容器,云等架构的监控还不是很完善。在此不如prometheus监控。 6. 监控界面简单,适合运维人员管理,不适于给客户观看。当然可以结合grafana使用,grafana是目前一款不错的作图软件,本身支持zabbix,prometheus等数据源。 7. 数据存贮方面。zabbix默认一般是Mysql,对于大数据量级别不适于应用。相较而言prometheus本身就是TSDB时序性数据库,不管是时序性,还是大数据存贮,或是秒及处理速度,都更占优势。
本部署文档基于centos6系统
资源下载地址: https://opsx.alibaba.com/mirror ##阿里源 https://mirrors.tuna.tsinghua.edu.cn/ ##清华源 mysql下载: https://www.mysql.com/
一种为server端直接对agent端进行监控方式。这种方式又分为主动模式和被动模式,主动模式为agent端定期主动向server端提交监控数据,被动模式为server端定期找agent端索要数据。少量机器时可用被动模式,大量机器时用主动模式。 另一种为proxy代理模式。此模式用于大集群,异地机房监控。可实现分布式跨网段监控,每地机房一个proxy代理节点,分担server端压力同时,实现跨网段监控。
少量机器可通过手动部署,机器较多是使用本地源部署较为方便。本人部署集群为300+
启动http的服务 # `service httpd start` 创建zabbix源 # cd /etc/yum.repos.d/ # vim zabbix.repo [zabbix] #自定义名字 name=Zabbix baseurl=http://192.168.x.x/zabbix/zabbix_rpm #http地址及rpm包存放路径 enabled=1 #设置此源是否可用,1为可用 gpgcheck=0 #设置此源是否校验,0为否 将所用的安装包放到httpd站点目录 /var/www/html/ 下,对应zabbix源中的存放路径 用rpm方式安装需createrepo,该软件用来生成rpm依赖及分组信息 # cd /var/www/html/ # createrepo ./ #此步骤需在html每个子目录下均执行5. 访问http网址查看 6. 将自己创建的源文件,发送到各个节点。 集群数量多,使用ansible
scp /etc/yum.repos.d/ zabbix.repo 注意事项:mysql安装失败查看大小写 如有组件安装失败,检查是否有自带版本,先卸载再安装。
复制mysql配置文件
\cp /usr/share/mysql/my-medium.cnf /etc/my.cnf # vim /etc/security/limits.conf * soft nofile 4096 * hard nofile 4096 # vim /etc/my.cnf [mysqld] connect_timeout=60 wait_timeout=5000 max_connections=1000 #最大连接数 max_allowed_packet=50M max_connect_errors=500启动MySQL
/etc/init.d/mysqld start创建用户并授权
create database zabbix character set utf8 collate utf8_bin; grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix'; flush privileges; exit导入zabbix中sql
zcat /usr/share/doc/zabbix-server-mysql-4.2.0/create.sql.gz|mysql -uzabbix -pzabbix zabbix自动发现:服务端server自动发现局域网中的所有客户端agent 优点:方便找到所有客户端,不会遗漏 缺点:一旦agent过多,server压力山大,每隔一段时间,server都会扫描一遍局域网的所有机器。 自动注册:所有客户端Agent主动去服务端server登记注册一下(在本文章就不写了复制图片太麻烦了) 优点:对服务端的压力最低 缺点:配置过程稍微复杂
客户端agent配置 不需要任何配置,只要沿用前面的配置即可。 服务端server配置 不需要任何配置,只要沿用前面的配置即可。
解决中文乱码 查看监控数据时,出现乱码的解决办法(server端操作)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum -y install wqy-microhei-fonts \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf模板的功能:一处创建,处处使用 自定义名称
搜索自己创建的模板
自定义名称
自定义名称,添加表达式 表达式
能够减轻服务端的压力,zabbix proxy可以分担压力。zabbix server只能在同一个局域网监控,zabbix proxy可以实现跨网段监控。
zabbix proxy需要数据库存储相关的配置信息,但是不存储监控数据(只存在server上)
[root@m01 ~]# mysql # 创建proxy用的数据库 create database zabbix_proxy character set utf8 collate utf8_bin; # 创建proxy用的账户 grant all privileges on zabbix_proxy.* to zabbix@'172.16.1.%' identified by 'zabbix'; # 退出mysql命令行
[参考文档]
https://blog.csdn.net/zzhlinux911218/article/details/85127444 https://blog.csdn.net/AtlanSI/article/details/82154610
