企业级监控系统zabbix---安装部署、自动发现与自动注册、API

文章目录

  • 1. zabbix的介绍
  • 2. zabbix的配置
    • 2.1安装zabbix监控所需软件
    • 2.2配置数据库
    • 2.3编辑zabbix的配置文件
    • 2.4 zabbix的web界面配置
    • 2.5添加zabbix-agent
  • 3.自动发现&自动注册
    • 3.1自动发现规则
    • 3.2zabbix监控配置自动发现
    • 3.3自动注册规则
    • 3.4zabbix监控配置自动注册
  • 4. Zabbix API
    • 4.1 验证API请求
    • 4.2 API检索主机
    • 4.3 API删除主机
    • 4.4 创建主机到监控项

1. zabbix的介绍

介绍:

  • Zabbix 是一个企业级分布式开源监控解决方案。
  • Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。
  • Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保可以在任何地方访问您监控的网络状态和服务器健康状况。

组成:

  • zabbix agent:部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix server

  • zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等

  • zabbix database:用于存储所有zabbix的配置信息,监控数据的数据库

  • zabbix web:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上

2. zabbix的配置

2.1安装zabbix监控所需软件

在server1上:

yum install -y php-mbstring-5.4.16-46.el7.x86_64.rpm php-bcmath-5.4.16-46.el7.x86_64.rpm

yum install -y zabbix-agent zabbix-server-mysql zabbix-web zabbix-web-mysql.noarch

2.2配置数据库

安装配置数据库:

yum install -y mariadb
systemctl start mariadb

mysql
create database zabbix character set utf8 collate utf8_bin;
grant all pricileges on zabbix.* to 'zabbix'@'localhost' identified by 'westos';

mysql -uzabbix -pwestos zabbix ##登录成功

企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第1张图片
将数据导入zabbix数据库:

cd /usr/share/doc
cd zabbix-server-mysql-4.0.23/
ls
ll create.sql.gz
zcat create.sql.gz | wc -l
zcat create.sql.gz | mysql -uzabbix -pwestos zabbix

2.3编辑zabbix的配置文件

cd /etc/zabbix

vim zabbix_server.conf
#DBName=zabbix
#DBUser=zabbix
#DBPassword=westos

systemctl start zabbix-server
vim /etc/httpd/conf.d/zabbix.conf
#20 php_value date.timezone Asia/Shanghai	
#修改时区为亚洲上海

systemctl start httpd
systemctl enable --now httpd

2.4 zabbix的web界面配置

浏览器访问172.25.10.1/zabbix/,进行zabbix的web界面配置:

企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第2张图片
企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第3张图片
Admin&&zabbix
企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第4张图片
进入zabbix平台后,可以修改监控界面语言和登陆密码:
登录 -> 问号旁边小人头

企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第5张图片

2.5添加zabbix-agent

在server3中:

yum install -y zabbix-agent

cd /etc/zabbix
vim zabbix_agentd.conf
#Server=172.25.10.1
#ServerActive=172.25.10.1
#Hostname=server3/server4

systemctl restart zabbix-agent
ss -antlp 

企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第6张图片
企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第7张图片
企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第8张图片
企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第9张图片
手动添加主机到监控集群:

配置 -> 主机 -> 创建主机
企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第10张图片
手动添加模块:

主机 ->模块
企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第11张图片
在这里插入图片描述

3.自动发现&自动注册

自动发现与自动注册

3.1自动发现规则

自动发现规则主要针对企业批量添加主机,如果使用传统办法去单个添加设备、分组、项目、图像…这是一个任务量巨大的一个工程,由此引入自动发现规则。
自动发现规则由服务端主动发起,Zabbix
Server开启发现进程,定时扫描局域网中IP服务器、设备,实现自动刚发现主机、自动将主机添加到主机组、自动加载模板、自动创建项目(item)、自动创建图像等功能。

3.2zabbix监控配置自动发现

