01-Zabbix监控快速入门
01-Zabbix监控快速入门
- 1、监控知识基本概述
- 1.1 什么是监控
- 1.2 为何需要监控
- 1.3 如何进行监控
- 2、单机时代如何监控
- 2.1 监控CPU
- 2.2 监控内存
- 2.3 监控磁盘
- 2.4 监控⽹络
- 2.5 监控TCP
- 2.6 监控脚本示例
- 3、常⻅的监控⽅案
- 3.1 Cacti
- 3.2 Nagios
- 3.3 Zabbix
- 3.4 Prometheus
- 3.5 商业监控⽅案
- 4、Zabbix系统概述
- 4.1 zabbix应⽤场景
- 4.2 zabbix发布频率
- 4.3 zabbix版本特性
- 4.4 zabbix功能组件
- 4.5 Zabbix逻辑架构
- 5、Zabbix7.x监控安装
- 5.0 Zabbix安装需求
- 5.1 配置YUM仓库
- 5.2 安装zabbix Server
- 5.3 安装并初始化数据库
- 5.4 配置Zabbix-Server
- 5.5 启动Zabbix server和agent
- 5.6 访问ZabbixWeb前端
- 6、Zabbix监控中⽂汉化
- 6.1 修改前端页面语言
- 6.2 替换字体并解决乱码
- 6.3 重载⻚⾯并验证字体
- 7、Zabbix添加Linux主机监控
- 7.1 环境准备
- 7.2 安装zabbix-agent2
- 7.3 配置zabbix-agent2
- 7.4 启动zabbix-agent2
- 7.5 配置Zabbix-web
- 8、Zabbix添加Windows主机监控
- 8.1 安装Zabbix-Agent2
- 8.2 启动Zabbix-Agent2
- 8.3 服务端测试取值
- 8.4 配置zabbix-Web
- 9、Zabbix数据库拆分
- 9.1 zabbix基础架构
- 9.2 拆分数据库环境准备
- 9.3 准备独立数据库
- 9.4 备份旧的数据库
- 9.5 恢复数据库
- 9.6 修改zabbix-Server
- 9.7 修改zabbix-web
1、监控知识基本概述
1.1 什么是监控
简单说,就是对系统不间断的进⾏监视,例如:
超市监控:
公路监控:
系统监控:
1.2 为何需要监控
监控是整个运维,乃⾄整个产品⽣命周期中,最为重要的⼀环。
1、监控能做到事前及时预警发现故障,事后提供详实的数据⽤于追查定位问题。
2、以图形化⽅式呈现当前系统状态,便于分析或评估系统性能状态;
3、当出现某些特定故障时,可⾃动化完成故障处理,也叫故障⾃愈;
1.3 如何进行监控
⽐如我们需要监控磁盘的使⽤率
-
如何查看磁盘使⽤率 df -h
-
监控磁盘的那些指标 block、inode、rate
-
如何获取具体的信息 df -h|awk ‘//$/{print $(NF-1)}’
-
获取的数值到达多少报警 80%
2、单机时代如何监控
2.1 监控CPU
通常监控CPU的使⽤率、以及CPU的饱和度;
-
监控CPU使⽤率: w、top、htop、glances
-
监控CPU饱和度:判断当前的系统负载,是否⼤于CPU核⼼数的2倍;
1、监控 CPU 使⽤率
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
#us ⽤户态: 跟⽤户的操作有关 35%
#sy 系统态: 跟内核的处理有关 60%
#id CPU空闲
2、监控CPU饱和度使⽤率,先获取当前1分钟的负载,然后除以CPU核⼼数的2倍,然后乘以100转为百分⽐
[root@zabbix-server01 ~]# uptime | awk -F ',' '{print $3}' | awk '{print$NF}'
0.00
# 获取CPU核⼼数
[root@zabbix-server01 ~]# nproc
2
# 计算当前CPU的饱和度
[root@zabbix-server01 ~]# stress --cpu 3 # 模拟压⼒测试
[root@zabbix-server01 ~]# np=$(echo $[ $(nproc) * 2 ])
[root@zabbix-server01 ~]# uptime | awk -F ',' '{print $3}' | awk -v core=$np '{print $NF / core * 100"%" }'
48.75%
2.2 监控内存
通常监控内存的使⽤率、以及内存的饱和度;
- 监控内存使⽤率: free
- 监控内存饱和度:当内存使⽤率⾼于80%,并且Swap使⽤超过5%
内存监控命令: free
[root@zabbix-server01 ~]# free -mtotal used free shared buff/cache available
Mem: 7908 1144 6580 17 443 6763
Swap: 5119 0 5119
# total:表示总内存
# user:表示已经使⽤的内存
# free:表示的是当前完全没有被程序使⽤的内存
# buffer/cache:表示缓冲和缓存使⽤的内存,在内存不够时,可以释放该内存供新的应⽤程序使⽤
# available:表示系统⽬前能提供给新应⽤程序使⽤的内存
计算内存的使⽤率,公式:内存使⽤率 =( 总内存 - 可⽤内存 / 总内存 *100 )
[root@zabbix-server01 ~]# free -m | awk '/^Mem/{print ($2-$NF)/$2*100}'
9.44359
2.3 监控磁盘
通常监控磁盘的使⽤率、以及磁盘IO吞吐、IOPS;
-
监控磁盘的使⽤率: df -h 、df -i
-
监控磁盘每秒的IO吞吐、IOPS: iostat、iotop (使⽤Prometheus会更加的⽅便)
1、监控磁盘的使⽤率
2、监控磁盘的IO吞吐、IOPS
[root@zabbix-server01 ~]# ls /dev/mapper/ -l
总用量 0
crw-------. 1 root root 10, 236 11月 27 20:34 control
lrwxrwxrwx. 1 root root 7 11月 27 20:34 rl-root -> ../dm-0
lrwxrwxrwx. 1 root root 7 11月 27 20:34 rl-swap -> ../dm-1
[root@zabbix-server01 ~]# yum install sysstat -y
[root@zabbix-server01 ~]# iostat
Linux 5.14.0-503.14.1.el9_5.x86_64 (zabbix-server01) 2024年11月27日 _x86_64_(4 CPU)avg-cpu: %user %nice %system %iowait %steal %idle0.43 0.01 1.11 0.20 0.00 98.26Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
dm-0 38.25 748.12 407.71 0.00 518799 282736 0
dm-1 0.14 3.20 0.00 0.00 2220 0 0
nvme0n1 39.85 764.13 410.67 0.00 529898 284784 0
sr0 0.08 3.02 0.00 0.00 2096 0 0
# tps: 每秒传输次数,即IOPS(输⼊/输出操作每秒),它反映了设备的I/O负载。
# kB_read/s: 每秒从设备读取的数据量,单位KB,千字节。
# kB_wrtn/s: 每秒向设备写⼊的数据量,单位KB,千字节。
# kB_dscd/s: 每秒丢弃的数据量,单位KB,千字节。(通常是0,因为绝⼤部分情况下不会丢弃数据)。
# kB_read: ⾃系统启动后从设备读取的总数据量,单位KB,千字节。
# kB_wrtn: ⾃系统启动后向设备写⼊的总数据量,单位KB,千字节。
# kB_dscd: ⾃系统启动后丢弃的总数据量,单位KB,千字节。
2.4 监控⽹络
通常监控⽹络的每秒传输的带宽: iftop -i eth0、ifconfig、glances
[root@ZabbixServer ~]# iftop
oldxu.net:https => 101.200.101.219:57456 0b 9.53Kb 6.11Kb<=
oldxu.net:https => 101.200.101.207:65254 0b 3.37Kb 1.12Kb
#中间的<= =>这两个左右箭头,表示的是流量的⽅向。
TX: cum: 170KB #发送流量
RX: 37.1KB #接收流量
TOTAL: 208KB #总的流量#如果单位为Mbps,换算为MB需要除以8,⽐如:100Mbps = 12MB
2.5 监控TCP
[root@zabbix-server01 ~]# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:10051 127.0.0.1:60377 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:50427 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:43145 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:41213 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:35433 TIME_WAIT
tcp 0 172 10.0.0.71:22 10.0.0.1:50087 ESTABLISHED
tcp 0 0 127.0.0.1:10051 127.0.0.1:45285 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:52999 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:33685 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:35277 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:33977 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:59189 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:43141 TIME_WAIT
tcp 0 0 127.0.0.1:10051 127.0.0.1:60469 TIME_WAIT
2.6 监控脚本示例
监控当前登录系统的在线⽤户数量,如果超过4则触发报警
-
1.如何提取⽤户数量
-
2.根据提取⽤户数量进⾏⽐对
-
3.如果⽐对成⽴,则触发警告,如果失败则进如下⼀轮监控
[root@ZabbixServer ~]# check_user_login.sh
for ip in {7..9}
dousers=$(ssh root@172.16.1.$ip "who|wc -l")if [ $users -ge 3 ];thenecho "报警通知 172.16.1.$ip"fi
done
3、常⻅的监控⽅案
3.1 Cacti
https://www.cacti.net/
主要通过SNMP对⽹络流量进⾏监控与分析,常⽤于在数据中⼼监控⽹络设备;
3.2 Nagios
https://www.nagios.org/
主要⽤来监控系统,也可以⾃定义Shell脚本来监控服务,可通过Web⻚⾯显示对象状态、⽇志、告警信息;
但对于⾃定义监控、分层告警、分布式等⽀持相对较薄弱;
3.3 Zabbix
https://www.zabbix.com/cn/
⽬前在传统环境下使⽤较多的开源监控软件,可横向扩展、⾃定义监控项、⽀持多种监控⽅式、可监控⽹络与服务等。
3.4 Prometheus
⽬前最为流⾏的监控⽅案,能监控节点、应⽤组件、业务组件、⽹络设备、⽹站响应时间、其次有专⻔的⾃动发现组件来⾃动监控Kubernetes的Pod、Service、Ingress等。且⽀持在服务端进⾏聚合、分析,展示等。
例如:计算CPU使⽤率的公式: (1 - CPU 空闲率) * 100 = CPU 使⽤率
语法: (1- avg(irate(node_cpu_seconds_total{mode=“idle”}[1m])) by (instance) ) * 100
3.5 商业监控⽅案
监控宝:https://www.jiankongbao.com/
听云:https://www.tingyun.com/
4、Zabbix系统概述
4.1 zabbix应⽤场景
Zabbix是企业级开源监控解决⽅案,⽀持实时监控数万台服务器、虚拟机和⽹络设备,采集百万级监控指标,Zabbix完全开源免费。
4.2 zabbix发布频率
-
Zabbix LTS (⻓期⽀持版本) 。Zabbix LTS版本在五年内为Zabbix⽤户提供⽀持服务,包括三年的全⾯⽀持(基础的、紧急的以及安全性上的问题)和两年的最低限度⽀持(仅限紧急的和安全性上的问题)。Zabbix LTS版本的发布将体现在版本号第⼀位数字的变动上。
-
Zabbix 标准版本发布(试⽤版)。 Zabbix标准版本将在全⾯⽀持(基础的、紧急的以及安全性上的问题)的六个⽉内为Zabbix⽤户提供⽀持服务,直到下⼀个Zabbix稳定版本发布。Zabbix标准版本会变动第⼆个版本号。
zabbix发布周期官网:https://www.zabbix.com/cn/life_cycle_and_release_policy
4.3 zabbix版本特性
Zabbix5.0
-
1、⽀持监控项预测试功能,及添加完监控项之后,可以⽴即获取监控项的取值结果;
-
2、在低级⾃动发现过程中可以过滤掉⼀些监控项、触发器、主机和图形等;
-
3、监控项键值限制提⾼,监控项键值的最⼤⻓度从256个字符增加到2048个字符;
-
4、使⽤ZabbixAgent2来替代ZabbixAgent
- 4.1 降低TCP连接数量;
- 4.2 使⽤go语⾔开发,集成了Agent所有的功能,并提供第三⽅的扩展插件;
-
…
Zabbix6.0
-
1、原⽣⽀持⾼可⽤,可直接开箱即⽤,⽆需借助第三⽅软件实现;
-
2、原⽣⽀持对Kubernetes集群的监控;
-
3、原⽣⽀持TLS/SSL⽹站证书监控、原⽣⽀持对域名的监控;
-
4、⽀持定制前端UI展示公司信息;
-
5、提升了ZabbixAgent2的性能,并优化了ZabbixAgent监控;
-
6、引⼊了更多的基础模板对系统进⾏监控;
-
7、SNMP发现和采集性能⼤幅度提升;
-
…
Zabbix7.0 在Zabbix6.0基础上引⼊了多项新特性,主要提升Zabbix的整体性能以及兼容性。
-
1、将最低⽀持的 PHP 版本设置为 8.0
-
2、将 MySQL 最⼤⽀持版本增加⾄ 8.2
-
3、将 MariaDB 最⼤⽀持版本增加到 11.0
-
4、改进了数据采集流程,减少了系统资源的消耗,提⾼了数据处理的效率。
-
5、对数据库交互进⾏了优化,减少了查询延迟,增强了⼤数据量处理的能⼒。
-
6、在 Kubernetes 集群状态模板中添加了⽤于 Kubelet 发现的节点标签和注释的过滤器
-
7、引⼊了更多通⽤的模板,⽅便对各种系统和服务进⾏快速监控部署。
-
更多重要的特性传送⻔:https://www.163.com/dy/article/ICT2BOTD0538I0ZK.html
4.4 zabbix功能组件
Zabbix 由⼏个主要的功能组件组成,其职责如下所示。
1、 ZabbixAgent :通常是部署在被监控的主机上,⽤于监控本地应⽤程序指标,并将到的指标发送给 Zabbix server。
2、 ZabbixServer : 是 Zabbix agent 向其报告可⽤性、系统完整性信息的核⼼组件;要⽤于存储所有配置信息、统计信息和操作信息的核⼼存储库。
3、 Database :所有配置信息以及 Zabbix 收集到的数据都被存储在数据库中。
4、 ZabbixWeb :基于Web界⾯操作ZabbixServer,该界⾯是 Zabbix server 的⼀部分,通常(但不⼀定)和 ZabbixServer 运⾏在同⼀台主机上。
5、 ZabbixProxy :可以替 ZabbixServer收集Agent的指标数据,降低ZabbixServer压⼒,但它属于可选部分;
4.5 Zabbix逻辑架构
-
ZabbixAgent (数据采集)–> ZabbixServer (数据分析|报警)–> 数据库(数据存储)<-- ZabbixWeb (数据展示)
-
ZabbixWeb 创建主机–>写⼊数据库<-- ZabbixServer 获取要监控的指标信息–>指挥 ZabbixAgent 获取数据;
5、Zabbix7.x监控安装
5.0 Zabbix安装需求
安装⼤⼩ | 监控指标数 | CPU核⼼数 | 内存 |
---|---|---|---|
⼩ | 1000 | 2 | 8 |
中 | 1万 | 4 | 16 |
大 | 10万 | 16 | 64 |
非常大 | 100万 | 32 | 96 |
5.1 配置YUM仓库
1、配置RockyLinux为国内的yum源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \-i.bak \/etc/yum.repos.d/rocky*.repo
dnf makecache
2、如果已经安装了Epel源,则需要禁⽤EPEL源中提供的Zabbix包,编辑配置⽂件 /etc/yum.repos.d/epel.repo ,并添加以下内容
# ⼿动修改
[root@zabbix-server01 ~]# vim /etc/yum.repos.d/epel.repo
[epel]
...
excludepkgs=zabbix*# sed修改
[root@zabbix-server01 ~]# sed -i '/^\[epel\]/a excludepkgs=zabbix*' /etc/yum.repos.d/epel.repo
3、下载zabbix源(注意这⾥虽然安装的是6.5,但是官⽹上写的是7.0抢先版,后期如果7.0正式发布了,修改下源的地址即可。)
[root@zabbix-server01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest.el9.noarch.rpm
[root@zabbix-server01 ~]# sed -i 's#repo.zabbix.com#mirrors.aliyun.com/zabbix#g' /etc/yum.repos.d/zabbix.repo
[root@zabbix-server01 ~]# yum clean all
[root@zabbix-server01 ~]# yum makecache
5.2 安装zabbix Server
安装Zabbix server,Web前端,agent
[root@zabbix-server01 ~]# yum install zabbix-server-mysql zabbix-sql-scripts zabbix-web-mysql zabbix-nginx-conf zabbix-selinux-policy zabbix-agent zabbix-agent2 -y
5.3 安装并初始化数据库
1、安装MySQL8.x数据库
[root@zabbix-server01 ~]# yum install mysql mysql-server -y
2、启动MySQL并加⼊开机⾃启动
[root@zabbix-server01 ~]# systemctl enable mysqld --now
3、创建Zabbix库,⽤户名、密码以及访问权限;
[root@zabbix-server01 ~]# mysql
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
3、导⼊初始架构和数据,系统将提示您输⼊新创建的密码。
[root@zabbix-server01 ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 zabbix -uzabbix -ppassword
4、导⼊数据库架构后禁⽤log_bin_trust_function_creators选项。
[root@zabbix-server01 ~]# mysql
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
5.4 配置Zabbix-Server
1、配置Zabbix-Server连接指定的数据库
[root@zabbix-server01 ~]# grep "^[a-Z]" /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/run/zabbix/zabbix_server.pid
SocketDir=/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
EnableGlobalScripts=0
2、配置Zabbix-Server前端访问域名,编辑配置⽂件 vim /etc/nginx/conf.d/zabbix.conf
[root@zabbix-server01 ~]# vim /etc/nginx/conf.d/zabbix.conf
# 替换为⾃⼰公司的域名
server {
...
listen 80;
server_name zabbix.oldxu.net;
...
}
5.5 启动Zabbix server和agent
[root@zabbix-server01 ~]# systemctl enable zabbix-server zabbix-agent2 nginx php-fpm
[root@zabbix-server01 ~]# systemctl start zabbix-server zabbix-agent2 nginx php-fpm
5.6 访问ZabbixWeb前端
1、访问zabbixWeb前端,进⾏初始化向导
2、登陆 ZabbixWeb ⻚⾯,默认⽤户名 Admin ,密码 zabbix
6、Zabbix监控中⽂汉化
6.1 修改前端页面语言
6.2 替换字体并解决乱码
1、检查zabbix字体存放⽬录
[root@zabbix-server01 ~]# rpm -ql zabbix-web |grep fonts
/usr/share/zabbix/assets/fonts
/usr/share/zabbix/assets/fonts/zabbix-icons.svg
/usr/share/zabbix/assets/fonts/zabbix-icons.ttf
/usr/share/zabbix/assets/fonts/zabbix-icons.woff
/usr/share/zabbix/assets/fonts/zabbix-icons.woff2
[root@zabbix-server01 ~]# ll /usr/share/zabbix/assets/fonts
总用量 196
lrwxrwxrwx. 1 root root 33 11月 24 21:51 graphfont.ttf -> /etc/alternatives/zabbix-web-font
-rw-r--r--. 1 root root 149851 11月 20 15:50 zabbix-icons.svg
-rw-r--r--. 1 root root 22072 11月 20 15:50 zabbix-icons.ttf
-rw-r--r--. 1 root root 11716 11月 20 15:50 zabbix-icons.woff
-rw-r--r--. 1 root root 9756 11月 20 15:50 zabbix-icons.woff2
[root@zabbix-server01 ~]# ll /etc/alternatives/zabbix-web-font
lrwxrwxrwx. 1 root root 49 11月 24 21:51 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu-sans-fonts/DejaVuSans.ttf
2、对默认字体进⾏替换(C盘->windows->fonts->复制 “微软雅⿊” 字体⾄桌⾯ )
[root@zabbix-server01 ~]# cd /usr/share/fonts/dejavu-sans-fonts/
[root@zabbix-server01 dejavu-sans-fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@zabbix-server01 dejavu-sans-fonts]# mv MSYH.TTC DejaVuSans.ttf
6.3 重载⻚⾯并验证字体
7、Zabbix添加Linux主机监控
7.1 环境准备
系统 | 外⽹IP(NAT) | 内⽹IP(LAN) | ⻆⾊ |
---|---|---|---|
RockyLinux9 | eth0:10.0.0.71 | eth1:172.16.1.71 | ZabbixServer |
RockyLinux9 | eth0:10.0.0.7 | eth1:172.16.1.7 | web01 |
7.2 安装zabbix-agent2
[root@Rocky ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/7.0/rocky/9/x86_64/zabbix-agent2-7.0.6-release1.el9.x86_64.rpm
7.3 配置zabbix-agent2
[root@Rocky ~]# vim /etc/zabbix/zabbix_agent2.conf
Server=172.16.1.71 # 配置Agent指向Server
7.4 启动zabbix-agent2
[root@Rocky ~]# systemctl enable zabbix-agent2.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service → /usr/lib/systemd/system/zabbix-agent2.service.
[root@Rocky ~]# netstat -lntp |grep 10050
tcp6 0 0 :::10050 :::* LISTEN 1572/zabbix_agent2
[root@Rocky ~]#
7.5 配置Zabbix-web
1、添加主机:数据采集–>主机–>创建主机
2、主机配置:
- 主机名称: web01
- 可⻅名称: web01-172.16.1.7
- 模板(提供了⼤量的监控项): Templates/Operating Systems–> Linux by Zabbix agent
- 主机群组(主机的分类): Linux Servers
- 接⼝(明确指定agent的地址和端⼝): 类型为Agent、地址、172.16.1.7
3、检查监控的结果
4、点击监测–>最新数据–>筛选对应的节点,查看对应的监控指标数据,是否能正常采集到
8、Zabbix添加Windows主机监控
8.1 安装Zabbix-Agent2
Zabbix-Agent2 For Windows 官⽅下载地址:https://www.zabbix.com/cn/download_agents?version=7.0+LTS&release=7.0.6&os=Windows&os_version=Any&hardware=amd64&encryption=OpenSSL&packaging=MSI&show_legacy=0
1、下载
# https://cdn.zabbix.com/zabbix/binaries/stable/7.0/7.0.6/zabbix_agent2-7.0.6-windows-amd64-openssl.msi
2、配置zabbix-agent,后期可以在 C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf 中进⾏配置修改
8.2 启动Zabbix-Agent2
2、调⽤cmd,执⾏ services.msc ,找到 Zabbix Agent2 ,然后启动该服务;
3、cmd运⾏,查看监听端⼝
C:\Users\24212>netstat -an|find "10050"TCP 0.0.0.0:10050 0.0.0.0:0 LISTENINGTCP [::]:10050 [::]:0 LISTENING
8.3 服务端测试取值
在Zabbix-Server服务端上,使⽤zabbix_get,探测对端主机的监控项是否有值;
[root@zabbix-server01 ~]# zabbix_get -s 10.0.0.220 -k system.uname
Windows DESKTOP-G7SF6EV 10.0.19042 Microsoft Windows 10 企业版 x64
8.4 配置zabbix-Web
1、添加主机:数据采集–>主机–>创建主机
2、主机配置:
- 主机名称: windows10
- 可⻅名称: windows10-10.0.0.220
- 模板(提供了⼤量的监控项): Templates/Operating Systems–> Windows by Zabbix agent
- 主机群组(主机的分类): Windows Servers
- 接⼝(明确指定agent的地址和端⼝): 类型为Agent、地址、10.0.0.220
3、数据采集–>主机–>检查监控的主机是否正常
4、点击监测–>最新数据–>筛选对应的Windows节点,查看对应的监控指标数据,是否能正常采集到
9、Zabbix数据库拆分
9.1 zabbix基础架构
zabbix-agent(数据采集)–>zabbix-server(数据分析|报警)–> 数据库(数据存储)<–zabbix web(数据展示)
Zabbix单台服务: LNMP+Zabbix
Zabbix数据拆分: LNP+MySQL (修改如下两个⽂件中连接数据库的配置信息)
-
/etc/zabbix/zabbix_server.conf
-
/etc/zabbix/web/zabbix.conf.php
9.2 拆分数据库环境准备
系统 | 外⽹IP(NAT) | 内⽹IP(LAN) | ⻆⾊ |
---|---|---|---|
RockyLinux9 | eth0:10.0.0.71 | eth1:172.16.1.71 | Zabbix-Server |
RockyLinux9 | eth0:10.0.0.75 | eth1:172.16.1.75 | MySQL |
9.3 准备独立数据库
1、安装MySQL
[root@zabbix-database ~]# yum install mysql mysql-server -y
[root@zabbix-database ~]# systemctl enable mysqld --now
# 防火墙开放3306端口
# 服务器关闭selinux
# 其他监控机器开放10050端口,windows机器开放防火墙端口,看service.msc里面zabbix-agent2进程是否正在运行
2、创建对应的库
[root@zabbix-server01 ~]# mysql
mysql>
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'%' identified by 'password';
mysql> grant all privileges on zabbix.* to 'zabbix'@'%';
mysql> quit;
9.4 备份旧的数据库
[root@ZabbixServer ~]# mysqldump -uroot --databases zabbix > zabbix.sql
9.5 恢复数据库
⽅式1、推送sql⽂件,⽽后在数据库节点本地执⾏恢复
[root@zabbix-server01 ~]# scp zabbix.sql root@172.16.1.75:~
[root@zabbix-database ~]# mysql -B zabbix < zabbix.sql
⽅式2、直接通过远程的⽅式进⾏数据库恢复
[root@zabbix-server01 ~]# cat zabbix.sql |mysql -h 172.16.1.75 -uzabbix -ppassword
9.6 修改zabbix-Server
1、修改 /etc/zabbix/zabbix_server.conf 配置⽂件中数据库连接信息
[root@zabbix-server01 ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=172.16.1.75
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
2、重启zabbix-server服务
[root@zabbix-server01 ~]# systemctl restart zabbix-server
9.7 修改zabbix-web
1、修改 /etc/zabbix/web/zabbix.conf.php 配置⽂件中数据库连接信息
[root@zabbix-server01 ~]# vim /etc/zabbix/web/zabbix.conf.php
// Zabbix GUI configuration file.
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '172.16.1.75';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'zabbix';
2、重启nginx与php服务
[root@zabbix-server01 ~]# systemctl restart nginx php-fpm
3、最后测试验证
相关文章:
01-Zabbix监控快速入门
01-Zabbix监控快速入门 1、监控知识基本概述1.1 什么是监控1.2 为何需要监控1.3 如何进行监控 2、单机时代如何监控2.1 监控CPU2.2 监控内存2.3 监控磁盘2.4 监控⽹络2.5 监控TCP2.6 监控脚本示例 3、常⻅的监控⽅案3.1 Cacti3.2 Nagios3.3 Zabbix3.4 Prometheus3.5 商业监控⽅…...
docker 怎么启动nginx
在Docker中启动Nginx容器是一个简单的过程。以下是启动Nginx容器的步骤: 拉取Nginx镜像: 首先,你需要从Docker Hub拉取Nginx的官方镜像。使用以下命令: docker pull nginx运行Nginx容器: 使用docker run命令来启动一个…...
1-1 Gerrit实用指南
注:学习gerrit需要拥有git相关知识,如果没有学习过git请先回顾git相关知识点 黑马程序员git教程 一小时学会git git参考博客 git 实操博客 1.0 定义 Gerrit 是一个基于 Web 的代码审查系统,它使用 Git 作为底层版本控制系统。Gerrit 的主要功…...
数据库深入(学习笔记)
多表查询 概述: 多表查询:指从多张表中查询数据笛卡尔积:笛卡尔积是指在数学中,两个集合(A集合,B集合)的所有组合情况。 分类: 连接查询 内连接:相当于查询A、B交集部分数据 隐式内连接:sele…...
PostgreSQL17.x创建数据库及数据库信息查看命令
PostgreSQL17.x创建数据库及数据库信息查看命令 文章目录 PostgreSQL17.x创建数据库及数据库信息查看命令1.创建数据库1. 使用 SQL 命令创建数据库2. 创建数据库并指定字符集3. 验证数据库是否创建成功3. 远程连接1. 修改 PostgreSQL 配置文件2. 修改客户端认证配置4. 指定某个…...
Canal mysql数据库同步到es
Canal与Elasticsearch集成指南 [可视化工具](https://knife.blog.csdn.net/article/details/126348055)下载Canal 1.1.5版本 (alpha-2) 请从GitHub Releases下载Canal 1.1.5版本中间版本alpha-2。仅需下载canal.deployer和canal.adapter组件。 安装Elasticsearch 确保已安装…...
React 前端框架1
一、React 简介 (一)什么是 React React 是一个用于构建用户界面的 JavaScript 库,由 Facebook 开源并维护。它采用了组件化的开发思想,允许开发者将复杂的 UI 拆分成一个个独立、可复用的小组件,就如同搭积木一般&am…...
什么是Batch Normalization?
一、概念 Batch Normalization是在2015年提出的数据归一化方法,主要用在深度神经网络中激活层之前。它的主要作用是加快模型训练时的收敛速度,使模型训练过程更加稳定,避免梯度爆炸或消失,并起到一定的正则化作用,有时…...
rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable
解决方法: 1、先测量pcf8563电源电压,是否满足要求。 2、pcf8563首次操作。第一次读取pcf8563的时间,未初始化,非法,芯片门槛电压检测配置不合理。使用hwclock命令写入一次,即可解决。 hwclock -f /dev/…...
tauri下的两个常用rust web框架:Leptos和Trunk
tauri下有两个常用rust web框架,就是Leptos和Trunk Leptos Leptos 是一个基于 Rust 的 Web 框架。您可以在他们的官方网站上了解更多关于 Leptos 的信息。本指南适用于 Leptos 的 0.6 版本。 Leptos Leptos 是一个用 Rust 编写的现代、高效且安全的 Web 框架。它…...
vscode + conda + qt联合开发
安装vscode 安装conda 清华大学开源软件镜像(Anaconda下载)_清华大学镜像-CSDN博客 conda create新建一个环境,激活这个环境,然后安装pyside6 pip install pyside6 -i https://pypi.tuna.tsinghua.edu.cn/simple 安装成功后输入 pip list查看是否安装…...
mac终端自定义命令打开vscode
1.打开终端配置文件 open -e ~/.bash_profile终端安装了zsh,那么配置文件是.zshrc(打开zsh配置,这里举🌰使用zsh) sudo open -e ~/.zshrc 2.在zshrc配置文件中添加新的脚本(这里的code就是快捷命令可以进…...
关于单片机的原理与应用!
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///目前正在学习C😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于单片…...
【手术显微镜】市场高度集中,由于高端手术显微镜的制造技术主要掌握于欧美企业
摘要 HengCe (恒策咨询)是全球知名的大型咨询机构,长期专注于各行业细分市场的调研。行业层面,重点关注可能存在“卡脖子”的高科技细分领域。企业层面,重点关注在国际和国内市场在规模和技术等层面具有代表性的企业,…...
速盾高防cdn支持移动端独立缓存
随着移动互联网的快速发展,移动端网页访问量也越来越大。然而,移动端的网络环境相对不稳定,用户体验可能会受到影响。因此,使用高防CDN来加速移动端网页访问,成为越来越多网站运营者的首选。 速盾高防CDN是一种分布式…...
java中的运算符
大家好,今天来看看java中运算符的一些知识点,理解好运算符是我们在写代码的一大重点,那么我们就来看看吧。 运算符:对操作数进行操作时的符号.,不同运算筹操作的含义不同. 一、算术算片. 1、基本四则运算符:加减乘除模(一*/%) 注意:都是二元…...
视频流媒体服务解决方案之Liveweb视频汇聚平台
一,Liveweb视频汇聚平台简介: LiveWeb是深圳市好游科技有限公司开发的一套综合视频汇聚管理平台,可提供多协议(RTSP/RTMP/GB28181/海康Ehome/大华,海康SDK等)的视频设备接入,支持GB/T28181上下级联…...
什么是六边形图?
什么是六边形图?) 为什么用六边形图?六边形图的构造原理如何绘制六边形图?(代码示例)结果解读总结 六边形图是一种特殊的二维数据可视化方法,用来展示两个变量之间的关系。它用许多小的六边形&a…...
淘宝天猫API接口探索:店铺商品全览与拍立淘图片搜索实战
在当今的电商时代,淘宝和天猫作为两大巨头,为开发者提供了丰富的API接口,以实现与平台的数据交互。本文将带您探索如何使用淘宝天猫的API接口来获取店铺所有商品列表,以及如何通过拍立淘(图片搜索)功能找到…...
.net6.0 mvc 传递 model 实体参数(无法对 null 引用执行运行时绑定)
说一下情况: 代码没问题,能成功从数据库里查到数据,能将数据丢给ViewBag.XXXX, 在View页面也能获取到 ViewBag.XXXX的值,但是发布到线上后报这个错: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 …...
电子电气架构 --- 面向服务的汽车诊断架构
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…...
困扰解决:mfc140u.dll丢失的解决方法,多种有效解决方法全解析
当电脑提示“mfc140u.dll丢失”时,这可能会导致某些程序无法正常运行,给用户带来不便。不过,有多种方法可以尝试解决这个问题。这篇文章将以“mfc140u.dll丢失的解决方法”为主题,教大家有效解决mfc140u.dll丢失。 判断是否是“mf…...
OpenCV_Code_LOG
孔洞填充 void fillHole(const Mat srcBw, Mat &dstBw) {Size m_Size srcBw.size();Mat TempMat::zeros(m_Size.height2,m_Size.width2,srcBw.type());//延展图像srcBw.copyTo(Temp(Range(1, m_Size.height 1), Range(1, m_Size.width 1)));cv::floodFill(Temp, Point(…...
【python】OpenCV—Tracking(10.5)—dlib
文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、涉及到的库函数dlib.correlation_tracker() 6、参考 1、功能描述 基于 dlib 库,实现指定类别的目标检测和单目标跟踪 2、代码实现 caffe 模型 https://github.com/MediosZ/MobileNet-SSD/tree/master/…...
音视频入门基础:MPEG2-TS专题(9)——FFmpeg源码中,解码TS Header的实现
一、引言 FFmpeg源码对MPEG2-TS传输流/TS文件解复用时,在通过read_packet函数读取出一个transport packet后,会调用handle_packet函数来处理该transport packet: static int handle_packets(MpegTSContext *ts, int64_t nb_packets) { //..…...
React 自定义钩子:useOnlineStatus
我们今天的重点是 “useOnlineStatus” 钩子,这是 React 自定义钩子集合中众多精心制作的钩子之一。 Github 的:https://github.com/sergeyleschev/react-custom-hooks import { useState } from "react" import useEventListener from &quo…...
【C++】vector
vector 是一种容器,广泛存在于多种编程语言中,如 C、Rust、Java 等。它是一种动态数组,可以存储任意类型的元素,并且可以根据需要自动调整大小。下面我将详细介绍 vector 的概念和使用方法,主要以 C 中的 std::vector …...
海外centos服务器如何更换yum镜像源
今天遇到一个海外服务器,需要更新yum源,发现使用国内的(阿里云,腾讯云,华为云等),都无法实现,正常更新,主要问题还是服务器的网络无法访问国内的,所以,本章教程,记录一下,我验证过的方法。 1、备份或删除 源已经停止维护了,也可以将其直接删除,也不会有影响。如…...
go和python的遍历对比
Go 和 Python 都有强大的循环控制结构,但它们在实现和行为上有所不同,特别是关于索引变量的管理、迭代器的使用以及如何在循环中修改循环变量。以下是 Go 和 Python 循环的详细差异分析: 1. 循环类型: Go: Go 使用 …...
ML 系列:第 37 节 — 统计中的估计
文章目录 一、说明二、统计学中估计的目的三、统计学中的估计类型四、什么是点估计量?4.1 基本概念4.2 点估计量的性质4.3 点估计与区间估计4.4 寻找点估计的常用方法 五、区间估计5.1 什么是区间估计?5.1.1 置信区间5.1.2 预测区间5.1.3 容差区间Tolera…...
四、初识C语言(4)
一、作业:static修饰局部变量 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> //作业:static修饰局部变量 int sum (int a) {int c 0;static int b 3;c 1;b 2;return (abc); } int main() {int i 0;int a …...
不同云计算网络安全等级
导读云计算的本质是服务,如果不能将计算资源规模化/大范围的进行共享,如果不能真正以服务的形式提供,就根本算不上云计算。 等级保护定级流程 定级是开展网络安全等级保护工作的 “基本出发点”,虚拟化技术使得传统的网络边界变…...
基于深度学习的甲状腺结节影像自动化诊断系统(PyQt5界面+数据集+训练代码)
随着医学影像技术的发展,计算机辅助诊断在甲状腺结节的早期筛查中发挥着重要作用。甲状腺结节的良恶性鉴别对临床治疗具有重要意义,但传统的诊断方法依赖于医生的经验和影像学特征,存在一定的主观性和局限性。为了解决这一问题,本…...
Codigger Desktop:多样 Look 设计,全新 Game Look 带来趣味体验
Codigger Desktop提供了多种不同的Look设计,以满足用户的不同需求和偏好。包括Keyboard Look、Value Look、Game Look、Location Look、Size Look、Stage Look和Tile Look。 Keyboard Look:提供类似键盘布局的界面设计,方便用户快速访问常用功…...
redis下载、基础数据类型、操作讲解说明,持久化、springboot整合等
1 Redis是什么 官网:https://redis.io 开发者:Antirez Redis诞生于2009年全称是Remote Dictionary Server 远程词典服务器,是一个基于内存的键值型NoSQL数据库。 Redis是一个开源的、高性能的键值对存储系统,它支持多种数据结构&…...
原生js上传图片
无样式上传图片 创建一个 FormData 对象:这个对象可以用于存储数据。 将文件添加到 FormData 对象:通过 append() 方法,将用户选择的文件添加到 formData 对象中。 使用 fetch 发送请求:使用 fetch API 或者其他方法将 FormDat…...
【SpringBoot+Vue】x-admin管理系统跟做
技术栈 前端技术说明Vue前端框架Vuex全局状态管理框架ElementUI前端UI框架Axios前端HTTP框架vue-element-admin项目脚手架 后端技术说明SpringBoot容器MVC框架MyBatisORM框架MyBatis-plusMyBatis增强工具Redis非关系型数据库 数据库准备 SET NAMES utf8mb4; SET FOREIGN_KE…...
计算机网络 —— HTTP 协议(详解)
前一篇文章:网页版五子棋—— WebSocket 协议_网页可以实现websocket吗-CSDN博客 目录 前言 一、HTTP 协议简介 二、HTTP 协议格式 1.抓包工具的使用 2.抓包工具的原理 3.抓包结果 4.HTTP协议格式总结 三、HTTP 请求 1. URL (1)UR…...
MacOS 配置github密钥
MacOS 配置github密钥 1. 生成GitHub的SSH密钥对 ssh-keygen -t ed25519 -C "xxxxxxx.com" -f ~/.ssh/id_ed25519_github 其中 xxxxxxxxxxx.com 是注册github、gitee和gitlab的绑定账号的邮箱 -t ed25519:生成密钥的算法为ed25519(ed25519比rsa速度快&…...
我的第一个创作纪念日 —— 梦开始的地方
前言 时光荏苒,转眼间,我已经在CSDN这片技术沃土上耕耘了365天 今天,我迎来了自己在CSDN的第1个创作纪念日,这个特殊的日子不仅是对我过去努力的肯定,更是对未来持续创作的激励 机缘 回想起初次接触CSDN,那…...
float globalMapVIsualizationLeafSize; 的中文意思是什么
1.在visual studio 中新建文件 没有包含#include <string>头文件,也可以使用 str2.append(", C");吗? 在 Visual Studio 或任何其他 C 开发环境中,即使新建的文件中没有显式包含 #include <string> 头文件,…...
合规性要求对漏洞管理策略的影响
讨论漏洞管理中持续面临的挑战,包括确定漏洞的优先级和解决修补延迟问题。 介绍合规性要求以及自动化如何简化漏洞管理流程。 您认为为什么尽管技术不断进步,但优先考虑漏洞和修补延迟等挑战仍然存在? 企业基础设施日益复杂,攻…...
【Delphi】modbus-TCP 协议库
在日常开发中,也会遇到使用modbus的部件,比如温度控制器、读卡器等等,那么使用Delphi开发,也就必须遵守modbus-TCP协议,如果自己使用TCP控件写也没有问题,不过如果有开源的三方库,别人已经调试过…...
乐橙云小程序插件接入HbuilderX
乐橙插件使用: 1.配置app.json文件,uniapp中在mainfest.json中配置 https://uniapp.dcloud.net.cn/collocation/manifest.html#mp-weixin ** 2、集成插件页面.json文件 ** uniapp在 pages.json 对应页面的 style -> usingComponents 引入组件&…...
Python世界:复制粘贴?没那么简单!浅谈深拷贝与浅拷贝
Python世界:复制粘贴?没那么简单!浅谈深拷贝与浅拷贝 问题引入切片拷贝是深还是浅?深拷贝和浅拷贝到底有啥区别?本文小结 问题引入 Python实现中,最近遇到个小问题,对其中的拷贝理解更深了些&a…...
vue3实现el-table的拖拽
我这里使用的是 sortablejs 插件; 安装命令: npm install sortablejs --save 注意点: 你的表格数据中要有id作为key去使用; <div class"draggable"><el-table row-key"id" :data"form.tableData" style"width: 100%" max-…...
Apache SSI 远程命令执行漏洞
目录 1、漏洞描述 2、访问页面 3、dirsearch工具爆破出上传目录 编辑 4、登录后台 5、上传shell.shtml一句话木马文件 6、拿到flag 1、漏洞描述 在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持&a…...
高效集成:将聚水潭数据导入MySQL的实战案例
聚水潭数据集成到MySQL:店铺信息查询案例分享 在数据驱动的业务环境中,如何高效、准确地实现跨平台的数据集成是每个企业面临的重要挑战。本文将聚焦于一个具体的系统对接集成案例——将聚水潭的店铺信息查询结果集成到MySQL数据库中,以供BI…...
Elasticsearch面试内容整理-面试注意事项
在准备 Elasticsearch 面试时,除了掌握技术知识外,还需要注意如何有效展示你的技能和经验。以下是一些 Elasticsearch 面试的注意事项和建议: 掌握基础概念 在面试中,面试官通常会首先评估你对 Elasticsearch 基础概念的理解,包括集群架构、分片、副本、节点类型等。这些是…...
学习threejs,使用specularMap设置高光贴图
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.MeshPhongMaterial高…...