Zabbix 的介绍

Zabbix 是一个企业级分布式开源监控解决方案。

Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。

Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix 所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保可以在任何地方访问监控的网络状态和服务器健康状况。

Zabbix 的组成部分

Server: Zabbix Server 是 Zabbix 软件的核心组件。agent 向其报告可用性、系统完整性信息和统计信息。Server 也是存储所有配置信息、统计信息和操作信息的核心存储库。

数据库: 所有配置信息以及 Zabbix 采集到的数据都将被存储在数据库中。

Web界面: 为从任何地方和平台都可以访问 Zabbix ,推出基于 Web 的界面,该界面是 Zabbix Server 的一部分。zabbix6 nginx 安装ssl openssl zabbix nginx配置_API会和Zabbix Server 运行在同一台物理机器上,zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_02

Proxy: Zabbix Proxy 可以代替 Zabbix Server 采集性能和可用性数据。Zabbix Proxy 在 Zabbix 的部署是可选部分;但是 Proxy 的部署可以很好的分担单个 Zabbix Server 的负载。

Agent: Zabbix Agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix Server。

Zabbix 的功能

数据采集:

  • 可用性和性能检查
  • 支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控
  • 自定义检查
  • 自定义的时间间隔采集需要的数据
  • 通过 Server / Proxy 和 Agents 来执行数据采集

灵活的阈值定义:

后端数据库定义非常灵活的告警阈值,即zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_03

高度可配置化的告警:

  • 可以根据递增计划、接收者、媒介类型自定义发送告警通知
  • 使用宏变量可以使告警通知变得更加高效有用
  • 自动操作包含远程执行命令

实时图形:

使用内置图形功能可以将监控项实时绘制成图形

Web 监控功能:

Zabbix 可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间

丰富的可视化选项:

  • 可以组合多个监控项到单个视图中,创建自定义图表
  • 网络拓扑图
  • 以仪表盘样式展示自定义聚合图形和幻灯片演示
  • 报表
  • 监控资源的更高层次展示视图(业务视图)

历史数据存储:

  • 存储在数据库中的数据
  • 历史配置
  • 内置数据管理机制(housekeeping)

配置简单:

  • 将被监控设备添加为主机
  • 主机一旦添加到数据库中,就会采集数据用于监控
  • 将模板用于监控设备

使用模板:

  • 模板中分组检查
  • 模板可以关联模板,继承已关联模板的属性

网络发现:

  • 自动发现网络设备
  • Zabbix Agent 发现设备后自动注册
  • 自动发现文件系统、网络接口和 SNMP OIDs 值

快捷的 Web 界面:

  • 基于 PHP 的 Web 前端
  • 可以从任何地方访问
  • 可以定制自己的操作方式
  • 可以通过审计日志来查看操作

Zabbix API:

Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途

权限管理系统:

  • 安全的用户身份验证
  • 指定的用户只能查看指定的权限范围内的视图

功能强大且易于拓展的 Zabbix Agent:

  • 部署于被监控对象上
  • 支持 Linux 和 Windows

二进制守护进程:

  • 为了更好的性能和更少的内存占用,采用 C 语言编写
  • 便于移植

适应更复杂的环境:

使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控

Zabbix 配置

实验环境: zabbix:192.168.0.10

安装 Zabbix Server、Web 前端和 Agent

zabbix 下载地址:https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/

# 下载安装  Zabbix Server、Web 前端和 Agent

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_04

安装创建初始数据库(mariadb)

yum install -y mariadb-server      # 安装数据库 
systemctl start mariadb.service  # 启动数据库
mysql_secure_installation          # 进行安全初始化

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_05

mysql -uroot -p
###
create database zabbix character set utf8 collate utf8_bin;   # 创建库
create user zabbix@localhost identified by 'redhat';
grant all privileges on zabbix.* to zabbix@localhost;            # 授权
###

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_06

zcat /usr/share/doc/zabbix-server-mysql-4.4.1/create.sql.gz | mysql -uzabbix -p zabbix   # 导入初始架构和数据

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_07


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_08

为 Zabbix Server 配置数据库

vim /etc/zabbix/zabbix_server.conf
###
DBPassword=redhat
###

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_09

为 Zabbix 前端配置 PHP

vim /etc/httpd/conf.d/zabbix.conf
###
php_value date.timezone Asia/Shanghai
###

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_10

启动 Zabbix Server 和 Agent 进程

systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_11


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_12

浏览器访问 zabbix

192.168.0.10/zabbix

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_13


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_14


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_15


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_16


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_17


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_18


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_19


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_20


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_21

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_22


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_23

Zabbix 监控功能的实现

手动添加主机到监控集群

实验环境:

主机名称

IP地址

zabbix

192.168.0.10

zabbix2

192.168.0.11

安装Zabbix server

yum install zabbix-agent-4.4.1-1.el7.x86_64.rpm -y

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_24


创建主机

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_25


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_26


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_27


添加监控模板

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_28


zabbix2 主机配置 zabbix agent

vim /etc/zabbix/zabbix_agentd.conf

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_29


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_30


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_31


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_32


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_33

zabbix 配置自动发现