zabbix-server主动发现zabbix-agent

step1 删除之前添加的server3设备

step2 配置—动作—自动发现—启用

step3 点击Auto discovery Linux servers—添加触发条件—更新

step4 配置—自动发现—Local network

step5 修改IP范围和时间间隔 -> 已启用 -> 更新

step6 配置 -> 主机 -> 等待1min左右,刷新页面—server3被自动发现

3.3自动注册规则

Zabbix的自动注册规则主要用于Agent主动且自动向Server注册,适用于当前云环境下的监控。Zabbix-Server在收到Zabbix-Agent的注册请求时,如果没有收到IP地址的值,则使用Zabbix-Agent和Zabbix-Server建立TCP连接时使用的IP地址。

3.4zabbix监控配置自动注册

zabbix-agent主动向zabbix-server注册

step1 添加zabbix-agent:(server4)

yum install -y zabbix-agent

编辑agent配置文件:

vim /etc/zabbix/zabbix_agentd.conf#
#98 Server=172.25.10.1zabbix被动模式要来取的ip地址(zabbix-server)
#139 ServerActive=172.25.10.1	#zabbix主动模式要发送的ip地址(zabbix-server)
#150 Hostname=server4

systemctl start zabbix-agent
netstat -antlp | grep 10050

step2 在zabbix-web中刷新 -> server4出现:

这是上一步骤自动发现的结果,删除server4

step3 配置->自动发现->停用

step4 配置-> 动作->自动注册->创建动作

step5 动作->名称->触发条件->启用->添加

step6 动作-> 操作-> 新的

step7 添加主机 ->添加

step8 添加到主机群组->选择群组->添加

step9 与模版关联->选择模版->添加->更新

step10 配置->主机->等待1min左右,刷新页面—server4自动注册成功

4. Zabbix API

Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:创建新的应用程序以使用Zabbix; 将Zabbix与第三方软件集成;自动执行常规任务。

Zabbix API是基于Web的API,作为Web前端的一部分提供。该API包含一组独立的方法;客户端和API之间的请求和响应使用JSON格式进行编码。大多数API至少包含四种方法: get, create, update 和 delete ,分别是检索,创建,更新和删除数据。当完成了前端的安装配置后,你就可以使用远程HTTP请求来调用API。

4.1 验证API请求

在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。

** 在server1中:**

[root@server1 conf]# curl -s -X POST -H "Content-Type: application/json-rpc" -d '
> {
>    "jsonrpc": "2.0",
>    "method": "user.login",
>    "params": {
>       "user": "Admin",
>       "password": "zabbix"
>    },
>    "id": 1,
>    "auth": null
> }' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool

chmod +x zabbix-api

./zabbix-api
会出现相应请求的标识符
JSON-PRC协议版本
以及result方法返回的数据

企业级监控系统zabbix---安装部署、自动发现与自动注册、API_第12张图片

4.2 API检索主机

vim zabbix-api

    curl -s -X POST -H "Content-Type: application/json-rpc" -d '
    {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": [
                "hostid",
                "host"
            ],
            "selectInterfaces": [
                "interfaceid",
                "ip"
            ]
        },
        "id": 2,
        "auth": "49d21b4ea47d062bdab080248ecf7b68" 上一步的result
    }' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool

./zabbix-api 检索主机

4.3 API删除主机

curl -s -X POST -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "10265"     ###hostid
    ],            
    "auth": "9a85195197da6e9db5146acf1c633f2d",  ###身份验证牌令
    "id": 1                  
}' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool

./zabbix-api

4.4 创建主机到监控项

curl -s -X POST -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server4",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.1.4",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "2"
            }
        ],
        "templates": [
            {
                "templateid": "10001"
            }
        ]
    },
    "auth": "9a85195197da6e9db5146acf1c633f2d",
    "id": 1
}'  http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool

你可能感兴趣的:(zabbix,linux)