简介

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

环境说明

主机

ip

说明

zabbix server

172.16.0.10

监控中控台

mysql

172.16.0.100

mysql数据库

zabbix agent1

172.16.0.101

需要监控的主机1

zabbix agent2

172.16.0.102

需要监控的主机2

zabbix agent3

172.16.0.103

需要监控的主机3

部署配置

首先部署监控中控台,以下使用docker方式部署,docker不熟练的跳转到docker相关文章 监控的所有数据存储我们选择使用mysql数据库

1、运行zabbix-server后端并暴露端口10051,(被监控端需要通过该端口上报监控数据)

$ docker run --name zabbix-server-mysql -t \
      -e DB_SERVER_HOST="172.16.0.100" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="root" \
      -e MYSQL_PASSWORD="123456" \
      -e MYSQL_ROOT_PASSWORD="123456" \
      -p 10051:10051 \
      -d docker.io/zabbix/zabbix-server-mysql:latest

2、运行zabbix-server前端web界面并暴露8080端口,(使用8080端口即可访问zabbix中控台了)

$ docker run --name zabbix-web-nginx-mysql -t \
      -e DB_SERVER_HOST="172.16.0.100" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="root" \
      -e MYSQL_PASSWORD="123456" \
      -e MYSQL_ROOT_PASSWORD="123456" \
      -e PHP_TZ="Asia/Shanghai" \
      --link zabbix-server-mysql:zabbix-server \
      -p 8080:80 \
      -d docker.io/zabbix/zabbix-web-nginx-mysql:latest

两个容器运行成功后,即可访问:http://172.16.0.10:8080 使用默认账号:Admin 密码zabbix 即可访问zabbix中控台

接着在三台需要被监控的主机上安装zabbix agent
在三台主机上均执行以下操作(如果需要批量监控大量主机,可使用ansible运维工具,批量安装zabbix agent)

1、创建zabbix-agent目录

$ mkdir zabbix-agent && cd zabbix-agent

2、下载zabbix-agent包

$ wget https://www.zabbix.com/downloads/4.4.3/zabbix_agents-4.4.3-linux3.0-amd64-static.tar.gz

3、解压

$ tar xzf zabbix_agents-4.4.3-linux3.0-amd64-static.tar.gz

4、修改配置文件

$ vi conf/zabbix_agentd.conf
#中控主机的ip地址
Server=172.16.0.10
ServerActive=172.16.0.10
#被监控主机的名称(可以在中控台中菜单[Configuration --> Hosts --> Create host]中添加)
Hostname=172.16.0.101
#使用root账号启动
AllowRoot=1
User=root
#开启主动模式
StartAgents=0

5、将配置文件移动到默认位置

$ cp conf/zabbix_agentd.conf /usr/local/etc/zabbix_agentd.conf

6、启动zabbix-agent应用

$ sbin/./zabbix_agentd

7、设置开机启动

$ cp sbin/zabbix_agentd /etc/init.d/zabbix_agentd

附录

1、nginx 应用监控配置
确保nginx安装了模块:http_stub_status_module
没有安装的话,重新编译安装:./configure –with-http_stub_status_module
在nginx.conf中添加配置:

location /basic_status {
    stub_status on;
    access_log off;
    allow 172.16.0.10;
    deny all;
}

在中控台中菜单[Configuration –> Hosts]界面对指定host添加nginx监控模版,如下图所示:

zabbix如何监控SSL_zabbix如何监控SSL


稍等片刻nginx的监控数据就可以上报到中控台,在菜单[Monitoring –> Graphs]界面中可以看到渲染出来的图表了

中控台界面如下:

zabbix如何监控SSL_mysql_02

2、设置语言后监控图形中乱码问题解决
上传本地windows简体楷体字体文件到中控台的前端工程目录
本地字体文件:C:\Windows\Fonts\SIMKAI.TTF
中控台的前端工程目录:/usr/share/zabbix/assets/fonts (docker中的目录)
注意上传后将文件名改成全小写:simkai.ttf
修改配置文件,将字体指向新上传的楷体:sed -i ‘s/DejaVuSans/simkai/g’ /usr/share/zabbix/include/defines.inc.php
重启docker容器即可