修改wordpress数据库,优化大师是干什么的,wordpress建站教程书籍,做网站容易找工作吗Zabbix Proxy 
zabbix作为一个分布式监控系统(分布式监控解决方案)#xff0c;支持通过代理(proxy)收集zabbix agent的监控数据#xff0c;然后由zabbix proxy再把数据发送给zabbix server#xff0c;也就是zabbix proxy 可以代替zabbix server收集监控数据#xff0c;然后…Zabbix Proxy 
zabbix作为一个分布式监控系统(分布式监控解决方案)支持通过代理(proxy)收集zabbix agent的监控数据然后由zabbix proxy再把数据发送给zabbix server也就是zabbix proxy 可以代替zabbix server收集监控数据然后把数据汇报给zabbix server所以zabbix proxy可以在一定程度上分担了zabbix server的数据收集压力从而降低了数据的采集时间、也相应的增加了zabbix server的监控能力。 
zabbix proxy 是一个数据收集器它不计算触发器、不处理事件、不发送报警。所以最终导致告警延时可能会比较长。 
使用场景 
监控远程区域设备,尤其是多机房和多个云环境时 
监控网络不稳定区域,避免跨网段监控的告警不及时 
当需要监控设备众多时,使用它来减轻 Zabbix Server 的压力 
简化分布式监控的维护,无需各位创建 Zabbix Server,统一管理策略 
Zabbix Server和Zabbix Proxy 工作模式 
以proxy角度区分主动被动。 
proxy的主动被动和agent主动被动没有关系。 
主动模式推荐 
主动地向zabbix server周期性的申请获取zabbix agent的监控项信息此模式可以大幅降低Zabbix Server的压力。 
被动模式 
被动地等待zabbix server的连接并接受zabbix server发送的监控项指令然后再由zabbix proxy向zabbix agent发起请求获取数据 
端口 
默认端口10051 
实验 
Zabbix proxy的大版本必须要和Zabbix Server的版本相同不然会出问题。 
所有主机的主机名要唯一否则被动模式可能会影响数据采集。 Zabbix Server192.168.28.60Ubuntu2204ApacheMySQLZabbix Proxy Active192.168.28.61Ubuntu2204MySQL包安装Zabbix Proxy Passive192.168.28.62Ubuntu2204MySQL编译安装Zabbix Agent1192.168.28.41Rocky8.9Zabbix Agent2192.168.28.42Rocky8.9 
Zabbix Server 
[rootzbx-server ~]#apt -y install mysql-server
[rootzbx-server ~]#apt -y install language-pack-zh-hans
[rootzbx-server ~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4ubuntu22.04_all.deb  dpkg -i zabbix-release_6.0-4ubuntu22.04_all.deb  apt update  apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
[rootzbx-server ~]#mysqlmysql create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.00 sec)mysql create user zabbixlocalhost identified by Admin.123;
Query OK, 0 rows affected (0.00 sec)mysql grant all privileges on zabbix.* to zabbixlocalhost;
Query OK, 0 rows affected (0.00 sec)mysql set global log_bin_trust_function_creators  1;
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql quit;
Bye
[rootzbx-server ~]#zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-setutf8mb4 -uzabbix -p zabbix
Enter password:
[rootzbx-server ~]#mysqlmysql set global log_bin_trust_function_creators  0;
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql quit;[rootzbx-server ~]#vim /etc/zabbix/zabbix_server.conf
DBPasswordAdmin.123[rootzbx-server ~]#vim /etc/zabbix/apache.conf
php_value date.timezone Asia/Shanghai[rootzbx-server ~]#vim /etc/apache2/sites-enabled/000-default.conf
ServerAdmin wenzi.zabbix.com[rootzbx-server ~]#systemctl restart zabbix-server zabbix-agent apache2
[rootzbx-server ~]#systemctl enable zabbix-server zabbix-agent apache2 
1、Zabbix Proxy Active 
包安装 
[rootzbx-proxy-active ~]#apt -y install mysql-server
[rootzbx-proxy-active ~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4ubuntu22.04_all.deb
[rootzbx-proxy-active ~]#dpkg -i zabbix-release_6.0-4ubuntu22.04_all.deb
[rootzbx-proxy-active ~]#apt update
[rootzbx-proxy-active ~]#apt install zabbix-proxy-mysql zabbix-sql-scripts
[rootzbx-proxy-active ~]#mysql
mysql create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.00 sec)mysql create user zabbixlocalhost identified by Admin.123;
Query OK, 0 rows affected (0.00 sec)mysql grant all privileges on zabbix_proxy.* to zabbixlocalhost;
Query OK, 0 rows affected (0.00 sec)mysql set global log_bin_trust_function_creators  1;
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql quit;
Bye[rootzbx-proxy-active ~]#cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-setutf8mb4 -uzabbix -p zabbix_proxy
Enter password:
[rootzbx-proxy-active ~]#mysql
mysql set global log_bin_trust_function_creators  0;
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql quit
Bye-------------------------------------关键配置
[rootzbx-proxy-active ~]#vim /etc/zabbix/zabbix_proxy.conf
Server192.168.28.60
Hostnamezabbix-proxy1-active
DBPasswordAdmin.123[rootzbx-proxy-active ~]#systemctl restart zabbix-proxy
[rootzbx-proxy-active ~]#systemctl enable zabbix-proxyZabbix Proxy 配置文件说明 
ProxyMode0                         #主动模式为0被动模式为1,默认为0即主动模式
Server10.0.0.100                   #指向Zabbix Server
Hostnamezabbix-proxy-active        #主动模式此名称必须和后面Web管理页的agent代理程序名称相同#被动模式可以不一致
DBHostlocalhost                    #MySQL服务器地址
DBNamezabbix_proxy_active          #MySQL数据库名
DBUserproxy                        #连接MySQL的用户
DBPassword123456                   #连接MySQL的用户密码LogFile/var/log/zabbix/zabbix_proxy.log
LogFileSize0
DebugLevel4                        #指定日志级别默认为3值越大日志越详细
EnableRemoteCommands1              #开启远程命令允许server到proxy上执行命令在故障自愈时使用
PidFile/var/run/zabbix/zabbix_proxy.pid
SocketDir/var/run/zabbix
ProxyLocalBuffer360             #当proxy将数据发送给server后将数据仍在本地保存多少时间,默认不保留
ProxyOfflineBuffer720           #当proxy和server无法连接时将数据在本地保存多长时间,默认1小时
HeartbeatFrequency60            #server端用来检测proxy可用性的心跳信息的时间间隔,被动模式无效
ConfigFrequency60               #每间隔多少时间到server获取监控项在agent更新端监控项只在主动模式有效,默认3600s
DataSenderFrequency60           #数据发送的间隔时间只在主动模式有效,默认1s,建议加长
JavaGateway10.0.0.101           #指向JAVA gateway主机
StartJavaPollers10              #指定开启的进程数,默认为0即不开启
SNMPTrapperFile/var/log/snmptrap/snmptrap.log
CacheSize8M                      #当主机数量很多时会将获取的监控项存放在缓存中生产中设置2G
StartDBSyncers4                  #启动多少个线程和数据库连接
HistoryCacheSize16M              #保存agent发送过来的监控数据的内存空间大小生产中设置2G 
HistoryIndexCacheSize4M          #历史数据的索引
Timeout30                        #获取数据的最长等待时间
ExternalScripts/usr/lib/zabbix/externalscripts
LogSlowQueries3000               #慢查询时长 
1.1 Zabbix Agent1 
使用主动模式 
[rootzbx-agent1 ~]$rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
[rootzbx-agent1 ~]$dnf clean all
[rootzbx-agent1 ~]$dnf install zabbix-agent-------------------------------------关键配置
[rootzbx-agent1 ~]$vim /etc/zabbix/zabbix_agentd.conf
Server192.168.28.61
ServerActive192.168.28.61    
Hostnamezabbix-agent1[rootzbx-agent1 ~]$systemctl enable --now zabbix-agent.service 
Zabbix Agent 配置文件说明 
LogFile/tmp/zabbix_agentd.log
Server10.0.0.100,10.0.0.101         #指向Zabbix Server可选和Zabbix Proxy必
选
ServerActive10.0.0.101              #指向Zabbix Proxy
Hostname10.0.0.103                  #主动模式和web界面主机名称一致#被动模式可以不一致 
1.2 配置Zabbix Web 
浏览器访问 http://wenzi.zabbix.com/zabbix/ 
添加代理 此处代理名称和Zabbix Proxy配置文件中 Hostname保持一致 配置Agent1使用Proxy Active 
此处主机名称和Zabbix Agent配置文件中 Hostname保持一致 2 Zabbix Proxy Passive 
编译安装 
[rootzbx-proxy-passive ~]#apt update
[rootzbx-proxy-passive ~]#useradd zabbix
[rootzbx-proxy-passive ~]#apt -y install gcc make libxml2-dev libevent-dev libmysqlclient-dev libsnmp-dev libssh2-1-dev libcurl4-openssl-dev
[rootzbx-proxy-passive ~]#wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.27.tar.gz
[rootzbx-proxy-passive ~]#tar -xf zabbix-6.0.27.tar.gz -C /usr/local/
[rootzbx-proxy-passive ~]#cd /usr/local/zabbix-6.0.27/
[rootzbx-proxy-passive zabbix-6.0.27]#./configure --prefix/apps/zabbix_proxy --enable-proxy --with-agent --with-net-snmp --with-mysql --with-ssh2 --with-libcurl --with-libxml2
[rootzbx-proxy-passive zabbix-6.0.27]# ~]#make  make install
[rootzbx-proxy-passive zabbix-6.0.27]#vim /lib/systemd/system/zabbix-proxy.service
[Unit]
DescriptionZabbix Proxy
Aftersyslog.target
Afternetwork.target[Service]
EnvironmentCONFFILE/apps/zabbix_proxy/etc/zabbix_proxy.conf
EnvironmentFile-/etc/sysconfig/zabbix-proxy
Typeforking
Restarton-failure
PIDFile/tmp/zabbix_proxy.pid
KillModecontrol-group
ExecStart/apps/zabbix_proxy/sbin/zabbix_proxy -c $CONFFILE
ExecStop/bin/kill -SIGTERM $MAINPID
RestartSec10s
TimeoutSec0[Install]
WantedBymulti-user.target[rootzbx-proxy-passive ~]#apt -y install mysql-server
[rootzbx-proxy-passive ~]#mysql
mysql create database zabbix_proxy_passive character set utf8 collate utf8_bin;
Query OK, 1 row affected, 2 warnings (0.01 sec)mysql create user proxylocalhost identified by Admin.123;
Query OK, 0 rows affected (0.01 sec)mysql grant all on  zabbix_proxy_passive.* to proxylocalhost;
Query OK, 0 rows affected (0.00 sec)mysql set global log_bin_trust_function_creators  1;
Query OK, 0 rows affected, 1 warning (0.00 sec)[rootzbx-proxy-passive ~]#cd /usr/local/zabbix-6.0.27/  mysql -uproxy -pAdmin.123 zabbix_proxy_passive  database/mysql/schema.sql
[rootzbx-proxy-passive ~]#mysql
mysql set global log_bin_trust_function_creators  0;
Query OK, 0 rows affected, 1 warning (0.00 sec)-------------------------------------关键配置
[rootzbx-proxy-passive ~]#vim /apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode1
Server192.168.28.60
Hostnamezabbix-proxy2-passive    #此项无关web界面可以不改
DBNamezabbix_proxy_passive    
DBUserproxy
DBPasswordAdmin.123[rootzbx-proxy-passive ~]#systemctl daemon-reload
[rootzbx-proxy-passive ~]#systemctl enable --now zabbix-proxy.service2.1 Zabbix Agent2 
使用被动模式 
[rootzbx-agent2 ~]$vim /etc/zabbix/zabbix_agentd.conf
Server192.168.28.62
Hostnamezabbix_agent2    #此项无关web界面可以不改
[rootzbx-agent2 ~]$systemctl restart zabbix-agent.service2.2 配置Zabbix Web 
添加代理 
代理程序名称无需和配置文件Hostname保持一致 配置Agent2使用Proxy Passive 
主机名称无需和配置文件Hostname保持一致 最后zabbix web怎么搞都没看到检测数据过程应该没错后续解决。 Zabbix实现自动化 
APIApplication Programming Interface应用程序编程接口是一些预先定义的函数目的是提供应用程序与开发人员基于某软件或硬件得以访问一组功能的能力而又无需直接使用源代码或理解内部工作机制的细节。 
Zabbix API允许你以编程方式检索和修改Zabbix的配置并提供对历史数据的访问。广泛用于 
创建新的应用程序以使用Zabbix将Zabbix与第三方软件集成自动执行常规任务 
Zabbix API是基于Web的API作为Web前端的一部分提供。使用JSON-RPC 2.0协议这意味 
该API包含一组独立的方法客户端和API之间的请求和响应使用JSON格式进行编码 
官方文档19. API 
常用API 
user.login                          #用户登录
host.get(create|delete|update)      #主机操作
hostgroup.get(create|delete|update) #主机组操作
item.get(create|delete|update)      #监控项目操作
history.get                         #历史数据查询
event.get                           #事件查询
trigger.get                         #触发器查询 
API路径和Web服务器有关 
#如果是基于Nginx
http://${ZABBIX_SERVER}/api_jsonrpc.php 
#如果是基于Apache
http://${ZABBIX_SERVER}/zabbix/api_jsonrpc.php 
实验 
官方文档API部分有很多案例。 
获取Token一切操作的基础 
请求的 Content-Type 头部必须设置为以下值之一application/json-rpcapplication/json 或 application/jsonrequest。 
访问Zabbix内部的任何数据之前需要登录并获得身份验证令牌。 
[rootzbx-server ~]#cat zabbix-api-token.sh
#!/bin/bash
#********************************************************************
#FileName:     zabbix-api-token.sh
#Version:      1.0
#Date:         2024-03-08
#Author:       wenzi
#Description This is description
#********************************************************************#httpd
zabbix_serverhttp://wenzi.zabbix.com/zabbix
#nginx
#zabbix_serverhttp://wenzi.zabbix.com
userAdmin
passwordzabbixcurl -s -X POST -H Content-Type: application/json-rpc -d 
{
jsonrpc: 2.0,
method: user.login,
params: {
user: ${user},
password: ${password}
},
id: 1,
auth: null
} ${zabbix_server}/api_jsonrpc.php[rootzbx-server ~]#./zabbix-api-token.sh | jq
{jsonrpc: 2.0,result: 6c55fa45f2d903a117627b5a22188ec9,id: 1
} 
查询所有已配置主机的ID主机名接口 [rootzbx-server ~]#cat zabbix-api-gethost.sh
#!/bin/bash
#********************************************************************
#FileName:     zabbix-api-gethost.sh
#Version:      1.0
#Date:         2024-03-08
#Author:       wenzi
#Description This is description
#********************************************************************source ./zabbix-api-token.sh
token./zabbix-api-token.sh | awk -F  {print $8}curl -s -X POST -H Content-Type: application/json-rpc -d 
{jsonrpc: 2.0,method: host.get,params: {output: [hostid,host],selectInterfaces: [interfaceid,ip]},id: 2,auth: ${token}} ${zabbix_server}/api_jsonrpc.php[rootzbx-server ~]#./zabbix-api-gethost.sh  | jq
{jsonrpc: 2.0,result: a9f80171e010bcbdc58a3c3119544e08,id: 1
}
{jsonrpc: 2.0,result: [{hostid: 10084,host: Zabbix server,interfaces: [{interfaceid: 1,ip: 127.0.0.1}]},{hostid: 10620,host: ubuntu,interfaces: [{interfaceid: 46,ip: 192.168.28.62}]},{hostid: 10621,host: rocky,interfaces: [{interfaceid: 47,ip: 192.168.28.41}]}],id: 2
}