目录
一、Zabbix简介
1.1 Zabbix概述
1.2 Zabbix 监控原理
1.3 zabbix监控部署在系统中,包含常见的五个程序
二、部署zabbix服务端
三、部署zabbix 客户端
在 Web 页而中添加 agent 主机
四、自定义监控内容
1.明确需要执行的linux命令
2.创建zabbix的监控项配置文件,用于自定义key
3.在服务端验证新建的监控项
五、 在Web页面创建自定义监控项模板
1.创建模板
2.创建应用集(用于管理监控项的)
3.创建监控项
4.创建触发器
5. 创建图形
六、设置邮件报警
七、zabbix 自动发现与自动注册
1.确保客户端上的 zabbix-agent2服务状态正常
2.在 Web 页面删除原有的客户端主机
3.在服务端和客户端上配置 hosts 解析
4.在 Web 页而配置自动发现
八、zabbix 自动注册
1.环境准备
2.修改 zabbix-agent2 配置文件
3.在 Web 页而配置自动注册
前言:作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。
一、Zabbix简介
1.1 Zabbix概述
1.2 Zabbix 监控原理
zabbix agent安装在被监控的主机上,zabbix agent 负责定期收集客户端本地各项数据,并发送至zabbix server 端,zabbix server收到数据后,将数据存储到数据库中,用户基于ZabbixWEB可以看到数据在前端展现图像。当zabbix监控某个具体的项目,该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行--些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、 install 等)。
1.3 zabbix监控部署在系统中,包含常见的五个程序
zabbix_ server. zabbix_ _agent、zabbix_ _proxy、zabbix_get、zabbix_sende
- zabbix server: zabbix 服务端守护进程,其中zabbix_ agent. zabbix_ get. zabbix_ sender、zabbix_ proxy的数据最终都提交给zabbix server;
- zabbix agent: 客户端守护进程,负责收集客户端数据,例如:收集CPU负载、内存、硬盘使用情况等;
- zabbix proxy: zabbix 分布式代理守护进程,通常大于500 台主机,需要进行分布式监控架构部署;
- zabbix get: zabbix 数据接收工具,单独使用的命令,通常在server 或者proxy 端执行获取远程客户端信息的命令;
- zaabix sender: zabbix 数据发送工具,用户发送数据给server 或proxy端,通常用户耗时比较长的检查。
二、部署zabbix服务端
zabbix-server内存至少2G,推荐4G;
systemctl disable --now firewalld setenforce 0 hostnamectl set -hostname zbx-server
//获取zabbix 的下载源 rpm -ivh https://mirrors. aliyun. com/ zabbix/zabbix/5.0/rhe1/7/x86 64/zabbix- release-5.0-1.e17。noarch. rpm
//更换zabbix.repo 为阿里源 cd /etc/yum. repos.d sed -i 's#bttp://repe .zabbix. comhttps:/ /mirrors .aliyun。com/zabbix#' zabbix. repo yum clean all && yum makecache yum install -y zabbix-server -mysql zabbix- agent
//安装SCL (Software Collections), 便于后续安装高版本的php,默认yum安装的php 版本为5.4, 版本过低,zabbix 5.0版本对php版本最低要7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在/opt/rh目录下。
yum install -y centos- release-scl
//修改zabbix- front前端源,安装zabbix 前端环境到scl环境下 vim zabbix. repo [zabbix- frontend]
将前端的仓库打开 设置为1
使用mysql数据库
//添加数据库用户,以及zabbix所而的数据库信息 mysql -u root -pabc123 CREATE DATAbase zabbix character set utf8 collate utf8_ bin; GRANT all ON zabbix.* TO ' zabbix'@'&' IDENTIFIED BY 'zabbix' ; flush privileges; //导入数据库信息 rpm -ql zabbix-server -mysql #查询sql文件的位置 zcat /usr/share/doc/ zabbix- server -mysq1-5.0.15/create.sq1.gz | mysql -uroot -pabc123 zabbix //修改zabbix server 配置文件,修改数据库的密码 vim /etc/ zabbix/ zabbix_ server . conf DBPassword= zabbix #124行,指定zabbix 数据库的密码 //修改zabbix 的php配置文件 vim /etc/opt/ rh/ rh-php72/php- fpm. d/ zabbix. conf php_ value [date. timezone] = Asia/ Shanghai #24行,取消注释,修改时区
/启动zabbix 相关服务 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.80.20/ zabbix 点击下一步,设置数据库的密码zabbix 安装完成后,默认的登录账号和密码为: Admin/ zabbix 设置文件界面:点击左边菜单栏的[User settings] ,[ Language] 选择Chinese(zh_ CN), 再点击Update 更新。 /解决zabbix- server Web页面中文乱码问题 yum install -y wqy-microhei- fonts cp -f /usr/share/ fonts/wqy-microhei/wqy - microhei. ttc /usr/ share/ fonts/dejavu/DejaVuSans. ttf
完成下列操作
三、部署zabbix 客户端
zabbix 5.0版本采用golang 语言开发的新版本客户端agent2 。
zabbix服务端zabbix_ server 默认使用10051 端口,客户端zabbix_ agent2 默认使用10050 端口。
systemctl disable --now firewalld setenforce 0 hostnamectl set -hostname zbx- agent01
//服务端和客户端都配置时间同步 yum install -y ntpdate ntpdate -u ntp. aliyun. com
//客户端配置时区,与服务器保持一致
mv /etc/localtime{, .bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/ localtime
//改置zabbix 的下载源,安装zabbix- agent2 rpm -ivh https:/ /mirrors. aliyun. com/ zabbix/zabbix/5.0/rhel/7/x8664/zabbix- release = 5.0-1。el7. noarch. rpm cd /etc/yum. repos.d sed -i 's#http://repe. zabbix。com#https; //mirrors. aliyun。com/ zabbix#' /etc/yum. repos . d/zabbix . repo yum install -y zabbix- agent2
//修改agent2配置文件 vim /etc/zabbix/zabbix_ agent2. conf ...... Server=192.168.80.20 #80行,指定zabbix 服务端的IP 地址 ServerActive=192.168.80.20 #120行,指定zabbix 服务端的IP地址 Hostname= zbx- agent01 #131行,指定当前zabbix 客户端的主机名 //启动zabbix-agent2 systemctl start zabbix-agent2 systemctl enable zabbix-agent2
netstat -natp | grep zabbix tcp6 0 0 :::10050 :::* LISTEN 43654/zabbix_agent2
//在服务端验证 zabbix-agent2 的连通性 yum install -y zabbix-get #安装 zabbix 主动获取数据的命令 zabbix_get -s '192.168.80.30' -p 10050 -k 'agent.ping' 1 zabbix_get -s '192.168.80.30' -p 10050 -k 'system.hostname' zbx-agent01
在 Web 页而中添加 agent 主机
点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】设置成 zbx-agent01
【可见的名称】设置成 zbx-agent01-192.168.130.132
【群组】选择 Linux server
【Interfaces】的【IP地址】设置成192.168.130.132
右上角有个创建选项
四、自定义监控内容
案列:自定义监控客户端服务器登录的人数
需求:限制登录人数不超过3个,超过3个就发出报警信息
在客户端创建自定义key
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 -1
systemctl restart zabbix- agent2
3.在服务端验证新建的监控项
zabbix_ get -s '192.168.80.30' -p 10050 -k ' login.user'
五、 在Web页面创建自定义监控项模板
1.创建模板
点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义
点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User 了
点击左边菜单栏【配置】中的【模板】,点击【创建模板】 【模板名称】设置成 Template Login User 【可见的名称】设置成 Template Login User 【群组】选择 Template 【描述】可自定义 点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User 了
2.创建应用集(用于管理监控项的)
点击上方菜单栏【应用集】,点击【创建应用集】
【名称】设置成 Login User
点击【添加】
3.创建监控项
点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 Number of login users
【键值】设置成login.user #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成10s
【历史数据保留时长】storage period 30d #保留时间可自定义设置
点击【添加】
4.创建触发器
(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
点击上方菜单栏【触发器】,点击【创建触发器】 【名称】设置成 Number of login users is greater than 3 【严重性】设置成 一般严重
5. 创建图形
六、设置邮件报警
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】 设置成 qq.com
【SMTP电邮】设置成自己的邮箱地址,例如 qwe45456@qq. com
【认证】选择用户名和密码
【用户名称】设置成自己的邮箱地址,例如 qwe45456@qq. com
【密码】可登录QQ邮箱页而,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
【描述】可自定义
点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择 问题,点击【更新】
点击【添加】,并测试功能
密码为授权码
点击左边菜单栏【User settings】 --> 【报警媒介】,点击【添加】 【类型】选择qq_Email 【收件人】设置成 qwe4546456@wo.cn 【当启用时】设置成 1-7,00:00-24:00 点击【添加】 再点击【更新】
点击左边菜单栏【配置】中的【动作】 选择相对应的动作名称点击进入,点击【添加】 【类型】选择触发器,【触发器】点击选择 Nunber of login users is greater than 3 点击【启用】
//测试邮件报警 增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警
七、zabbix 自动发现与自动注册
zabbix 自动发现(对于 agent2 是被动模式)
zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。
缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。
1.确保客户端上的 zabbix-agent2服务状态正常
systemctl is-active zabbix- agent2.service
active
2.在 Web 页面删除原有的客户端主机
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
3.在服务端和客户端上配置 hosts 解析
vim /etc/hosts
192.168.80.20 zbx-server
192.168.80.30 zbx-agent01
两台都要输入
4.在 Web 页而配置自动发现
点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
【名称】设置成 mynetwork
【IP范围】设置成 192.168.80.1-254
【更新间隔】设置成 30s
【检查】点击【添加】,【检查类型】选择 Zabbix 客户端, 【端口范围】设置成 10050, 【键值】设置成 system.uname
【设备唯一性准则】选择 IP地址
【主机名称】选择 DNS名称
【可见的名称】选择 主机名称
勾选【已启用】 ,点击【更新】
点击左边菜单栏【配置】中的【动作】,上方菜单选择【Discovery actions】
勾选【Auto discovery. Linux servers.】 ,点击【启用】
点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机
可在服务端查看 zabbix 日志
tail -f /var/log/ zabbix/zabbix_server.log
......
6601:20210922:225044.115 enabling Zabbix agent checks on host "zbx-agent01": host became available
unname 查看内核
自动可用
八、zabbix 自动注册
(对于 agent2 是主动模式)
zabbix agent2 会主动上报自己的信息,发给 zabbix server。
缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。
1.环境准备
点击左边菜单栏【配置】中的【自动发现】,勾选发现规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
vim /etc/hosts 192.168.80.20 zbx-server 192.168.80.30 zbx-agent01
2.修改 zabbix-agent2 配置文件
vim /etc/zabbix/ abbix_agent2.conf
......
HostnameItem=system.hostname #139行,取消注释
egrep -v "^#|^$" /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile-/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.80.20
ServerActive=192.168.80.20
Hostname=zbx-gent01
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
3.在 Web 页而配置自动注册
点击左边菜单栏【配置】中的【动作】,上方菜单选择【Autoregistration actions】,点击【创建动作】
【名称】设置成 Auto registration
点击【添加】,【类型】选择 主机名称,【操作者】选择 包含,【值】设置成 zbx-agent01
点击上方菜单栏【操作】,点击【添加】,【操作类型】选择 添加主机,点击【add】
再点击【添加】,【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers, 点击【add】



