zabbix监控(一)环境搭建、主机发现、api使用

一、zabbix简介

Zabbix 是一个企业级分布式开源监控解决方案。Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。

Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。Zabbix 通过 C/S 模式采集数据,通过 B/S 模式在 web 端展示和配置。

zabbix核心组件如下:

Server

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

数据库

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

Web 界面

为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。

Proxy

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

Agent

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

二、zabbix下载及环境部署

先准备三个纯净的centos7主机环境。

下载地址:下载Zabbix

安装版本:

 根据官网下面给的步骤操作即可:

在yum 源中添加了zabbix文件:

 但是由于在官网地址下载太慢,所以我们将其中的源换成阿里云的源:

 在阿里云上下载:

 

激活前端的源:

 

初始化数据库:

在mysql官网下载rpm包:

 

 

 

 初始密码:

 

设置新密码,此处的新密码要求大小写+数字+特殊符号超过8位。

若是密码忘记了,先关掉数据库,进入 /var/lib/mysql 中,将其中的数据全部删掉,再打开数据库再重新操作一遍。(仅限于最开始没有数据的时候) 

导入数据库:

 

 因为数据较大,导入时间可能较长,注意不要ctrl+c退出。导入成功:

修改zabbix-server配置文件:

 

配置前端:

环境配置成功:

 

 

 此处的密码是zabbix。

三、 zabbix主机发现

将server1上的zabbix.repo源copy给server2和server3,由于是copy的,所以没有校验key,修改yum源文件:

修改server-agent 配置文件:

 

 

3.1 手动在web端添加

此时在网页监控端,配置---主机 中 创建主机:

 填好信息后添加主机:

此时server2已经被添加了,但是我们还没设置监控项,所以后面一块是空白: 

 添加模板:

此监控项意思是server端主动采集信息:

选择后进行更新,我们就发现添加了一些监控项,这些监控项是直接从模板中添加的:

进入监控项可以发现里面有各种监控项的设置:
 

 以上为手工在web的添加方法。在server3上编辑和server2同样的配置文件:

 

在 配置---动作 中 Discovery actions 是配合自动发现策略的,当自动发现发现一个agent,他就会自动执行其中的动作: 

 将其启用:

进入 配置---自动发现:

 设置完成后更新:

 必需先启用动作再启用自动发现,因为如果自动发现了但是没有动作,此条消息就过去了。在 监测---自动发现中:

 在 配置--主机中发现已经自动添加了,自动发现适用于通用模板的监控项:

3.2 主机被自动发现

接下来我们设置主机自动被发现。我们先把server3主机删掉,然后让其主动注册过来:

 首先我们先将自动发现和动作停掉:

创建一个自动注册动作:

匹配条件:名称包含sever:

 到达匹配条件的做以下操作:

添加成功:

 我们刚刚断开了server3,现在我们只需重启server3的zabbix服务,就会被自动发现并添加:

 可以看到server3已经被自动发现了。

四、使用zabbix的api

 4.1 通过API添加主机

当完成了前端的安装配置后,你就可以使用远程HTTP请求来调用API。为此,需要向位于前端目录中的 api_jsonrpc.php 文件发送HTTP POST请求。例如,如果你的Zabbix前端安装在 http://company.com/zabbix, 那么用HTTP请求来调用 apiinfo.version 方法就如下面这样:

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://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool

请求的 Content-Type 头部必须设置为以下值之一: application/json-rpc, application/json 或 application/jsonrequest。

 我们也可以将其写进脚本中:

 

4.2 使用api检索主机

我们现在有一个有效的用户身份验证令牌,可以用来访问Zabbix中的数据。 例如,让我们使用 host.get 方法检索所有已配置主机的ID,主机名和接口 :

curl -s XPOST -H 'Content-Type: application/json-rpc' -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "hostid",
            "host"
        ],
        "selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 2,
    "auth": "b523e950a24541ed6da53d6f9ff1fb58"
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool

更改脚本内容使用刚刚获得的token:

此时我们就得到了所有主机列表。

4.3 通过api删除主机

我们先把刚刚的自动注册动作禁掉:

curl -s XPOST -H 'Content-Type: application/json-rpc' -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "10438"   #此处为刚刚获得的hostid
    ],
    "id": 2,
    "auth": "b523e950a24541ed6da53d6f9ff1fb58"
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool

 

只要不报错就成功:

4.4 使用api添加主机 

curl -s XPOST -H 'Content-Type: application/json-rpc' -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server3",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.254.3",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "2"
            }
        ],
        "tags": [
            {
                "tag": "server3",
                "value": "Linux server"
            }
        ],
        "templates": [
            {
                "templateid": "10001"
            }
        ]
    },
    "id": 2,
    "auth": "b523e950a24541ed6da53d6f9ff1fb58"
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool

 

此时server3已经成功添加:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值