Linux下zabbix_proxy实施部署
简介
zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.
zabbix-agent可以指向多个proxy或者server
zabbix-proxy不能指向多个server
zabbix proxy 使用场景:
1,监控远程区域设备
2,监控本地网络不稳定区域
3,当 zabbix 监控上千设备时,使用它来减轻 server 的压力
4,简化分布式监控的维护
1,安装mysql
1.1,创建用户
groupadd mysql
useradd -r -g mysql mysql
1.2,上传,解压安装包,并做软链接
tar zxf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
cd /usr/local/
mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql-5.7.31
ln -s mysql-5.7.31 mysql
1.3,编辑配置文件
cp /etc/my.cnf{,.bak}
cat >/etc/my.cnf<<\EOF[client]
port = 3306
socket = /data/3306/dbdata/mysql.sock[mysqldump]
quick
max_allowed_packet = 16M[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M[mysqld]
#=========================>[mysql Base]<=====================
skip_name_resolve
basedir = /usr/local/mysql
datadir = /data/3306/dbdata
socket = /data/3306/dbdata/mysql.sock
user = mysql
bind-address = 0.0.0.0
port = 3306
innodb_file_per_table = ON
default-storage-engine = InnoDB
character-set-server = utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
interactive_timeout = 28800
wait_timeout = 28800
# transaction_isolation = REPEATABLE-READ
# skip-networking
# lower_case_table_names = 1
# skip-grant-tables
# skip-external-locking#========================>[mysql log related]<===============
log_bin = /data/3306/binlog/mysql-bin
binlog_format = mixed
expire_logs_days = 3
slow_query_log = 1
long_query_time = 1.5
slow_query_log_file = /data/3306/slowlog/mysql-slow.log
#general_log = ON
#general_log_file = /data/3306/slowlog/sql.log#========================>[ mysql Replication]<================
log_slave_updates = true
master-info-repository = TABLE
relay_log_info_repository = TABLE
relay_log = /data/3306/relaylog/relay-bin
relay_log_purge = OFF
sync_master_info = 1
sync_binlog = 1
slave_parallel_workers = 2
binlog_checksum = CRC32
master_verify_checksum = 1
slave_sql_verify_checksum = 1
binlog_rows_query_log_events = 1
server-id = 1
report_port = 3306
report_host = nlpt252-zabbix-mysql
replicate_wild_ignore_table=test.%
replicate_wild_ignore_table = information_schema.%
slave-skip-errors=1022,1032,1062
#read_only = 1#========================>[mysql perfomance]<===============
back_log = 600
max_connections = 3000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 16M
binlog_cache_size = 32768
max_heap_table_size = 1024M
tmp_table_size = 128M
join_buffer_size = 16M
sort_buffer_size = 16M
read_rnd_buffer_size = 8M
read_buffer_size = 4M
thread_cache_size = 64
# query_cache_type = OFF
# query_cache_size = 8M
# query_cache_limit = 2M
key_buffer_size = 256M#======================>[mysql storage-engine]<==============
# InnoDB使用一个缓冲池来保存索引和原始数据, 不像MyISAM.
# 这里你设置越大,你在存取表里面数据时所需要的磁盘I/O越少.
# 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的80%
# 不要设置过大,否则,由于物理内存的竞争可能导致操作系统的换页颠簸.
# 注意在32位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制,
# 所以不要设置的太高.
innodb_buffer_pool_size = 2G
innodb_open_files = 1000# innodb使用后台线程处理数据页上的读写 I/O(输入输出)请求,根据你的 CPU 核数来更改,默认是4
innodb_write_io_threads = 4
innodb_read_io_threads =4
innodb_thread_concurrency = 0
innodb_purge_threads = 2
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 16M
EOF
1.4,创建所需的目录
mkdir -p /data/3306/{dbdata,logs,binlog,tmp,lib,undolog,relaylog,slowlog}
1.5,初始化mysql
cd /usr/local/mysql-5.7.31
bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/data/3306/dbdata --user=mysql
输出的最后一行 root@localhost: i#g0auLF17vW ----默认root密码
1.6,授权,添加环境变量
chown -R mysql.mysql /usr/local/mysql/*
chown -R mysql.mysql /data/3306/
echo "export PATH=$PATH:/opt/mysql/bin" >> /root/.bash_profile
source ~/.bash_profile
1.7,做启动项
ln -s /usr/local/mysql/bin/mysql /usr/bin
cp /usr/local/mysql-5.7.31/support-files/mysql.server /etc/init.d/mysql
#修改启动项
vim /etc/init.d/mysqlbasedir=/usr/local/mysql
datadir=/data/3306/dbdata
chmod +x /etc/init.d/mysql
chkconfig --add mysql
service mysql start
1.8,登录mysql,修改密码,创建用户和库
mysql -uroot -p
#修改密码
set password=password('zbx2013');
flush privileges;
#创建用户和建库
create database zabbix_proxy character set utf8 collate utf8_bin;
create user 'zabbix_proxy'@'%' identified by 'Zbxpass';
grant all privileges on zabbix_proxy.* to 'zabbix_proxy'@'%';
flush privileges;
quit;
2,安装zabbix_proxy
2.1,解压,并创建用户
cd /usr/local/
tar zxvf zabbix-5.0.5.tar.gz
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
2.2,进去到导入数据
#进到数据的目录下
cd /usr/local/zabbix-5.0.5/database/mysql
登录mysql,并导入数据
mysql -uroot -p
use zabbix_proxy;
source schema.sql;
2.3,安装依赖包
yum -y install gcc libxml2-devel unixODBC-devel net-snmp-devel libcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel libevent libevent-devel
2.4,编译并安装
cd /usr/local/zabbix-5.0.5/
#编译
./configure --prefix=/usr/local/zabbix_proxy \--enable-server \--enable-agent \--enable-proxy \--with-mysql \--enable-ipv6 \--with-net-snmp \--with-libcurl \--with-libxml2 \--with-unixodbc \--with-ssh2 \--with-openipmi \--with-openssl
#安装
make install
2.5,编辑配置文件
cp /usr/local/zabbix_proxy/etc/zabbix_proxy.conf{,.bak}
cat >/usr/local/zabbix_proxy/etc/zabbix_proxy.conf<<\EOF
Server=10.135.81.4 #zabbix-server的地址
ServerPort=10051
Hostname=XXXXX #主机名
LogFile=/usr/local/zabbix_proxy/logs/zabbix_proxy.log
LogFileSize=1 #日志文件超过 1M 就进行切割。值为 0时表示不切割日志。 默认为 1
PidFile=/usr/local/zabbix_proxy/zabbix_proxy.pid
SocketDir=/usr/local/zabbix_proxy
DebugLevel=3
DBHost=10.135.82.3 #数据库主机
DBName=zabbix_proxy #数据库用户名
DBUser=zabbix_proxy #数据库用户名
DBPassword=Zbxpass@2023 #数据库密码
DBPort=3306 #数据库端口
DBSocket=/data/3306/dbdata/mysql.sock
ConfigFrequency=60
StartPollers=50
Timeout=30 #指定时间内,agent没把监控项的数据返回则超时
LogSlowQueries=3000
StartDiscoverers=5
CacheSize=4G #保存监控项而占用的最大内存
HistoryCacheSize=1G #历史数据缓存大小;尽量大的分配空间
StartPollersUnreachable=20
UnreachablePeriod=60
DataSenderFrequency=70 #主动模式下,proxy间隔多长时间向server发送数据;单位秒,范围1-3600
EOF
2.6,授权
chown -R zabbix.zabbix /usr/local/zabbix_proxy
2.7,添加启动项,并启动
cat >/usr/lib/systemd/system/zabbix-proxy.service<<\EOF
[Unit]
Description=Zabbix Proxy
After=syslog.target
After=network.target[Service]
User=zabbix
Group=zabbix
Environment="CONFFILE=/usr/local/zabbix_proxy/etc/zabbix_proxy.conf"
Type=forking
Restart=on-failure
PIDFile=/usr/local/zabbix_proxy/zabbix_proxy.pid
KillMode=control-group
ExecStart=/usr/local/zabbix_proxy/sbin/zabbix_proxy -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0[Install]
WantedBy=multi-user.targetEOF
#加载
systemctl daemon-reload
#启动
systemctl start zabbix-proxy
#开机自启
systemctl enable zabbix-proxy
systemctl status zabbix-proxy
2.8,在页面配置
相关文章:

Linux下zabbix_proxy实施部署
简介 zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力. zabbix-agent可以指向多个proxy或者server zabbix-proxy不能指向多个server zabbix proxy 使用场景: 1,监控远程区…...

Rust之错误处理(二):带结果信息的可恢复错误
开发环境 Windows 10Rust 1.67.1VS Code 1.75.1项目工程 这里继续沿用上次工程rust-demo 带结果信息的可恢复错误 大多数错误并没有严重到需要程序完全停止的程度。有时,当一个函数失败时,它的原因是你可以很容易地解释和应对的。例如,如…...

[ vulhub漏洞复现篇 ] Drupal Core 8 PECL YAML 反序列化任意代码执行漏洞(CVE-2017-6920)
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
如何将数据库结构导入到word
在navicat执行查询语句 SELECT COLUMN_NAME 备注, COLUMN_COMMENT 名称, COLUMN_TYPE 数据类型, false as 是键 FROM INFORMATION_SCHEMA.COLUMNS where -- wx 为数据库名称,到时候只需要修改成你要导出表结构的数据库即可 table_schema yuncourt_ai AND -- articl…...

FreeRTOS内存管理 | FreeRTOS十五
目录 说明: 一、FreeRTOS内存管理 1.1、动态分配与用户分配内存空间 1.2、标准C库动态分配内存缺点 1.3、FreeRTOS的五种内存管理算法优缺点 1.4、heap_1内存管理算法 1.5、heap_2内存管理算法 1.6、heap_3内存管理算法 1.7、heap_4内存管理算法 1.8、hea…...

【数字电路】数字电路的学习核心
文章目录前言一、电子电路知识体系二、数电的学习目标三、数字电路分析例子四、数字电路设计例子总结前言 用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。现代…...

day45【代码随想录】动态规划之完全平方数、单词拆分、打家劫舍、打家劫舍 II
文章目录前言一、完全平方数(力扣279)二、单词拆分(力扣139)三、打家劫舍(力扣198)四、打家劫舍 II前言 1、完全平方数 2、单词拆分 3、打家劫舍 4、打家劫舍 II 一、完全平方数(力扣279&#…...

java程序,springboot程序 找不到主类,找不到符号解决思路
文章目录问题解决方案一.可以尝试clean掉maven依赖,然后重新启动二.右键工程,选择maven然后重新加载工程,接着再启动试试三.删掉工程中的services.iml文件,重新配置后接着再启动试试四. 终极方案清除idea缓存,重启idea…...

AntD-tree组件使用详析
目录 一、selectedKeys与onSelect 官方文档 代码演示 onSelect 注意事项 二、expandedKeys与onExpand 官方文档 代码演示 onExpand 注意事项 三、loadedKeys与onLoad和onExpand 官方文档 代码演示 onExpand与onLoad: 注意事项 四、loadData …...

spring的事务控制
1.调用这个方法的对象是否是spring的代理对象($CGLIB结尾的) 2.这个方法是否是加了Transactional注释 都符合才可以被事物控制 如果调用方法的对象没有被事物控制,那么被调用的方法即便是加了Transactional也是没用的 事务失效情况…...

4.如何靠IT逆袭大学?
学习的动力不止于此: IT逆袭 这两天利用工作空余时间读了贺利坚老师的《逆袭大学——传给 IT 学子的正能量》,感触很多,有些后悔没有好好利用大学时光。 不过人都是撞了南墙再回头的,吃一堑长一智。 这本书无论你是工作了还是…...

提供网络可测试的接口【公共Webservice】
提供网络可测试的接口 1、腾讯QQ在线状态 WEB 服务 Endpoint: qqOnlineWebService Web 服务 Disco: http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?disco WSDL: http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl 腾讯QQ在线状态 WEB 服…...
【深入理解计算机系统】库打桩 - 阅读笔记
文章目录库打桩机制1. 编译时打桩2. 链接时打桩3. 运行时打桩库打桩机制 Linux 链接器支持一个很强大的技术,称为库打桩 (library interpositioning),它允许你截获对共享库函数的调用,取而代之执行自己的代码。使用打桩机制,你可以…...

RocketMQ高性能原理分析
目录一、读队列与写队列1.概念介绍2.读写队列个数关系分析二、消息持久化1.持久化文件介绍2.持久化结构介绍:三、过期文件删除1.如何判断文件过期2.什么时候删除过期文件四、高效文件写1.零拷贝技术加速文件读写2.文件顺序写3.刷盘机制五、 消息主从复制六、负载均衡…...

前端面试当中CDN会问啥------CDN详细教程来啦
⼀、CDN 1. CDN的概念 CDN(Content Delivery Network,内容分发⽹络)是指⼀种通过互联⽹互相连接的电脑⽹络系统,利 ⽤最靠近每位⽤户的服务器,更快、更可靠地将⾳乐、图⽚、视频、应⽤程序及其他⽂件发送给⽤户&…...
刷题记录:牛客NC19429红球进黑洞 区间拆位异或+区间求和
传送门:牛客 题目描述: 区间求和区间异或k 输入: 10 10 8 5 8 9 3 9 8 3 3 6 2 1 4 1 1 2 6 2 9 10 8 1 1 7 2 4 7 8 2 8 8 6 2 2 3 0 1 1 2 2 9 10 4 1 2 3 输出: 33 50 13 13一道区间求和区间异或的题目,可以称得上是线段树的一道好题 首先对于异或运算来说,并不满足…...
信息数智化招采系统源码——信息数智化招采系统
信息数智化招采系统 服务框架:Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构:VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monit…...

20230217使AIO-3399J开发板上跑通Android11系统
20230217使AIO-3399J开发板上跑通Android11系统 2023/2/17 15:45 1、解压缩SDK:rk3399-android-11-r20211216.tar.xzrootrootrootroot-X99-Turbo:~$ tar xvf rk3399-android-11-r20211216.tar.xz 2、编译U-boot: rootrootrootroot-X99-Turbo:~/rk3399-a…...

Java 基础面试题——面向对象
目录1.面向对象和面向过程有什么区别?2.面向对象的有哪些特征?3.静态变量和实例变量有什么区别?4.Java 对象实例化顺序是怎样的?5.浅拷贝和深拷贝的区别是什么?5.1.浅拷贝5.2.深拷贝5.3.总结6.Java 中创建对象的方式有哪几种&…...
PDF文件替换内容(电子签章),依赖免费pdfbox
首先提前准备,压入如下依赖 <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox --> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId>…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...