zabbix系列:(一)监控系统概述及zabbix安装与配置

admin 2020年10月14日 1,513次浏览

1、zabbix-server平台配置

  • 操作系统:centos8
  • HTTP:httpd-2.4.37
  • 数据库:mariaDB-10.3.11
  • PHP:php-7.2.11
  • ZABBIX:zabbix-4.4.1

2、常见监控系统架构

  • 通用架构为客户端/服务器端模式,客户端将采集到的数据传输给服务器
  • 分布式架构为客户端/代理端/服务器端,客户端将采集到的数据传输到代理服务器端,然后通过代理服务器端将数据汇总传输到zabbix-server端
    • 主动方式(push):客户端将采集到的数据,主动传输到服务器端,这种方式对服务器的开销较小,适合大规模的监控环境
    • 被动方式(pull):服务器主动向客户端拉取数据,这种方式将增加服务器的开销,只适合小规模监控环境

3、常见监控指标

  • 主机:监控CPU、内存、硬盘的剩余空间/利用率和I/O、SWAP使用率、系统启动时间、进程数、负载
  • 网卡:监控ping的响应时间及数据包发送的成功率、网卡流入/流出量和错误的数据包数
  • 文件:监控文件大小、文件指纹哈希值、匹配查询、字符串存在与否
  • URL:监控指定URL访问过程中的返回码、下载时间及文件大小,返回数据的匹配
  • 应用程序:监控端口和内存使用率、CPU使用率、服务状态、请求数、并发连接数、消息队列的字节数、客户端事务处理数等
  • 数据库:监控数据库中指定的表空间、数据库的游标数、会话数、事务数、死锁数、缓冲池命中率、缓存库命中率、当前连接数、进程的内存利用率等性能参数
  • 日志:监控错误日志匹配、特定字符串匹配
  • 硬件:监控温度、风扇转速、电压、电源、主板控制器、磁盘阵列等

4、zabbix数据采集方式

zabbix支持:agent(专用代理客户端)、SNMP、SSH、Telnet、IPMI等

5、磁盘空间使用估算

由于使用环境不同,数据大小可能有差别,因此在规划磁盘空间时,只能大于估算空间,不能小于估算空间

  • 历史数据使用空间

    • 计算公式

      数据保存天数 x 监控项数量 / 刷新时间 x 24小时 x 3600秒 x 50B

    • 计算示例

      # 60000个监控项,刷新时间60s,数据保存90天
      90*24*3600*60000/60*50 约等于:362G
      
  • 趋势数据使用空间

    • 计算公式

      数据保存天数 x 监控项数量 x 24小时 x 128B

    • 计算示例

      # 60000个监控项,数据保存90天
      90*24*60000*128 约等于:15.5G
      
  • 事件数据使用空间

    • 计算公式

      数据保存天数 x 每秒事件量 x 24小时 x 3600秒 x 130B

      由于事件量很难估算,因此按每秒一个计算

    • 计算示例

      # 数据保存90天
      90*1*24*3600*130 约等于:0.95G
      
  • 使用空间总量

    所需磁盘空间=历史数据空间 + 趋势数据空间 + 事件数据空间

6、安装zabbix

5.0 LTS版本官方安装指南

6.1、安装基础环境

主要是安装与配置Apache、MySQL、PHP

# 1、安装基础环境
[root@localhost ~]#  yum -y install httpd mariadb mariadb-server php

# 2、配置mariadb-server配置文件
[root@localhost ~]#  vi /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
## 配置MySQL数据存放目录
datadir=/var/lib/mysql
## socket文件路径
socket=/var/lib/mysql/mysql.sock
## MySQL错误日志存放路径
log-error=/var/log/mariadb/mariadb.log
## pid文件路径
pid-file=/run/mariadb/mariadb.pid
## 设置字符集编码为UTF-8
character-set-server=utf8
## 让innodb的每个表文件单独存储
innodb_file_per_table=1

