选择您Zabbix服务器的平台

ZABBIX版本 4.0 LTS

CentOS OS版本 7

数据库 MySQL

安装配置Zabbix server

a. 安装 MySQL 数据库

产品手册

# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
# yum clean all
 
yum -y install zabbix-agent
b. 安装Zabbix server,Web前端,agent
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
c. 创建初始数据库
产品手册
# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
 
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
d. 为Zabbix server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf
 
DBPassword=password
e. 为Zabbix前端配置PHP
Edit file /etc/httpd/conf.d/zabbix.conf, uncomment and set the right timezone for you.
# php_value date.timezone Europe/Riga
f. 启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
 
# systemctl restart zabbix-server zabbix-agent httpd
# systemctl enable zabbix-server zabbix-agent httpd
现在您的Zabbix server已经安装完成并开始运行!
 
# systemctl restart zabbix-agent
# systemctl enable zabbix-agent

配置Zabbix前端

连接到新安装的Zabbix前端: http://server_ip_or_name/zabbix

根据Zabbix文件里步骤操作: 安装前端

 

开始使用Zabbix

查看快速开始指南

 

==========================================================================================

容器化zabbix。

 

容器部署zabbix更简单

 

准备两台机器:

192.168.1.130 zabbix-server

192.168.1.131 zabbix-agent

 

软件版本:

docker: 18.09.0-ce

zabbix: 4.0.3

 

安装docker可以使用阿里镜像源的repo安装:

https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

开始部署zabbix:
192.168.22.200上操作:
1、安装mysql
 
[root@server ~]# mkdir -p /data/zabbix/mysql
[root@server ~]# useradd mysql
[root@server ~]# chown -R mysql.mysql /data/zabbix/mysql
 
[root@server ~]# docker run --name mysql-server --restart=always -p 3306:3306 -t \
-v /etc/localtime:/etc/localtime \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-v /data/zabbix/mysql:/var/lib/mysql \
-d mysql:5.7.27 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-time-zone='+08:00'
2、启动java-gateway容器监控java服务
 
docker run --name zabbix-java-gateway -t \
-d zabbix/zabbix-java-gateway:latest
3、启动zabbix-server-mysql容器服务
[root@server ~]# docker run --name zabbix-server-mysql  -t \
--restart=always \
-v /etc/localtime:/etc/localtime \
-e MYSQL_DATABASE="zabbix" \
-e DB_SERVER_PORT="3306" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_SENDERFREQUENCY=30 \
-e ZBX_CACHESIZE=64M \
-e ZBX_CACHEUPDATEFREQUENCY=60 \
-e ZBX_STARTDBSYNCERS=16 \
-e ZBX_HISTORYCACHESIZE=128M \
-e ZBX_HISTORYINDEXCACHESIZE=64M \
-e ZBX_TRENDCACHESIZE=64M \
-e ZBX_VALUECACHESIZE=128M \
-e ZBX_LOGSLOWQUERIES=30000 \
-e ZBX_STARTVMWARECOLLECTORS=5 \
-e ZBX_VMWAREFREQUENCY=60 \
-e ZBX_VMWAREPERFFREQUENCY=60 \
-e ZBX_VMWARECACHESIZE=80M \
-e ZBX_VMWARETIMEOUT=10 \
-v /usr/lib/zabbix/:/usr/lib/zabbix/ \
--link mysql-server:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \ #此行是启用zabbix-java-gateway后加入
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest
 
4、启动zabbix-web-nginx-mysql容器服务
[root@server ~]# docker run --name zabbix-web-nginx-mysql -t \
--restart=always \
-v /etc/localtime:/etc/localtime \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e PHP_TZ="Asia/Shanghai" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql:latest
 
5、启动zabbix-agent容器服务
docker run --name zabbix-agent \
--restart=always \
--net=host \
-e ZBX_SERVER_HOST="192.168.1.130" \
-e ZBX_SERVER_PORT=10051 \
-e ZBX_UNSAFEUSERPARAMETERS=1 \
-v /etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d \
-v /var/lib/zabbix/modules:/var/lib/zabbix/modules \
-v /var/lib/zabbix/enc:/var/lib/zabbix/enc \
-v /etc/localtime:/etc/localtime \
 -d zabbix/zabbix-agent:latest
 
注:server端agent部署:
docker run --name zabbix-agent \
-e ZBX_STARTAGENTS=3 \
-e ZBX_UNSAFEUSERPARAMETERS=1 \
-v /etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d \
-v /var/lib/zabbix/modules:/var/lib/zabbix/modules \
-v /var/lib/zabbix/enc:/var/lib/zabbix/enc \
--link zabbix-server-mysql:zabbix-server \
-p 10050:10050 \
--privileged -d zabbix/zabbix-agent:latest
 
docker exec -it zabbix-agent /bin/bash
安装完成,浏览器上访问:
192.168.10.130/zabbix
Admin/zabbix
 
================================================================================================
zabbix4.0.3中文乱码问题
解决步骤:
1、在windows获取字体库文件
在C:\Windows\Fonts中复制想要的字体,后缀为ttf,若本身问大写,请改成小写的文件后缀ttf。
simkai.ttf
 
2、进入zabbix/zabbix-web-nginx-mysql容器
docker exec -it 容器ID /bin/bash
docker exec -it zabbix-web-nginx-mysql /bin/bash
 
3、将字体文件simkai.ttf上传进容器目录
(1):
docker cp simkai.ttf 容器ID:/usr/share/fonts/ttf-dejavu
docker cp simkai.ttf /usr/share/fonts/ttf-dejavu
进入容器目录:/usr/share/zabbix/fonts,运行命令:
mv graphfont.ttf graphfont.ttf.backup && ln -s /usr/share/fonts/ttf-dejavu/simkai.ttf ./ && mv simkai.ttf graphfont.ttf
 
(2):
docker cp simkai.ttf zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts
 
完成,刷新zabbix页面即可。
 
微信告警设置:
docker cp weixin.py zabbix-server-mysql:/usr/lib/zabbix/alertscripts/
配置 --- 动作 : 微信告警
操作:
默认主题 {TRIGGER.STATUS}: {TRIGGER.NAME}
消息内容
{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主机: {HOSTNAME}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
 
恢复操作:
默认主题 {TRIGGER.STATUS}: {TRIGGER.NAME}
消息内容
{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主机: {HOSTNAME}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
 
故障{TRIGGER.STATUS},服务器名:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
 
告警主机:{HOSTNAME}
告警主机IP:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
 
恢复{TRIGGER.STATUS}, 服务器名:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
 
告警主机:{HOSTNAME}
告警主机IP地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
 
告警脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}