实验环境:

主机名称

IP地址

zabbix

192.168.0.10

zabbix

192.168.0.11

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_34

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_35


配置自动发现动作

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_36


配置动作

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_37


配置自动发现

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_38


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_39


重启 zabbix server

在 zabbix 主机上重启 zabbix server

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_40


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_41

zabbix 配置自动注册

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_42
实验环境:

主机名称

IP地址

zabbix

192.168.0.10

zabbbix

192.168.0.12

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_43

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_44


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_45


安装 Zabbix server

yum install zabbix-agent-4.4.1-1.el7.x86_64.rpm -y

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_46


配置 zabbix agent 并启动

vim /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent.service

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_47


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_48


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_49


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_50


创建自动注册的动作

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_51


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_52


配置自动注册的操作

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_53


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_54


zabbix 主机重启服务端,zabbix3 主机重启客户端

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_55


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_56


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_57

Zabbix API

Zabbix API 允许我们通过编程的方式检索和修改 Zabbix 的配置,并提供对历史数据的访问。它广泛应用于:

  • 创建新的应用程序来使用 Zabbix
  • 将 Zabbix 与第三方软件集成
  • 自动执行常规任务

Zabbix API 是基于 Web 的 API,作为 Web 前端的一部分提供。

  • API 包含一组独立的方法
  • 客户端和 API 之间的请求和响应通过使用 JSON 格式进行编码

大多数 API 至少包含四种方法分别是(zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_58):

  • get
  • create
  • update
  • delete

当我们在完成前端的安装配置之后,就可以通过远程 HTTP 请求来调用 API

验证 API 请求

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_59

在 zabbix 主机中:

vim zabbix-api
###
curl -s -XPOST -H "Content-Type: application/json-rpc" -d'
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}' http://192.168.010/zabbix/api_jsonrpc.php
###
chmod +x zabbix-api
./zabbix-api

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_60


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_61


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_62

API 检索主机

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_63

vim zabbix-api
./zabbix-api     # 检索主机

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_64


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_65

API 删除主机

vim zabbix-api
###
curl -s -XPOST -H "Content-Type: application/json-rpc" -d'
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "10308"
    ],
    "id": 2,
    "auth": "95f97d358e75ada647466abbbe015dbd"
}' http://192.168.0.10/zabbix/api_jsonrpc.php | python -m json.tool
###

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_66


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_67


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_68

API 创建主机到监控项

vim zabbix-api
###
curl -s -XPOST -H "Content-Type: application/json-rpc" -d'
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "zabbix3",                              # 被创建的主机名
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "192.168.0.12",                # 主机明 IP
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "2"                            # 主机群组 id
            }
        ],
        "templates": [
            {
                "templateid": "10001"               # 模板 id
            }
        ]
    },
    "id": 2,
    "auth": "95f97d358e75ada647466abbbe015dbd"       # 身份验证牌
}' http://192.168.0.10/zabbix/api_jsonrpc.php | python -m json.tool
###

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_69


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_70

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_71


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_72

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_73


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_74


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_75

Zabbix 配置监控项

获得状态信息

实验环境:

  • zabbix2 主机中添加监控模板
  • zabbix3 主机中配置 nginx
yum install -y gcc zlib-devel pcre-devel
tar zxf nginx-1.18.0.tar.gz                                     # 解压 nginx 包
vim nginx-1.18.0/auto/cc/gcc                               # 关闭 debug

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_76

./configure --prefix=/usr/local/nginx --with-http_stub_status_module                # 编译
make && make install                                                                                       #  安装

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_77


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_78

vim /usr/local/nginx/conf/nginx.conf
###
        location /status {
            stub_status   on;
            access_log    off;
            allow         127.0.0.1;
            deny          all;
        }
###
/usr/local/nginx/sbin/nginx -t                  # 语法检测
/usr/local/nginx/sbin/nginx                     # 启动
curl http://127.0.0.1/status                    # 访问本地状态

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_79


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_80

获取活跃连接数

  • 在 zabbix3 主机中的用户自定义配置的目录中配置
vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 
###
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active |awk '{print $3}'
###
systemctl restart zabbix-agent.service

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_81


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_82

  • zabbix 主机中测试
yum install zabbix-get-4.4.1-1.el7.x86_64.rpm -y            # 安装测试工具

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_83

zabbix_get -s 192.168.0.12 -p 10050 -k "nginx.active"             # 获取活跃连接数

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_84

  • zabbix 主机的图形化界面中配置 zabbix3 的监控项

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_85


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_86


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_87


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Server_88


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_89

vim /usr/share/zabbix/include/defines.inc.php            # 更改字体

zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_90


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_91


zabbix6 nginx 安装ssl openssl zabbix nginx配置_API_92


zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_93

获取接受请求数

  • 在 zabbix3 主机上用户自定义配置的目录中配置
vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_94

  • zabbix 主机中测试
zabbix_get -s 192.168.0.12 -p 10050 -k "nginx.accept"

zabbix6 nginx 安装ssl openssl zabbix nginx配置_Web_95

  • 在 zabbix 的图形界面去进行配置 zabbix3 的监控项