当前位置: 首页 > news >正文

zabbix 监控软件

zabbix 监控软件

自带图形化界面,通过网页就可以监控所有服务器的状态

事件告警,邮箱通知(噩梦)

短信,电话。

zabbix是什么?

web界面提供的分布式监控以及网络监控功能的开源的企业级软件解决方案

监控端 客户端

zabbix可以提供各种类型监控模版,保证服务器的正常运行,灵活的通知机制可以让管理员快速定位

zabbix由两部分组成:

1、zabbix-server,在server上可选安装zabbix-agent

2、收集数据的模式c/s模式(client/server)客户端到服务端

展示数据和配置数据 B/S模式(browes/server)页面配置

zabbix-server    服务端    收集数据    提供网页和配置数据

zabbix-agent    客户端    把收集到的数据发送给服务端


数据流向图:

 

zabbix的五大组件

1、zabbix-server

2、zabbix-agent

3、zabbix-proxy 代理服务器 作用:所有的客户端都向服务端一起发数据,服务端的压力就会比较大,发送到代理服务器,代理服务器处理完之后再发给server,减轻主服务器的压力

4、zabbix get zabbix-get是zabbix的命令行工具

5、zabbix sender 发送器,可以将客户端的数据进行自定义操作之后再发送到服务端,也可以通过脚本,把脚本处理的数据发送到客户端


 zabbix 服务端的部署 :

zabbix-server 
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/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm //更换 zabbix.repo 为阿里源
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repoyum clean all && yum makecacheyum install -y zabbix-server-mysql zabbix-agentzabbix-server-mysql:zabbix-server-mysql 是 Zabbix 服务器的一个变种或配置选项,
它指定了在安装 Zabbix 服务器时使用 MySQL 作为数据库后端。 
Zabbix 可以使用不同的数据库后端,包括 MySQL、PostgreSQL、SQLite 等。
zabbix-server-mysql 包含了在 MySQL 数据库中存储和检索监控数据所需的配置和脚本。zabbix-agent:
zabbix-agent 是 Zabbix 监控系统的客户端组件,安装在要监视的目标系统上。
它负责收集系统和应用程序的各种性能数据,例如 CPU 使用率、内存使用率、磁盘空间等。
这些数据然后被传送到 Zabbix 服务器,以便进行进一步的处理和分析。//安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,
版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,
而又不会影响整个系统的依赖环境。vim CentOS-SCLo-scl-rh.repo[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7//修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
vim zabbix.repo
......
[zabbix-frontend]
......
enabled=1          #开启安装源
......------------------------------------------------------------------------------------------
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-sclzabbix-web-mysql-scl:
zabbix-web-mysql-scl 是一个软件包,其中 SCL 表示 Software Collections,
这是一种用于在 Red Hat Enterprise Linux (RHEL) 系统上安装和管理多个软件版本的机制。
这个软件包可能包含了 Zabbix Web 前端(通常是 PHP 程序)以及与之相关的依赖项。
-mysql 的后缀表示该软件包支持 MySQL 作为数据库后端。zabbix-apache-conf-scl:
zabbix-apache-conf-scl 也是一个软件包,其中 SCL 表示 Software Collections。
这个软件包包含了配置 Apache Web 服务器以支持 Zabbix Web 前端的相关文件。
这些文件包括 Apache 配置文件、虚拟主机配置等,确保 Apache 正确地与 Zabbix Web 前端协同工作。在这两个软件包中,SCL 的概念意味着它们可能提供了一种机制,
使系统管理员能够在同一系统上同时运行多个软件版本,而不会发生冲突。
这对于确保 Zabbix 与其他 Web 应用程序或服务兼容性的情况非常有用。--------------------------------------------------------------------------------------------
//安装 zabbix 所需的数据库
yum install -y mariadb-server mariadbsystemctl enable --now mariadbmysql_secure_installation         #初始化数据库,并设置密码,如 123456//添加数据库用户,以及 zabbix 所需的数据库信息
mysql -u root -p123456CREATE DATABASE zabbix character set utf8 collate utf8_bin;
创建一个名为 "zabbix" 的 MySQL 数据库,字符集为 UTF-8,排序规则为 utf8_binGRANT 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 数据库架构//修改 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.233.10/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//服务端和客户端都配置时间同步
yum install -y ntpdate
ntpdate -u ntp.aliyun.com//客户端配置时区,与服务器保持一致
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtimedate//设置 zabbix 的下载源,安装 zabbix-agent2
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.repoyum clean all && yum makecacheyum install -y zabbix-agent2//修改 agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.233.10			#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.233.10	    #125行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01			#136行,指定当前 zabbix 客户端的主机名//启动 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2netstat -natp | grep zabbix
tcp6       0      0 :::10050                :::*                    LISTEN      43654/zabbix_agent2 //在服务端验证 zabbix-agent2 的连通性
yum install -y zabbix-get				#安装 zabbix 主动获取数据的命令zabbix_get -s '192.168.233.20' -p 10050 -k 'agent.ping'
1zabbix_get -s '192.168.233.20' -p 10050 -k 'system.hostname'
zbx-agent01//在 Web 页面中添加 agent 主机
点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】设置成 zbx-agent01
【可见的名称】设置成 zbx-agent01-192.168.233.20
【群组】选择 Linux server
【接口】的【IP地址】设置成 192.168.233.20再点击上方菜单栏【模板】
【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent
点击 【添加】

 


nginx服务状况的检测 

rpm -Uvh  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx   //安装nginx
systemctl start nginx   //启动nginx
 步骤一:修改nginx的配置文件
cd /etc/nginx/conf.d
vim default.confserver {
...................location /nginx_status {stub_status on;access_log off;allow 127.0.0.1;allow 192.168.73.0/24;deny all;
...........................
}nginx -t 
systemctl start nginx

 

 

cd/opt
vim zabbix_nginx.sh
#/bin/bash
#Description:Automated monitoring nginx performance and process nginx_status scriptsHOST="localhost"
PORT=80
stub_status="stub_status"
NGINX_COMMAND=$1nginx_check() {if [ -f /sbin/pidof ]; then/sbin/pidof nginx | wc -welseps aux | grep -v "grep" | grep -c "nginx:"fi
}nginx_active(){/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Active/ {print $NF}'
}nginx_reading(){/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Reading/ {print $2}'
}nginx_writing(){/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Writing/ {print $4}'
}nginx_waiting(){/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Waiting/ {print $6}'
}nginx_accepts(){/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $1}'
}nginx_handled(){/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $2}'
}nginx_requests(){/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $3}'
}case $NGINX_COMMAND incheck)nginx_check;;active)nginx_active;;reading)nginx_reading;;writing)nginx_writing;;waiting)nginx_waiting;;accepts)nginx_accepts;;handled)nginx_handled;;requests)nginx_requests;;*)echo $"USAGE:$0 {check|active|reading|writing|waiting|accepts|handled|requests}"
esac
chmod +x zabbix_nginx.sh //进行测试
./zabbix_nginx.sh check

 

 

 添加zabbix监控键:

