Zabbix 是一个企业级的分布式开源监控方案。能够监控各种网络参数以及服务器健康性和完整性。支持灵活的通知机制,提供出色的报告和数据可视化功能。Zabbix支持主动轮询和被动捕获。最关键的是源代码都是免费发行的,可供公众任意使用。这也是它在中小企业广为流行的重要原因之一。本文简要描述Zabbix特性以及基于CentOS 7下安装Zabbix 3.4。
一、Zabbix的特点
数据收集
可用性和性能检查
支持SNMP(包括捕获和主动轮训),IPMI,JMX,VMware监控
自定义检查
按照自定义的间隔收集需要的数据
由Server/Proxy和agents执行
灵活的阀值定义
高度可配置化的告警
实时图表绘制
使用内置图表绘制功能可以将监控项的内容立即绘制成图表
Web监控功能
支持自定义图形
丰富的可视化选项
多个监控项组合在一个视图展示
网络拓扑图
基于模板分组检查
安全用户认证
用C语言编写,性能高效
二、Zabbix组成
服务端
Zabbix Server是所有配置信息、统计信息和操作数据的核心存储器。用于报告系统可用性、系统完成整性和统计信息等。
数据存储端
配置信息和Zabbix收集到的数据都被存储在数据库中,支持mysql,pg,oracle。
Web展示端
提供了基于Web的访问界面(采用PHP语言编写)
客户端
Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。
Proxy代理服务器
Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。
三、Zabbix典型架构部署图
四、环境准备
# more /etc/redhat-release ##演示环境
CentOS Linux release 7.4.1708 (Core)
# vi /etc/selinux/config ##关闭selinux
SELINUX=disabled
# setenforce 0
# yum install mariadb-server mariadb -y ##安装mariadb数据库
# systemctl start mariadb
# systemctl enable mariadb
##添加zabbix yum源,安装zabbix server以及web管理
# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
# yum install zabbix-server-mysql zabbix-web-mysql -y
# mysql ##登陆到mysql创建数据库及目录
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.56-MariaDB MariaDB Server
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix#1235';
Query OK, 0 rows affected (0.00 sec)
##将zabbix元数据添加到mariadb
# zcat /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz | mysql -uzabbix -pzabbix#1235 zabbix
五、配置zabbix
# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.1121
# vim /etc/zabbix/zabbix_server.conf ##使用缺省配置,仅仅设定数据库密码
DBPassword=zabbix#1235
# vim /etc/httpd/conf.d/zabbix.conf ##修改apache zabbix时区
php_value date.timezone Asia/Shanghai
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bk
# vim /etc/httpd/conf/httpd.conf ##Author : Leshami
Listen 3080 ##此处使用非缺省的80端口 ##Blog : http://blog.csdn.net/leshami
启动相关服务
# systemctl start zabbix-server.service
# systemctl enable zabbix-server.service
# systemctl start httpd
# systemctl enable httpd
# netstat -nltp|egrep "zabbix|httpd|mysql"
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 15720/zabbix_server
tcp 0 0 0.0.0.0:3080 0.0.0.0:* LISTEN 15385/httpd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 14146/mysqld
tcp6 0 0 :::10051 :::* LISTEN 15720/zabbix_server
防火墙配置
# firewall-cmd --add-port=3080/tcp --permanent
# firewall-cmd --add-port=10051/tcp --permanent
# systemctl reload firewalld.service
六、图形界面安装配置
打开浏览器,输入http://yourip:port/zabbix
环境配置检测,如果不OK,应返回前面的步骤进行排查
下面配置到数据库的连接
服务器名称及端口配置
完成安装
登陆,缺省用户名Admin,密码zabbix
七、客户端安装及配置
对于zabbix服务器,自身也可以被监控。对于自身的监控,也应当安装agent端
对于非本机的agent安装,应先配置yum源,再安装agent端,修改agent配置文件指向服务端
# yum install zabbix-agent -y
# systemctl enable zabbix-agent.service
agent端配置
[root@ydq-mnt zabbix]# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,10.80.234.38
ServerActive=127.0.0.1,10.80.234.38
# systemctl start zabbix-agent.service
八、一些注意事项
1、安装前,建议配置服务器端和客户端/etc/hosts文件,即将服务器端与客户端主机IP映射关系添加到当前主机
2、服务器端和agent端配置文件中使用统一的Hostname,区分大小写。否则容易出现无法连接的情形
3、防火墙端口放开,对于非本地agent端,开放端口10050