目录
一、zabbix监控
1、什么是zabbix
2、zabbix功能
3、zabbix运行机制
4、zabbix的3种架构
①C/S架构
②zabbix-proxy-client架构
③master-zabbix-client架构
5、zabbix工作原理及数据走向
6、zabbix监控模式
7、zabbix部署
8、zabbix图形化页面显示设置
二、Zabbix监控使用
1、安装zabbix监控客户端
2、服务端验证连通性
3、Web 页面中添加agent 主机
4、配置主机模板
5、 自定义监控内容
6、web页面配置自定义监控模板
①创建模板
②创建应用集(用于管理监控项的)
③创建监控项
④创建触发器
⑤创建图形
⑥设置邮件报警
⑦添加告警告知邮箱
7、zabbix 自动发现与自动注册
①zabbix自动发现说明
②确保监控server agent2客户端是存活状态
③删除原有的客户端主机
④ 客户端服务端添加hosts
⑤web页面自动发现
⑥发现客户端
⑦验证发现结果
zabbix:是一款开源免费的,自动化发现服务与网络设备的分布式监控,可以监视应用层服务并以web前端页面集中管理并展示。
监控服务器cpu负载、服务器内存使用、服务器磁盘使用及网络状态、还可以监控中间件。
缺点:只支持传统运维,不支持容器
zabbix是C/S架构由zabbbix server和zabbix agent组成
zabbix server :负责存储展示硬件信息,通过B/S模式传给web端展示配置
zabbix agent :监控收集服务器信息,端口号为10050
被监控的机器和zabbix直接相连zabbix agent负责采集服务器的信息,zabbix server 负责存储并通过web展示硬件信息
被监控的机器和zabbix中间有个proxy代理,zabbix agent将采集的信息传到代理上由代理同一传给zabbix server进行前端页面展示和数据存储。
master下有node节点,node可以存储数据,node有自己的配置文件和数据库注意负责将配置信息和监控数据与master同步,node下可以直接接入主机或接入代理proxy。
①zabbix agent在主机上采集监控数据,将采集的数据传给zabbix server
②zabbix server收到数据后将数据存在自己的数据库中
③然后从数据库中提取数据进行分析,是否需要报警
④分析完成后server在web前端页面进行界面数据展示
主动模式:zabbix agent主动将采集到的监控信息传输给zabbix server
被动模式:zabbix server向zabbix agent索引采集到的监控信息,zabbix agent返回采集到的数据
①一台2核4G内存数据库,至少2核2G
systemctl disable --now firewalld
#永久关闭并现在立即关闭防火墙
setenforce 0
#关闭selinux
hostnamectl set-hostname zbx-server
#更改主机名
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#获得zabbix下载yum源
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
vim zabbix.repo
#编辑配置文件 开启安装源
[zabbix-frontend]
......
enabled=1 #1表示开启安装源
......
#进入yum源目录文件并使用sed将国外源替换为阿里云源
yum clean all && yum makecache
#清除原理yum源缓存并加载新的yum
yum install -y zabbix-server-mysql zabbix-agent
#安装zabbix客户端和服务端
yum install -y centos-release-scl
#安装scl,原因为便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4zabbix要求php版本为7.2以上,若达到要求则无须安装scl
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
#安装连接数据库和连接apache前端页面的连接工具
yum install -y mariadb-server mariadb
systemctl enable --now mariadb
#安装并开启数据库
mysql_secure_installation
#初始化数据库,并设置密码,如 abc123选择执行,先回车,然后输入2次自己想设置的密码,其他全部yes即可
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
#创建zabbix库并设置库格式为utf-8
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
#创建并授权zabbix远程登录用户密码为zabbix
flush privileges;
#刷新数据
rpm -ql zabbix-server-mysql
#查询zabbix数据库中配置文件的位置
zcat /usr/share/doc/zabbix-server-mysql-5.0.33/create.sql.gz | mysql -uroot -pabc123 zabbix(导入的库名)
#将zabbix数据库格式导入数据库中,此处需要等待10s左右
vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix #124行,去掉#注释然后指定 zabbix 数据库的密码
#编辑zabbix配置文件将设置的远程登录用户的密码zabbix输入进去保存退出
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai #24行,取消注释,修改时区
#编辑php的配置文件,将时区改为亚洲上海,注意去掉前面的;在此文件中表示注释
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
#重启zabbix服务php服务并设置开机自启
①浏览器输入自己部署zabbix地址的服务器地址如本机:http://192.168.30.11/zabbix进入配置页面
②点击netxt step进入下一步检查zabbix配置,所有状态都要为ok,若有问题则需要去服务器侧检查配置
③所有配置都正常则继续点击下一步使用zabbix账户登录数据库
④连接数据库后下一步配置zabbix信息
⑥信息检查完成后点击结束安装完成
⑦结束后登录验证,默认账户为:Admin 默认密码为:zabbix
⑧登录完成后主页面如下
⑨修改zabbix语言为中文,点击user settings然后选择语言为中文,点击update保存即可
再开启一台服务器进行zabbix agent客户端系统安装
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-agent01
bash
#关闭防火墙和selinux,更改主机名并运行bash刷新主机名
yum install -y ntpdate
ntpdate -u ntp.aliyun.com
#服务端和客户端都配置时间同步
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date
#客户端配置时区,与服务器保持一致
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#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-agent2
#设置 zabbix 的下载源,安装 zabbix-agent2
vim /etc/zabbix/zabbix_agent2.conf
#修改配置文件,修改内容如下
Server=192.168.30.11
#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.30.11
#120行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01
#131行,指定当前 zabbix 客户端的主机名
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -natp | grep zabbix
#设置zabbix-agent2开机自启并现在启动,检查端口是否存在
yum install -y zabbix-get
#安装 zabbix 主动获取数据的命令
zabbix_get -s '192.168.10.21' -p 10050 -k 'agent.ping'
#返回结果为1则表示连接成功
zabbix_get -s '192.168.10.21' -p 10050 -k 'system.hostname'
#可以显示客户端zbx-agent01的主机名表示连接成功
1.明确需要执行的 linux 命令
who | wc -l
2.创建 zabbix 的监控项配置文件,用于自定义 key
vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
268 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
291 # Format: UserParameter=,
cd /etc/zabbix/zabbix_agent2.d/
vim UserParameter_login.conf
#添加内容如下
UserParameter=login.user,who|wc -l
#UserParameter为键不可变login.user为键值名称逗号后可写命令或脚步
systemctl restart zabbix-agent2
#重启zabbix-agent2
3.在服务端验证新建的监控项
zabbix_get -s '192.168.30.12' -p 10050 -k 'login.user'
#返回值为1则表示监控项无问题
点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义
点击 【添加】此时就可在【名字】中搜索到 Template Login User 了
点击上方菜单栏【应用集】,点击【创建应用集】
【名称】设置成 Login User
点击 【添加】
点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 Number of login users
【键值】设置成 login.user #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period 30d #保留时间可自定义设置
点击 【添加】
【名称】设置成 Number of login users is greater than 3
【严重性】设置成 一般严重
【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
点击 【添加】
【名称】设置成 Number of login users
【宽】、【高】可直接采用默认值
【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
点击 【添加】
点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
的自动发现与自动注册指的是相对服务器而言,若为被动发现则需要手动将客户端机器添加到zabbix中,若是自动发现则是在zabbix上配置,由zabbix主动去扫描。
server agent2上执行:
systemctl is-active zabbix-agent2.service
#返回active即agent2正常
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
vim /etc/hosts
192.168.30.11 zbx-server
192.168.30.12 zbx-agent01
点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】【名称】设置成 mynetw3ork
【IP范围】设置成 192.168.30.1-254
【更新间隔】设置成 30s
【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键值】设置成 system.uname
【设备唯一性准则】选择 IP地址
【主机名称】选择 DNS名称
【可见的名称】选择 主机名称
勾选 【已启用】,点击 【更新】
点击左边菜单栏【配置】中的【动作】,上方菜单选择 【发现动作】
勾选 【发现动作】,点击 【启用】
点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机 ,需要等待一段时间。