# 3、初始化数据库
[root@localhost ~]# mysql_secure_installation

# 4、重置MySQL数据库root账户密码,如果执行过数据库初始化操作,这条语句就不需要执行了
[root@localhost ~]# mysqladmin -uroot password [user_pwd]

# 5、登录MySQL数据库
[root@localhost ~]# mysql -uroot -p[PASSWORD]

# 6、创建zabbix数据库,并设置使用UTF-8字符编码
MariaDB [(none)]> create database zabbix character set utf8;

# 7、设置数据库的所有权限,允许用户zabbix的IP地址:127.0.0.1访问,并设置zabbix账户的密码为zabbix
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix';

# 8、设置数据库的所有权限,允许用户zabbix的localhost访问,并设置zabbix账户的密码为zabbix 
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';

# 9、刷新权限,使其立即生效
MariaDB [(none)]> flush privileges;

6.2、安装zabbix

# 1、导入官方repo
[root@localhost ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm

# 2、安装zabbix-server、代理服务及代理客户端 
[root@localhost ~]# yum install zabbix-server-mysql zabbix-proxy-mysql zabbix-agent
   
# 3、安装zabbix前端    
[root@localhost ~]# yum install zabbix-web-mysql zabbix-apache-conf    

6.3、导入zabbix数据库

[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

6.4、配置zabbix_server.conf

[root@localhost ~]# vi /etc/zabbix/zabbix_server.conf   
# 设置数据库名称(默认)    
DBName=zabbix    
# 设置数据库用户名(默认)    
DBUser=zabbix    
# 设置数据库用户密码    
DBPassword=zabbix     
# 约5台服务器开一个进程,最大1000    
StartPollers=100    
# 视IPMI监控主机个数而定    
StartIPMIPollers=10    
# 不可达主机重试获取数据进程个数    
StartPollersUnreachable=10    
# trapper进程个数    
StartTrappers=10    
# ping进程个数    
StartPingers=10    
# 自动发现进程个数    
StartDiscoverers=10     
# 视具体情况设定    
CacheSize=128M    
# 视具体情况设定    
HistoryCacheSize=128M    
# 视具体情况设定    
TrendCacheSize=128M    
# 视具体情况设定    
ValueCacheSize=128M    
# 最大执行时长    
Timeout=30    

6.5、启动相关服务

[root@localhost ~]# systemctl start httpd mariadb zabbix-server zabbix-agent

6.6、设置开机启动

[root@localhost ~]# systemctl enable httpd mariadb zabbix-server zabbix-agent

6.7、开启防火墙端口或服务

# 允许HTTP服务通过防火墙
[root@localhost ~]# firewall-cmd --add-service=http --permanent

# agent端使用10050端口与连接服务器端10051端口
[root@localhost ~]# firewall-cmd --add-port=10050/tcp --permanent

# server端使用10051端口与agent代理客户端通信
[root@localhost ~]# firewall-cmd --add-port=10051/tcp --permanent

# 重载防火墙策略
[root@localhost ~]# firewall-cmd --reload

7、ZABBIX web初始化

在zabbix服务器配置完成后,在浏览器中输入zabbix-serverIP/zabbix,使用web界面对服务器进行最后的配置与初始化,此处直接上图
配置界面首页
环境配置汇总
数据库配置
zabbix配置
配置信息汇总
配置完成
登录界面

8、关于中文界面下中文显示乱码的配置

  • 原因:由于默认字体不能正常显示中文所造成的
  • 解决方法:在Windows中的C:\Windows\Fonts目录下,选择任意一个中文字体上传到zabbix服务器中的/usr/share/zabbix/assets/fonts中,然后修改/usr/share/zabbix/include/defines.inc.php配置文件,将其“define('ZBX_GRAPH_FONT_NAME', 'graphfont');”选项中的字体换成需要更换的字体即可。(字体名称不包括后缀名)