Zabbix 系统到底应该怎样优化?
发布日期:2022-02-28 11:05:55
浏览次数:3
分类:技术文章
本文共 3493 字,大约阅读时间需要 11 分钟。
zabbix系统到底该如何优化?自定义监控模板;调优数据库以获得最佳性能;调优Zabbix Server配置;根据硬件的规格设置合理的HouseKeeper;使用最新的,并且稳定的版本;对Zabbix数据库进行表分区;优化Zabbix的架构
Zabbix架构
在讲Zabbix优化之前,先来看看Zabbix Server 的逻辑架构图:
对于上图中,架构组件的描述:Zabbix进程
- Self-Monitoring:用于收集Zabbix系统内部的监控信息;
- Configuration syncer:用于将配置文件中的配置信息同步到内存中缓存;
- Timer:用于处理触发器中与时间相关的函数和维护模式的进程;
- History syncer:用于写历史数据表的进程;
- Escalator:用于处理Action中的步骤的进程;
- Housekeeper:用于清理过期的历史数据的进程;
- Db watchdog:用于监视Zabbix系统的数据库状态,当数据库状态变为不可用时,发送警告信息(服务器代理端不支持这类型进程)。
Zabbix Poller
- Poller:用于普通的被动监控项目的轮询;
- ICMP pinger:用于定期的进行ICMP PING检查;
- IPMI poller:用于定期进行IPMI监控项目的检查;
- Unreachable poller:用于轮询不可达的设备;
- Proxy poller:用于服务器代理的被动轮询;
- Trapper:用于处理主动采集、陷入以及分布式节点间或服务器代理的通信;
- Java poller:用于轮询Java监控项目;
- Http poller:用于轮询Web类的监控项目;
- Snmp trapper:用于轮询Snmp/trap类的监控项目;
- Discovery:用于自动发现设备的进程;
- Vmware Collector:负责从VMware服务进程中收集数据(服务器代理端不支持这种类型的进程);
- Alerter:用于发送报警通知进程。
优化内容
优化Zabbix架构
常用的架构:
说明:Zabbix最简单的架构,常用于监控主机比较少的情况下。 分布式架构: Server-Proxy-Agentd模式。 说明:Zabbix分布式架构,常用于监控主机比较多的情况下,使用Zabbix Proxy进行分布式监控,有效的减轻了Zabbix Server端的压力。Zabbix Server/Zabbix Proxy配置优化
调整配置文件:Zabbix_Server.conf
Zabbix进程参数调整:StartPollers=80StartPingers=10StartPollersUnreachable=80StartIPMIPollers=10StartTrappers=20StartDBSyncers=8
值得注意的是,当Zabbix的Pollers数量过多时(超过limit默认值1024),需要对系统的limit的参数大小进行修改。
shell> vi /etc/security/limit.conf* hard nofile 65536* soft nofile 65536* hard nproc 65536* soft nproc 65536
Zabbix In-Memory Cache参数优化(以下值仅做参考):
ValueCacheSize=256MHistoryIndexCacheSize = 64MTrendCacheSize=64MHistoryCacheSize=128MCacheSize=128MVMwareCacheSize=64M
优化Zabbix的数据库(MySQL)
调整MySQL配置文件:my.cnf或my.ini,在[mysqld]酌情修改参数:
[client]port = 3306socket = /var/lib/mysql/mysql.sock[mysql]prompt="\u@mysqldb \R:\m:\s [\d]> "no-auto-rehash[mysqld]user= mysqlport = 3306datadir = /data/mysql/socket = /var/lib/mysql/mysql.sock pid-file = mysqldb.pidcharacter-set-server = utf8mb4skip_name_resolve = 1# Timestampexplicit_defaults_for_timestamp = 1# Connectionsback_log = 1024max_connections = 512max_connect_errors = 5120innodb_thread_concurrency = 16# Limit open_files_limit = 65535innodb_open_files = 65535# Query Cachequery_cache_type = 0query_cache_size = 0# binary logsserver-id = 3306001binlog_format = rowlog-bin = /data/mysql/mysql-binlogexpire_logs_days = 7sync_binlog = 1max_binlog_size = 1Gbinlog_cache_size = 4mmax_binlog_cache_size = 1G# slow query slow_query_log = 1long_query_time = 2slow_query_log_file = /data/mysql/slow.log# Timeoutinteractive_timeout = 600wait_timeout = 600# Enginedefault-storage-engine = innodb# Bufferkey_buffer_size = 32Mread_buffer_size = 1Msort_buffer_size = 1Mread_rnd_buffer_size = 1Mtmp_table_size = 32Mjoin_buffer_size = 16Mmax_heap_table_size = 32Mmax_tmp_tables = 48thread_cache_size = 32# Timelog_timestamps = SYSTEM# Tablespace & File I/Oinnodb_data_file_path = ibdata1:1G:autoextendinnodb_file_per_table = 1# Redo Loginnodb_flush_log_at_trx_commit = 1innodb_log_file_size = 256Minnodb_log_files_in_group = 2innodb_log_buffer_size = 16M# Innodbinnodb_buffer_pool_size = 8Ginnodb_buffer_pool_instances = 8 innodb_flush_method = O_DIRECTinnodb_change_buffer_max_size = 50innodb_max_dirty_pages_pct = 30innodb_buffer_pool_load_at_startup = 1innodb_buffer_pool_dump_at_shutdown = 1innodb_io_capacity = 500innodb_io_capacity_max= 1000innodb_support_xa = 0innodb_rollback_on_timeout = 1
优化Zabbix监控项
优化监控项的数据采集方式,由被动方式改为主动模式(Passive mode -> Active mode),主动模式的优势:
- 可以用户NAT到设备后面;
- 数据缓冲;
- 减轻服务器的负载,Poller轮询零负载;
- 更加安全,代理端不需要监测任何端口。
- 降低监控项的轮询时间;
- 删除无用的监控项。 https://cnsre.cn/posts/210303161655
转载地址:https://blog.csdn.net/weixin_47430049/article/details/116057670 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年03月26日 08时37分34秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
git中tag标签的用法
2019-04-26
VTK:文字来源TextOrigin
2019-04-26
VTK:XYPlot图
2019-04-26
VTK:检查模块CheckForModule
2019-04-26
VTK:复合数据之CompositePolyDataMapper
2019-04-26
VTK:复合数据之Generate2DAMRDataSetWithPulse
2019-04-26
VTK:复合数据之Generate3DAMRDataSetWithPulse
2019-04-26
VTK:复合数据之MultiBlockDataSet
2019-04-26
VTK:复合数据之OverlappingAMR
2019-04-26
VTK:数据结构之BuildLocatorFromKClosestPoints
2019-04-26
VTK:数据结构之BuildOctree
2019-04-26
VTK:数据结构之ClosestNPoints
2019-04-26
boost::bad_function_call用法的测试程序
2019-04-26
SpringMVC框架学习总结
2019-04-26
boost::function_types::is_function用法的测试程序
2019-04-26