Zabbix 监控 —— 配置、API、对 Nginx 的监控

Zabbix 的介绍

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

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

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

Zabbix 的组成部分

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

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

Web界面: 为从任何地方和平台都可以访问 Zabbix ,推出基于 Web 的界面,该界面是 Zabbix Server 的一部分。 通 常 \color{#FF0000}{通常} 会和Zabbix Server 运行在同一台物理机器上, 但 是 并 不 一 定 ~ \color{#FF0000}{但是并不一定~}

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

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

Zabbix 的功能

数据采集:

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

灵活的阈值定义:

后端数据库定义非常灵活的告警阈值,即 触 发 器 \color{#FF0000}{触发器}

高度可配置化的告警:

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

实时图形:

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

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

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第1张图片

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

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

在这里插入图片描述

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;            # 授权
###

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第2张图片

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

在这里插入图片描述
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第3张图片

为 Zabbix Server 配置数据库

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

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第4张图片

为 Zabbix 前端配置 PHP

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

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第5张图片

启动 Zabbix Server 和 Agent 进程

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

在这里插入图片描述
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第6张图片

浏览器访问 zabbix

192.168.0.10/zabbix

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第7张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第8张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第9张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第10张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第11张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第12张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第13张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第14张图片
接 下 来 这 一 步 根 据 个 人 需 求 , 就 我 个 人 而 言 , 看 中 文 比 较 舒 服 \color{red}{接下来这一步根据个人需求,就我个人而言,看中文比较舒服}
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第15张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第16张图片

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

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第17张图片
创建主机
在这里插入图片描述
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第18张图片
在这里插入图片描述
添加监控模板
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第19张图片
zabbix2 主机配置 zabbix agent

vim /etc/zabbix/zabbix_agentd.conf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

zabbix 配置自动发现

实验环境:

主机名称 IP地址
zabbix 192.168.0.10
zabbix 192.168.0.11

先 删 除 我 们 之 前 手 动 添 加 的 监 控 主 机 \color{red}{先删除我们之前手动添加的监控主机}
在这里插入图片描述
配置自动发现动作
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第20张图片
配置动作
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第21张图片
配置自动发现
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第22张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第23张图片
重启 zabbix server
在 zabbix 主机上重启 zabbix server
在这里插入图片描述
在这里插入图片描述

zabbix 配置自动注册

自 动 发 现 s e r v e r 端 主 动 扫 描 网 段 中 的 所 有 主 机 , 将 符 合 条 件 的 加 入 到 集 群 中 ; 而 自 动 注 册 则 是 客 户 端 自 己 与 s e r v e r 端 通 信 加 入 集 群 \color{red}{自动发现 server 端主动扫描网段中的所有主机,将符合条件的加入到集群中;而自动注册则是客户端自己与 server 端通信加入集群} serverserver
实验环境:

主机名称 IP地址
zabbix 192.168.0.10
zabbbix 192.168.0.12

在 做 实 验 之 前 , 需 要 排 除 其 他 的 影 响 。 因 此 我 们 先 关 闭 自 动 发 现 \color{red}{在做实验之前,需要排除其他的影响。因此我们先关闭自动发现}
在这里插入图片描述
在这里插入图片描述
安装 Zabbix server

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

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第24张图片
配置 zabbix agent 并启动

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建自动注册的动作
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第25张图片
在这里插入图片描述
配置自动注册的操作
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第26张图片
在这里插入图片描述
zabbix 主机重启服务端,zabbix3 主机重启客户端
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Zabbix API

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

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

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

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

大多数 API 至少包含四种方法分别是( 检 索 、 创 建 、 更 新 、 删 除 数 据 \color{#FF0000}{检索、创建、更新、删除数据} ):

  • get
  • create
  • update
  • delete

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

验证 API 请求

在 访 问 Z a b b i x 中 的 任 何 数 据 之 前 , 需 要 登 陆 并 获 取 身 份 验 证 令 牌 。 我 们 可 以 通 过 u s e r . l o g i n 方 法 完 成 \color{#FF0000}{在访问 Zabbix 中的任何数据之前,需要登陆并获取身份验证令牌。我们可以通过 user.login 方法完成} 访Zabbixuser.login

在 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

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第27张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第28张图片
在这里插入图片描述

API 检索主机

当 前 有 一 个 有 效 的 用 户 身 份 验 证 令 牌 , 可 以 用 来 访 问 Z a b b i x 中 的 数 据 \color{red}{当前有一个有效的用户身份验证令牌,可以用来访问 Zabbix 中的数据} 访Zabbix

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

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第29张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第30张图片

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
###

在这里插入图片描述
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第31张图片
在这里插入图片描述

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
###

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第32张图片
创 建 前 \color{red}{创建前}
在这里插入图片描述
创 建 后 \color{red}{创建后}
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第33张图片
在这里插入图片描述
在这里插入图片描述

Zabbix 配置监控项

获得状态信息

实验环境:

  • zabbix2 主机中添加监控模板
    Zabbix 监控 —— 配置、API、对 Nginx 的监控_第34张图片
  • 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

在这里插入图片描述

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

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第35张图片
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第36张图片

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                    # 访问本地状态

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第37张图片
在这里插入图片描述

获取活跃连接数

  • 在 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

在这里插入图片描述
在这里插入图片描述

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

Zabbix 监控 —— 配置、API、对 Nginx 的监控_第38张图片

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

在这里插入图片描述

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

在这里插入图片描述
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第39张图片
在这里插入图片描述
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第40张图片
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Zabbix 监控 —— 配置、API、对 Nginx 的监控_第41张图片

获取接受请求数

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

在这里插入图片描述

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

在这里插入图片描述

  • 在 zabbix 的图形界面去进行配置 zabbix3 的监控项
    Zabbix 监控 —— 配置、API、对 Nginx 的监控_第42张图片
    Zabbix 监控 —— 配置、API、对 Nginx 的监控_第43张图片
    Zabbix 监控 —— 配置、API、对 Nginx 的监控_第44张图片
    Zabbix 监控 —— 配置、API、对 Nginx 的监控_第45张图片

你可能感兴趣的:(监控)