前言

zabbix属于传统的服务器监控软件,优点是angent采集数据汇总到服务器,而且可以对接grafana进行状态输出。可以对接邮件报警、微信报警、短信报警,及时获取服务器报警状态。以及可以做一部分简单的服务自动恢复。我在这里主要记录一下我做了哪些对LNMP应用的对接和自动恢复、邮件报警等,不对zabbix软件本身做过多介绍。

一、安装zabbix服务

1 通过docker的方式部署zabbix服务

首先在服务器安装docker,然后从服务器Pull下来docker镜像,快速拉起zabbix server。

1
2
3
4
5
# 安装docker服务
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
$ systemctl start docker
$ systemctl enable docker
1.1 下载zabbix server镜像

1、zabbix前端 镜像名:zabbix/zabbix-web-nginx-mysql:latest
2、zabbix服务端 镜像名:zabbix-server-mysql:latest
3、数据库 镜像名:mariadb:latest

1
2
3
docker pull zabbix/zabbix-server-mysql:latest;
docker pull zabbix/zabbix-web-nginx-mysql:latest;
docker pull mariadb:latest;

执行完以上命令后,镜像就会被下载好了,我创建了三个脚本进行拉起镜像。

1.2 执行脚本拉起zabbix服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# filename:mariadb.sh
docker rm -f mariadb-zabbix
docker run --name mariadb-zabbix \
-v /data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mariadb:latest

# filename:run-zabbix-server.sh
docker rm -f zabbix-server
docker run --name zabbix-server -t \
-e DB_SERVER_HOST="mariadb-zabbix" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="123456" \
--link mariadb-zabbix \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

# filename:run-zabbix-web.sh
docker run --name zabbix-web -t \
-e DB_SERVER_HOST="mariadb-zabbix" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="123456" \
--link mariadb-zabbix \
--link zabbix-server \
-p 8080:80 \
-d zabbix/zabbix-web-nginx-mysql:latest

1.3 在数据库进行数据库创建和授权。

执行脚本后,需先在数据库里加上zabbix数据库,并进行授权,

1
2
3
4
create database zabbix;
CREATE USER 'zabbix'@'127.0.0.1' IDENTIFIED BY 'zabbix';
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
FLUSH PRIVILEGES;
1.4 登录web界面进行验证。

访问http://服务器IP:8080 进行简单的zabbix初始化配置。

部署过程中会遇到的问题
问题一:zabbix中文乱码

从Windows机器拷贝一个simhei的字体,修改zabbix 乱码配置文件,并且把这个字体拷贝到zabbix-web容器内进行替换即可。

1
2
3
4
5
6
# 修改zabbix关于字体部分的配置文件
docker exec -it zabbix-web bash
vi /usr/share/zabbix/include/defines.inc.php
%s/graphfont/simhei/g
# 拷贝字体到zabbix容器内
docker cp simhei.ttf zabbix-web:/usr/share/zabbix/fonts/

参考了以下链接进行zabbix监控搭建
Zabbix-web的中文显示及其乱码问题解决方法
Docker 容器版的 zabbix 监控报警系统搭建