一、zabbix概述

zabbix是一个适用于任何IT基础架构、服务、应用程序和资源的企业级分布式开源监控解决方案。

能够监控众多网络参数和服务区的健康度、完整性;

灵活的告警机制,允许用户为几乎任何事件配置基于邮件、微信、短信、钉钉等告警,利于快速的响应服务器问题;

提供出色的报表和数据可视化功能;

支持主动轮询和被动捕获方式监控;

所有的报表、统计数据、配置参数都可以通过web界面配置展示;

zabbix开源免费,是根据GPL通用公共许可证的第二版编写和发布;

支持提供全球专业的技术支持服务-.-。

 

二、zabbix部署

官方部署文档地址 https://www.zabbix.com/documentation/4.0/zh/manual/installation/install_from_packages/rhel_centos

1、服务器安装要求

1.1 受支持的平台

Linux 、 IBM AIX 、 FreeBSD 、 NetBSD 、 OpenBSD 、 HP-UX 、 Mac OS X 、 Solaris

 

1.2 硬件配置参考

配置越好,运行的速度越快

zabbix 默认安装目录 zabbix4.0安装部署_php

 

 

1.3 软件配置

zabbix是基于先进的Apache Web服务器、领先的数据库引擎和PHP脚本语言构建。

数据库管理系统

(IBM DB2的支持是基于实验性的)

zabbix 默认安装目录 zabbix4.0安装部署_zabbix 默认安装目录_02

 

前端web页面

需要用到如下软件

zabbix 默认安装目录 zabbix4.0安装部署_mysql_03

 

浏览器

必须启用Cookies和Javascript

 

服务器依赖包

zabbix 默认安装目录 zabbix4.0安装部署_zabbix 默认安装目录_04

其他请移步至官方手册查看:

Java Gateway

数据容量

时间同步

 

2、Zabbix Server部署过程

2.1 部署yum软件仓库

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo 
rpm -Uvh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm 
sed -i 's/repo.zabbix.com/mirrors.aliyun.com\/zabbix/g' /etc/yum.repos.d/zabbix.repo

2.2 安装Server端、web端rpm包

yum install zabbix-server-mysql zabbix-web-mysql

2.3 安装mariadb

# ①、安装启动并设置开机自启 yum install mariadb-server systemctl start mariadb systemctl enable mariadb 

# ②、首次安装进行数据库配置,命令与mysql一样 mysql_secure_installation 

# ③、配置时出现的选项简要说明 
Enter current password for root (enter for none): # 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车  
Set root password? [Y/n]                          # 设置数据库root管理员用户密码,输入Y ,然后输入密码,注意密码需要设置成12位以上复杂密码
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n]                     # 移除匿名用户 Y 
Disallow root login remotely? [Y/n]               # 拒绝root远程登陆 Y
Remove test database and access to it? [Y/n]      # 删除test数据库 Y
Reload privilege tables now? [Y/n]                # 重新加载权限表 Y

# ④、 设置mariadb的字符集 1)修改/etc/my.cnf , 在 [mysqld]标签下边添加 ,注意单引号为英文状态下的单引号 
# vi /etc/my.cnf 
  init_connect='SET collation_connection = utf8_unicode_ci' 
  init_connect='SET NAMES utf8' 
  character-set-server=utf8 
  collation-server=utf8_unicode_ci 
  skip-character-set-client-handshake 

2)修改/etc/my.cnf.d/client.cnf , 在 [client]标签下添加 
# vi /etc/my.cnf.d/client.cnf 
  default-character-set=utf8 

3) 修改 /etc/my.cnf.d/mysql-clients.cnf , 在[mysql]标签下添加 
# vi /etc/my.cnf.d/mysql-clients.cnf 
  default-character-set=utf8 

# ⑤、重启mariadb服务 
# systemctl restart mariadb 

# ⑥、登陆查看字符集 
# mysql -uroot -p 
  mysql> show variables like "%character%";show variables like "%collation%";

2.4 创建zabbix数据库并导入zabbix初始数据库schema和数据

mysql> create database zabbix character set utf8 collate utf8_bin; 
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<strongPassword>'; 
mysql> flush privileges; 
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

2.5 修改zabbix_server.conf中的数据库配置,找到相关行进行配置

1 # vi /etc/zabbix/zabbix_server.conf
2  DBHost=localhost 
3  DBName=zabbix 
4  DBUser=zabbix 
5  DBPassword=<strongPassword>

2.6 修改zabbix前端配置,将时区设置到上海时区

1 # 最后一行是需要修改的: #号去掉及时区修改 
 2 # vi /etc/httpd/conf.d/zabbix.conf  
 3    php_value max_execution_time 300 
 4    php_value memory_limit 128M 
 5    php_value post_max_size 16M 
 6    php_value upload_max_filesize 2M 
 7    php_value max_input_time 300 
 8    php_value always_populate_raw_post_data -1 
 9    php_value date.timezone Asia/Shanghai 
10 
11 # 重启httpd服务 systemctl restart httpd

2.7 SELINUX、防火墙配置

setsebool -P httpd_can_connect_zabbix on 
setsebool -P httpd_can_network_connect_db on 
firewall-cmd --add-port=80/tcp --permanent 
firewall-cmd --reload