cd /etc/zabbix/zabbix_agent2.d
vim UserParameter_nginx.conf
UserParameter=nginx.status[*],/opt/zabbix_nginx.sh $1//服务端测试
zabbix_get -s '192.168.73.114' -p 10050 -k nginx.status[check]

 

步骤三: 在 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,点击【更新】
此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标

 

 

 

邮件报警的应用操作:

以自定义案例2:nginx的状态为例子,如果nginx服务宕机,就通过qq邮箱发送报警信息 

邮件报警的创建过程 

(1)点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
【名称】设置成 qq_Email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】设置成 qq.com
【SMTP电邮】设置成 自己的邮箱地址,例如 xxxxxxxx@qq.com
【认证】选择 用户名和密码
【用户名称】设置成 自己的邮箱地址,例如 xxxxxxxx@qq.com
【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
【描述】可自定义
点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择 问题,点击【更新】
点击 【添加】,并测试功能

 

 

(2)点击左边菜单栏【User settings】-->【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】设置成 xxxxxxxx@wo.cn
【当启用时】设置成 1-7,00:00-24:00
点击 【添加】
再点击 【更新】

 

(3)点击左边菜单栏【配置】中的【动作】

选择相对应的动作名称点击进入,点击 【添加】
【类型】选择 触发器,【触发器】点击选择Nginx is down
点击【启用】

 

 

 

http://www.lryc.cn/news/418796.html

相关文章:

  • C语言随机数小游戏
  • 解决Ubuntu报“无法解析域名cn.archive.ubuntu.com“问题
  • 搭建pxe网络安装环境实现服务器自动部署
  • Go框架选战:Gin、Echo、Fiber的终极较量
  • 2024.8.08(python)
  • RabbitMQ知识总结(基本原理+高级特性)
  • 字符串切割split
  • Python中的 `continue` 语句:掌握循环控制的艺术
  • AI安全新纪元:智能体驱动的网络安全新范式
  • c语言学习,isascii()函数分析
  • DAMA学习笔记(十二)-数据质量
  • 查找项目中丢失脚本的物体
  • 支付宝开放平台竟出现一张神秘人脸!
  • 每日学术速递8.8
  • 【JVM基础12】——垃圾回收-说一下JVM有哪些垃圾回收器?
  • 进阶学习------linux运维读写执行权限
  • 视频循环存储的实现
  • 在centOS系统中使用docker部署Jenkins
  • Qt 将生成的exe文件自动复制到其它目录下
  • openwrt下,用iptable转发端口访问远程的SMB服务
  • JVM类加载中的双亲委派机制
  • 【OpenCV C++20 学习笔记】范围阈值操作
  • 【Material-UI】Checkbox组件:Indeterminate状态详解
  • 一文了解K8S(Kubernates)
  • 三星、小米和 OPPO设备实验室将采用Android设备流技术
  • 华为OD-D卷万能字符单词拼写
  • 顶象文字点选模型识别
  • C#如何将自己封装的nuget包引入到项目中
  • 数据结构(学习)2024.8.8(栈,队列)
  • 服务端开发常用知识(持续更新中)