网络设备监视系统:Zabbix 优化配置——墨涩网

zabbix介绍

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

官网

https://www.zabbix.com/cn  

zabbix 优化配置

1:在历史记录和事件表上创建MySQL分区(可选)

Zabbix使用housekeeping
进程删除旧的趋势和历史数据。使用 SQL DELETE
语句从数据库中删除旧数据可能会对数据库性能产生负面影响。因此,有时候我们看到这个告警:Zabbix housekeeper processes more than 75% busy

这个问题可以通过数据库分区轻松解决。分区为每个小时或每天创建表,并在不再需要时删除它们。SQL DROP
比 DELETE
语句更有效。

您可以参照这个教程对MySQL表进行分区。

2:优化Zabbix服务器(可选)

如果您计划监视大量设备,请继续执行此步骤。

使用vi
nano
命令打开zabbix_server.conf
文件:

nano etc/zabbix/zabbix_server.conf

然后将下列配置添加到文件中的任意位置:

StartPollers=100
StartPollersUnreachable=50
StartPingers=50
StartTrappers=10
StartDiscoverers=15
StartPreprocessors=15
StartHTTPPollers=5
StartAlerters=5
StartTimers=2
StartEscalators=2
CacheSize=128M
HistoryCacheSize=64M
HistoryIndexCacheSize=32M
TrendCacheSize=32M
ValueCacheSize=256M

保存并退出文件(ctrl+x,后跟 y 并回车)。请根据实际情况修改这些配置,比如你不使用ping监控,可以设定StartPingers=1

3:优化 MySQL/MariaDB 数据库(可选)

有时您会碰到下面这个告警:
[Z3001] connection to database 'Zabbix' failed: [1040] Too many connections/var/log/zabbix/zabbix_server.log

那么您可以添加如下配置:

a. 创建自定义 MySQL 配置文件

通过vi
nano
命令创建mysql.cnf
配置文件:

nano etc/my.cnf.d/mysql.cnf

粘贴如下配置:

[mysqld]
max_connections = 404
innodb_buffer_pool_size = 800M

innodb-log-file-size = 128M
innodb-log-buffer-size = 128M
innodb-file-per-table = 1
innodb_buffer_pool_instances = 8
innodb_old_blocks_time = 1000
innodb_stats_on_metadata = off
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-flush-log-at-trx-commit = 2

tmp-table-size = 96M
max-heap-table-size = 96M
open_files_limit = 65535
max_connect_errors = 1000000
connect_timeout = 60
wait_timeout = 28800

保存并退出文件(ctrl+x,后跟 y 并回车)。给该文件添加权限:

chown mysql:mysql etc/my.cnf.d/mysql.cnf
chmod 644 etc/my.cnf.d/mysql.cnf

要注意的2个参数:

  1. 参数max_connections
    必须大于所有 Zabbix 进程的总数加上 150。您可以使用以下命令自动检查Zabbix进程的数量(该命令的结果是加上了150后的值):
egrep "^Start.+=[0-9]" etc/zabbix/zabbix_server.conf | awk -F "=" '{s+=$2} END {print s+150}'
404
  1. 第二个重要的参数是innodb_buffer_pool_size
    。它决定了MySQL可以获得多少内存来缓存InnoDB表和索引数据。如果服务器上仅安装了数据库,则应将该参数设置为系统内存的 70%。

但是通常情况下,我们将Zabbix数据库和Apache安装在同一台服务器,因此建议将innodb_buffer_pool_size
设置为总系统内存的40%。如果服务器是2G RAM,那么这个值将设定为是800MB。

b. 重新启动 Zabbix Server 和 MySQL 服务
systemctl stop zabbix-server
systemctl stop mysql
systemctl start mysql
systemctl start zabbix-server

4:如何管理Zabbix MySQL Apache服务

有时您需要检查或重新启动Zabbix,MySQL或Apache服务, 使用下面的命令来执行此操作。

Zabbix Server
systemctl <status/restart/start/stop> zabbix-server

MySQL/MariaDB Server
systemctl <status/restart/start/stop> mysql

Apache Server
systemctl <status/restart/start/stop> httpd

PHP FastCGI Process Manager
systemctl <status/restart/start/stop> php-fpm

Zabbix Agent
systemctl <status/restart/start/stop> zabbix-agent

upgrade
dnf upgrade 'zabbix-*'
THE END