2.8 启动zabbix并设置开机自启

systemctl enable zabbix-server 
systemctl start zabbix-server

3、 Zabbix前端配置

web浏览器输入 http://ip/zabbix

zabbix 默认安装目录 zabbix4.0安装部署_zabbix 默认安装目录_05

3.1 检查预安装环境,前置环境都需要为ok状态,如不是需按提示安装相应套件

zabbix 默认安装目录 zabbix4.0安装部署_mysql_06

3.2 前端数据库配置

zabbix 默认安装目录 zabbix4.0安装部署_Server_07

3.3 前端zabbix_server主机描述

zabbix 默认安装目录 zabbix4.0安装部署_zabbix 默认安装目录_08

3.4 前端预安装摘要信息

zabbix 默认安装目录 zabbix4.0安装部署_php_09

3.5 前端安装成功界面

zabbix 默认安装目录 zabbix4.0安装部署_mysql_10

3.6 前端登陆界面,默认账号Admin默认密码zabbix

zabbix 默认安装目录 zabbix4.0安装部署_php_11

3.7 修改前端显示语言为中文

zabbix 默认安装目录 zabbix4.0安装部署_mysql_12

 

三、zabbix服务进程

1 、Server

zabbix软件的核心程序,是所有配置、统计和操作数据的中央存储中心,也是Zabbix监控系统的告警中心。在监控的系统中出现任何异常,将被发出通知给管理员。

 

2 、Agent

部署在被监控目标上,收集本地的操作信息并将数据报告给 Zabbix server 用于进一步处理。一旦出现异常 (例如硬盘空间已满或者有崩溃的服务进程),Zabbix server 会主动警告管理员指定机器上的异常。

Zabbix agent 可以运行被动检查和主动检查,是否执行被动或主动检查是通过选择相应的监控项类型来配置的。

被动检查 Zabbix server(或 proxy)询求数据,例如 CPU load,然后 Zabbix agent应答数据请求,返回结果给Server;

主动检查 Agent 必须首先从 Zabbix sever 索取监控项列表以进行独立处理,然后会定期发送采集到的新值给Server。

Agent的一些选项参数:

zabbix 默认安装目录 zabbix4.0安装部署_zabbix 默认安装目录_13

 

3、Zabbix Sender

一个命令行应用程序,必须配置 trapper 监控项 类型,可用于将性能数据发送到 Zabbix server 进行处理。

该实用程序通常用于长时间运行的用户脚本,用于定期发送可用性和性能数据。

范例

zabbix_sender -z zabbix -s "Linux DB3" -k db.connections -o 43 
其中: 
z - Zabbix server 主机(也可以使用 IP 地址) 
s - 被监控主机的名称(在前端注册) 
k - 监控项键值 
o - 要发送的值 包含空格的选项必须使用双引号引用。
Zabbix sender 可通过从输入文件发送多个值。 详见Zabbix sender manpage。
Zabbix sender 接受 UTF-8 编码的字符串(对于类 UNIX 系统和 Windows ),且在文件中没有字节顺序标记(BOM)。

4、Zabbix Get

一个命令行应用,它可以用于与 Zabbix agent 进行通信,并从 Zabbix agent 那里获取所需的信息,通常用于 Zabbix agent 故障排错。详见 Zabbix get 手册

范例

1 # Zabbix get 从 Zabbix agent 获取 processor load 的值 
2 zabbix_get -s 127.0.0.1 -p 10050 -k system.cpu.load[all,avg1] 
3 参数选项 
4 -s --host <host name or IP> 指定目标主机名或IP地址 
5 -p --port <port number> 指定主机上运行 Zabbix agent 的端口号。默认端口10050 
6 -I --source-address <IP address> 指定源 IP 地址 
7 -k --key <item key> 指定要从监控项键值检索的值 
8 -h --help 获得帮助 
9 -V --version 显示版本号

四、Zabbix问题处理

1、zabbix server日志

日志信息保存在 /var/log/zabbix 目录下,执行命令tail -f /var/log/zabbix/zabbix_server.log

zabbix 默认安装目录 zabbix4.0安装部署_Server_14

 

2、web前端图形字体中文显示异常

问题原因:

/usr/share/fonts/dejavu/DejaVuSans.ttf图形字体不支持中文显示

解决方法:

从windows操作系统中拷贝一个简体字体(楷体)[ C:\Windows\Fonts\simkai.ttf ] , 替换图形字体文件

mv /usr/share/fonts/dejavu/DejaVuSans.ttf /usr/share/fonts/dejavu/DejaVuSans.ttf.bak 
mv simkai.ttf /usr/share/fonts/dejavu/DejaVuSans.ttf

3、Zabbix server内存溢出,无法启动

问题原因:

这是由于zabbix默认的缓存配置只有8M,当你zabbix正常运行一段时间后,大批量添加一些被监控设备就会出现这种情况。

解决方法:

打开zabbix_server.conf文件,将CacheSize改一个较大的值,我现在给自己配的是1024M。

vim /etc/zabbix/zabbix_server.conf
CacheSize=1024M #第385行