一、Zabbix介绍
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
1、zabbix监控架构
zabbix根据网络环境、监控归农等分了三种架构:server-client、master-node-client、server-proxy-client
server-client架构
zabbix最简单的监控架构,监控机和被监控机之间不经过任何代理,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单、设备比较少的监控环境。
server-proxy-client架构
server-proxy-client架构中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,且本身并不存放数据,只是将agentd发来的数据暂时存放,再提交给server。适用于跨机房、跨网阔的中型网络架构的监控
master-node-client架构
zabbix最复杂的监控架构,适用于跨机房、跨网络、设备较多的大型环境。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client。node有自己的配置文件和数据库,其要做的是将配置信息和监控数据向master同步
2、zabbix优点
- 开源,无软件成本投入。
- Server对设备要求低。
- 支持设备多,自带多种监控模板。
- 支持分布式集中管理,有自动发现功能,可以实现自动化监控。
- 监控的item比较多服务器队列比较大时可以采用被动状态,被监控客户端主动从server端去下载需要监控的item,然后取数据上传到server端。这种方式对服务器的负载比较小。
- API的支持,方便与其他系统结合。
3、 zabbix缺点
需要在被监控主机上安装agent,所有数据都存放在数据库里,产生的数据很大。
4、zabbix功能
具备常见的商业监控软件所具备的功能
主机的性能监控
网络设备性能监控
数据库性能监控
FTP等通用协议监控
多种告警方式
详细的报表图表绘制
支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。
5、zabbix监控对象
数据库: MySQL,MariaDB,Oracle,SQL,Server
应用软件: Nginx,Apache,PHP,Tomcat
集群:LVS,Keepalived,Haproxy,RHCS,FS
虚拟化:VMware,KVM,XEN
操作系统:Linux,Unix,Windows
硬件:服务器,存储,网络设备
网络:网络环境(内网环境,外网环境)
6、监控区别
1.nagios图形不是特别好,也可以安装图形插件,但是也不怎么好看
2.nagios一般情况下如果需要图形可以和cacti配合使用
3.cacti的监控是轮询监控,效率低,图形相对nagios比较好看
4.zabbix和nagios因为是并发监控,对cpu的要求更高
5.zabbix在性能和功能上都强大很多
6.zabbix的图形相当漂亮
7.支持多种监控方式 zabbix-agent snmp 等等
8.支持分布式监控,能监控的agent非常多
9.zabbix有图形的web配置界面,配置简洁
10.zabbix支持自动发现功能
7、Zabbix组件
zabbix server
Zabbix server是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。
zabbix database
所有配置信息和Zabbix收集到的数据都被存储在数据库中。
zabbix web
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常跟Zabbix Server运行在同一台物理机器上。
zabbix proxy
zabbix proxy可以替zabbix server收集性能和可用性数据。再统一发送给server
zabbix agent
Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。
二、zabbix监控系统搭建
1、server端安装
zabbix包下载
进入官网zabbix点击下载
找到对应版本
根据提示下载,并更新yum源
[root@cosin ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm
[root@cosin ~]# yum clean all
[root@cosin ~]# yum repolist
#配置国内源(这里使用阿里云的)
[root@cosin ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
#安装zabbix及相关工具
[root@cosin ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
[root@cosin ~]# yum install -y zabbix-get.x86_64
安装设置数据库
为了实验方便,这里使用mariadb
[root@cosin ~]# yum install mariadb mariadb-server -y
[root@cosin ~]# systemctl restart mariadb
[root@cosin ~]# systemctl enable mariadb
[root@cosin ~]# mysqladmin -uroot password 'zabbix@23' #设置密码
创建数据库并授权账号
[root@cosin ~]# mysql -uroot -p'zabbix@23'
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; # 创建zabbix数据库
MriaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix'; # 注意授权网段
MariaDB [(none)]> flush privileges; # 刷新授权
MariaDB [(none)]> \q
导入表
[root@cosin ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: #输入密码
配置server端
[root@cosin ~]# cd /etc/zabbix/
[root@cosin zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
#为了方便我们以后恢复,我们把配置文件备份一下
[root@cosin zabbix]# cp zabbix_server.conf zabbix_server.conf.bak
[root@cosin zabbix]# vim zabbix_server.conf
DBHost=localhost #数据库对外的主机
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户
DBPassword=zabbix #数据库密码
[root@cosin zabbix]# systemctl start zabbix-server #配置完成开启服务
[root@cosin zabbix]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@cosin zabbix]# netstat -lntp | grep 10051 #查看端口确定服务是否开启
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 1574/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 1574/zabbix_server
配置 web GUI
1.启用zabbix前端源,修改vim /etc/yum.repos.d/zabbix.repo,将[zabbix-frontend]下的 enabled 改为 1
[root@cosin zabbix]# vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...
2.安装 Software Collections,便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4 过低
[root@cosin zabbix]# yum install centos-release-scl -y
3.安装 zabbix 前端和相关环境
[root@cosin zabbix]# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
[root@cosin ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf #设置时区
#里面基本不用动。只需要添加一行时区即可
php_value[date.timezone] = Asia/Shanghai
#启动服务并设置开机自启
[root@cosin ~]# systemctl restart cosin zabbix-agent httpd rh-php72-php-fpm
[root@cosin ~]# systemctl enable cosin zabbix-agent httpd rh-php72-php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/rh-php72-php-fpm.service to /usr/lib/systemd/system/rh-php72-php-fpm.service.
浏览器访问并进行初始化设置
使用浏览器访问39.106.68.210/zabbix,第一次访问时要进行初始化设置,根据提示操作即可
配置响应的ip和端口默认,也可以更改
点击完成后跳转到登录界面,默认用户名为Admin,密码默认为zabbix
2、agent端配置
zabbix安装
[root@zabbix-node1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zabbix-node1 ~]# yum install -y zabbix-agent zabbix-sender
修改配置文件
[root@zabbix-node1 ~]# cd /etc/zabbix/
[root@zabbix-node1 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@zabbix-node1 zabbix]# cp zabbix_agentd.conf zabbix_agentd.conf.bak
[root@zabbix-node1 zabbix]# vim zabbix_agentd.conf
Server=39.106.68.210zabbix服务器的地址
ServerActive=39.106.68.210 主动模式 zabbix-server-ip
Hostname=zabbix-node1 #本机主机名
UnsafeUserParameters=1 是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符
[root@zabbix-node1 zabbix]# systemctl restart zabbix-agent
[root@zabbix-node1 zabbix]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@zabbix-node1 zabbix]# netstat -lntp | grep 10050
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1493/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 1493/zabbix_agentd
多台agent端也是一样的操作,把各配置文件中的Hostname改为对应的就行