1、定义
zabbix非常成熟的监控软件,是基于web页面提供的一种可视化的监控服务软件。以分布式的方式涉及系统监控、网络监控、硬件监控等等开源的原件。
运维人员,监控系统服务器的状态,网站流量,进程服务的运行状态。保证整个集群的工作正常。
2、zabbix组织的架构
1、 c/s模式:客户端和服务端组成 zabbix server服务端 zabbix agent客户端
2、 通过B/S:B浏览器 S服务端 通过浏览器可以直接访问服务数据。
zabbix serber的作用
zabbix server通过一系列的组件SNMP、zabbix agent、ping通过端口远程的监控客户端的数据,把数据收集到服务端进行展示,以及提供用户分析的界面(web)
zabbix agent:就是被监控的目标主机,把需要收集的数据以及自定义的监控项数据,发送给zabbix server
zabbix的组件程序
1、 zabbix server通过一系列的组件SNMP、zabbix agent、ping通过端口远程的监控客户端的数据,把数据收集到服务端进行展示,以及提供用户分析的界面(web)
2、 zabbix agent:就是被监控的目标主机,把需要收集的数据以及自定义的监控项数据,发送给zabbix server
3、 zabbix_proxy:代理服务器,是安装在监控的目标系统上的软件组件,可以代替zabbix_server收集数据,然后由代理软件传送给服务端zabbix_server
4、 zabbix_get:可选组件。提供命令行的工具(zabbix的命令行)
5、 zabbix_sender:可选组件。提供命令行工具(可以将自定义数据发送到zabbix服务器)。对于不直接由zabbix代理监控的数据或者从脚本来的数据,比较方便的。
zabbix的工作方式
被监控对象:
1、 Agent:服务器代理的方式收集数据
2、SNMP协议:可以通过ping命令和被监控对象进行通信
3、 JMX:管理Java的扩展程序和拓展应用
4、 IPMI:监控系统的硬件信息
5、 VMware:监控虚拟机的运行情况
6、 APP:监控应用程序的运行情况例如:nginx、httpd、mysql
zabbix-server主服务器:
所有的监控收集数据都在主服务器。主服务器来监控和告警
zabbix-database数据库:
主服务器收到数据之后将信息存储到数据库
zabbix-web页面:
将database中的数据传送给web页面形成可视化的操作页面。
实验
server服务端端口:10050
agent客户端端口:10051
两台服务器
192.168.10.153 server 4核8G
192.168.10.154 agent 2核4G
*****************************************************************************************
192.168.10.153 server 4核8G
开始实验
关闭防火墙和安全机制
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#下载
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
yum clean all && yum makecache
#清理源数据
zabbix-server-mysql:指定安装zabbix之后,使用mysql作为数据库的后端
zabbix-agent:把数据库加入后端中
yum -y install zabbix-server-mysql zabbix-agent
yum -y install centos-release-scl
#scl:SCL基于rehhat centos系统软件安装使用的一种机制,可以是一个系统运行一个进程的不同版本,可以是一个系统运行一个进程的不同版本,而且不会发生冲突,解决zabbix与其他web的兼容性
vim zabbix.repo
enable=1
yum install -y zabbix-web-mysgl-scl zabbix-apache-conf-scl
zabbix-web-mysal-sc
#可以安装zabbix的依赖环境PHP,以及MYSQL依赖环境,可以安装多个版本。
zabbix-apache-conf-scl
#安装所有的apache组件(web组件),可以安装多个版本
#apache提供了所有的可兼容性的进程,确保zabix的前端页面能够协调工作。
yum -y install mariadb-server mariadb
#安装数据库
systemctl restart mariadb.service
systemctl enable mariadb.service
mysql_secure_installation
#初始化数据库
y
123456
123456
y
y
y
mysql -u root -p123456
#登录数据库
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
#给zabbix创建一个库
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;
rpm -ql zabbix-server-mysql
#查询 sql 文件的位置
zcat /usr/share/doc/zabbix-server-mysql-5.0.39/create.sql.gz | mysql -uroot -p123456 zabbix
#导入 Zabbix 监控系统所需的 MySQL 数据库架构
vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
http://192.168.10.153/zabbix
#进入web界面
实验完成
创建监控主机
192.168.10.154 agent 2核4G
yum -y install ntp
ntpdate -u ntp.aliyun .com
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
yum clean all && yum makecache
yum -y install zabbix-agent2
vim /etc/zabbix/zabbix_agent2.conf
*******************************************************************************************
Server=192.168.10.154
#指向zabbix服务端的IP地址
ServerActive=192.168.10.154
#指向zabbix服务端的IP地址
Hostname=test2
#当前zabbix客户端的主机名
*******************************************************************************************
netstat -natp | grep zabbix
步骤三: 在 Web 页面创建自定义监控项模板
(1)创建模板
点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Nginx Status
【可见的名称】设置成 Template Nginx Status
【群组】选择 Template
【描述】可自定义
点击 【添加】,此时就可在【链接的模板】中搜索到Template Nginx Status 了
(2)创建应用集(用于管理监控项的)
点击上方菜单栏【应用集】,点击【创建应用集】
【名称】设置成 Nginx Status
点击 【添加】
(3)创建监控项
点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 Nginx is running
【键值】设置成 nginx.status[check] #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period 30d #保留时间可自定义设置
点击 【添加】
(4)创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
点击上方菜单栏【触发器】,点击【创建触发器】
【名称】设置成 Nginx is down
【严重性】设置成 一般严重
【表达式】点击添加,【监控项】点击选择 Nginx is running,【功能】选择 last(),【结果】选择=0,点击 【插入】
点击 【添加】
(5)创建图形
点击上方菜单栏【图形】,点击【创建图形】
【名称】设置成 Nginx is running
【宽】、【高】可直接采用默认值
【监控项】点击添加勾选相关监控项 Nginx is running,【功能】选择 最大,其它可保持默认值
点击 【添加】
(6)将主机与模板关联起来(一个主机可以关联多个模板)
点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
点击上方菜单栏【模板】,【Link new tamplates】搜索 Nginx,选择 Template Nginx Status,点击【更新】
此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标
在服务端验证 zabbix-agent2 的连通性
yum install -y zabbix-get
#安装 zabbix 主动获取数据的命令
zabbix_get -s '192.168.10.153' -p 10050 -k 'agent.ping'
zabbix_get -s '192.168.10.153' -p 10050 -k 'system.hostname'
创建触发
先创建摸版
再创建应用集----监控项(测试能否获取值)---触发器---图像
然后加入模板到主机
最后在动作添加触发类型