图解zabbix的安装部署,在zabbix监控里添加主机的三种方式,使用API 在zabbix监控系统中查看,创建及删除监控主机

Zabbix简介:

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由zabbix server与可选组件zabbix agent两部门组成。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

Zabbix的系统组成:

Zabbix Server:负责接收Agent发送的报告信息,组织所有配置、数据和操作。 Database
Storage:存储配置信息以及收集到的数据。 Web Interface:Zabbix的GUI接口,通常与Server运行在同一台机器上。
Proxy:可选组件,常用于分布式监控环境中。
Agent:部署在被监控主机上,负责收集数据发送给Server。

Zabbix主要功能:

CPU负荷,内存使用,磁盘使用,网络状况,端口监视,日志监视

实验环境:

server5(192.168.34.6)作为Zabbix Server
server3(192.168.34.4)作为zabbix agent

zabbix的安装

server5:

1.安装zabbix监控所需软件

[root@server5 ~]# cd zabbix/
[root@server5 zabbix]# ls
4.0                                  percona-zabbix-templates-1.1.8-1.noarch.rpm
apache-tomcat-8.5.24.tar.gz          simkai.ttf
jdk-8u121-linux-x64.rpm              zbx_percona_mysql_template.xml
oneitsm_zabbix_release-1.2.0.tar.gz
[root@server5 zabbix]# cd 4.0/
[root@server5 4.0]# ls
fping-3.10-1.el7.x86_64.rpm            zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm
iksemel-1.4-2.el7.centos.x86_64.rpm    zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
php-bcmath-5.4.16-42.el7.x86_64.rpm    zabbix-sender-4.0.5-1.el7.x86_64.rpm
php-mbstring-5.4.16-42.el7.x86_64.rpm  zabbix-server-mysql-4.0.5-1.el7.x86_64.rpm
zabbix-agent-4.0.5-1.el7.x86_64.rpm    zabbix-web-4.0.5-1.el7.noarch.rpm
zabbix-get-4.0.5-1.el7.x86_64.rpm      zabbix-web-mysql-4.0.5-1.el7.noarch.rpm
[root@server5 4.0]#  yum install -y zabbix-server-mysql-4.0.5-1.el7.x86_64.rpm zabbix-web-mysql-4.0.5-1.el7.noarch.rpm zabbix-web-4.0.5-1.el7.noarch.rpm zabbix-agent-4.0.5-1.el7.x86_64.rpm php-mbstring-5.4.16-42.el7.x86_64.rpm php-bcmath-5.4.16-42.el7.x86_64.rpm fping-3.10-1.el7.x86_64.rpm iksemel-1.4-2.el7.centos.x86_64.rpm -y

2.安装并配置mariadb数据库
mariadb安装过了不再演示,如果之前没有安装过,安装之后进行初始化,直接mysql_secure_installation ,不用像之前的mysql数据库一样在日志中查看默认密码

[root@server5 4.0]# yum install mariadb-server
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Package 1:mariadb-server-5.5.52-1.el7.x86_64 already installed and latest version
Nothing to do
[root@server5 4.0]# systemctl start mariadb

进入到数据库中允许使用utf-8编码并对用户授权
[root@server5 4.0]# mysql -uroot -p

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec) ##允许中文

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'westos'; 
Query OK, 0 rows affected (0.00 sec) ##授权

3.导入zabbix数据库

[root@server5 doc]# cd /usr/share/doc/zabbix-server-mysql-4.0.5/
[root@server5 zabbix-server-mysql-4.0.5]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@server5 zabbix-server-mysql-4.0.5]# zcat create.sql.gz | mysql -uzabbix -p zabbix ##zabbix的默认密码zabbix
Enter password: ##数据库密码

登陆数据库查看导入的数据库show databases; show tables;
在这里插入图片描述
4.编辑zabbix的配置文件,修改数据库密码,修改时区

[root@server5 zabbix-server-mysql-4.0.5]# vim /etc/zabbix/zabbix_server.conf 
124  DBPassword=westos
[root@server5 zabbix-server-mysql-4.0.5]# vim /etc/httpd/conf.d/zabbix.conf 
20         php_value date.timezone Asia/Shanghai

5.启动 zabbix server、zabbix agent、httpd

[root@server5 zabbix-server-mysql-4.0.5]# systemctl start zabbix-server
[root@server5 zabbix-server-mysql-4.0.5]# systemctl start zabbix-agent

[root@server5 zabbix-server-mysql-4.0.5]# systemctl start httpd

浏览器输入172.25.34.6/zabbix/,进行zabbix的web界面配置
在这里插入图片描述
在这里插入图片描述
输入默认用户Admin默认密码zabbix
在这里插入图片描述
进入zabbix的web管理界面

在这里插入图片描述
点击人物头像,切换为汉语,也可以重启设置密码,设置完成点击更新
在这里插入图片描述

二、 添加agent主机

server3:

在被监控端(server3)安装软件包,安装zabbix-agent

[root@server3 ~]# cd zabbix/
[root@server3 zabbix]# ls
4.0                                  percona-zabbix-templates-1.1.8-1.noarch.rpm
apache-tomcat-8.5.24.tar.gz          simkai.ttf
jdk-8u121-linux-x64.rpm              zbx_percona_mysql_template.xml
oneitsm_zabbix_release-1.2.0.tar.gz
[root@server3 zabbix]# cd 4.0/
[root@server3 4.0]# ls
fping-3.10-1.el7.x86_64.rpm            zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm
iksemel-1.4-2.el7.centos.x86_64.rpm    zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
php-bcmath-5.4.16-42.el7.x86_64.rpm    zabbix-sender-4.0.5-1.el7.x86_64.rpm
php-mbstring-5.4.16-42.el7.x86_64.rpm  zabbix-server-mysql-4.0.5-1.el7.x86_64.rpm
zabbix-agent-4.0.5-1.el7.x86_64.rpm    zabbix-web-4.0.5-1.el7.noarch.rpm
zabbix-get-4.0.5-1.el7.x86_64.rpm      zabbix-web-mysql-4.0.5-1.el7.noarch.rpm
[root@server3 4.0]# rpm -ivh zabbix-agent-4.0.5-1.el7.x86_64.rpm

更改配置文件

[root@server3 4.0]# vim /etc/zabbix/zabbix_agentd.conf 
98 Server=172.25.34.6
139 ServerActive=172.25.34.6
150 Hostname=server3

[root@server3 4.0]# systemctl start zabbix-agent

在服务器端(zabbix web )添加监控:有三种方式
(1) 手动创建主机 (2) (3)

手动添加:

配置—创建主机—主机名称----设置群组—agent代理ip地址–勾选启用—添加(回到配置页面)—点击下方server3—模板—连接指示器中选择—添加(添加到连接的模板)–添加

在这里插入图片描述
主机名称写为server3!!
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
添加完成后ZBX是灰色,刷新一下页面,可以看到ZBX变绿。

在这里插入图片描述

自动发现:

删除原来的server3

动作----事件源(自动发现)—创建动作—操作—更新----配置—自动发现(创建发现规则)—设置发现的IP范围—更新
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建完发现规则之后
点击 配置->主机 可以看到新发现的主机

自动注册:

首先,删除刚才自动添加的server3主机
并禁用自动发现
在这里插入图片描述
在这里插入图片描述
设置触发条件

在这里插入图片描述
在这里插入图片描述
重启agent服务(server3上)
[root@server3 include]# systemctl restart zabbix-server

刷新页面,自动注册成功

什么是API:

API(Application ProgrammingInterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。简单的说,API就是对外的接口,利用API可以直接到达软件硬件内部来进行操作….

zabbix中API的作用:

Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。
API的大致工作流如下:
(1)API
采用JSON-RPC实现。这意味着调用任何函数,都需要发送POST请求,输入输出数据都是以JSON格式
(2)准备JSON对象,它描述了你想要做什么(创建主机,获取图像,更新监控项等)。
(3)获取JSON格式响应。

在做实验前,把zabbix监控的自动发现和自动注册的相应配置都关掉(读者如果没有添加过则不用配置)

这里就利用API获得主机信息,添加主机删除主机做以展示

server5

编写脚本:查看zabbix监控系统的api接口:

[root@server5 ~]# vim zabbix-api
url -s -XPOST -H "Content-Type: application/json-rpc" -d '   # 利用curl命令模拟json格式的post请求
{
    "jsonrpc": "2.0",          # 这是标准的JSON RPC参数以标示协议版本。所有的请求都会保持不变
    "method": "user.login",       # 利用用户登陆的方式获取API
    "params": {
        "user": "Admin",             # zabbix监控系统的用户名和密码
        "password": "zabbix"
    },
    "id": 1,       # 这个字段用于绑定JSON请求和响应。响应会跟请求有相同的"id"。在一次性发送多个请求时很有用,这些也不需要唯一或者连续
    "auth": null
}' http://172.25.34.6/zabbix/api_jsonrpc.php | python -m json.tool
# 采用POST方法向http://example.com/zabbix/api_jsonrpc.php发送此JSON对象. http://example.com/zabbix/是Zabbix前端地址。
# api_jsonrpc.php是调用API的PHP脚本。可在安装可视化前端的目录下找到。

[root@server5 ~]# chmod +x zabbix-api 
[root@server5 ~]# ./zabbix-api 
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "bc5e6f0477f2bdbc94130bb212399dab"  ##获得# zabbix监控的API(令牌)
}

查看zabbix主机和被监控主机信息

[root@server5 ~]# vim zabbix-api
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": "bc5e6f0477f2bdbc94130bb212399dab"
}' http://172.25.34.6/zabbix/api_jsonrpc.php | python -m json.tool
[root@server5 ~]# ./zabbix-api 
{
    "id": 2,
    "jsonrpc": "2.0",
    "result": [
        {
            "host": "Zabbix server",
            "hostid": "10084",
            "interfaces": [
                {
                    "interfaceid": "1",
                    "ip": "127.0.0.1"
                }
            ]
        },
        {
            "host": "server3",
            "hostid": "10264",
            "interfaces": [
                {
                    "interfaceid": "3",
                    "ip": "172.25.34.4"
                }
            ]
        },
        {
            "host": "server4",
            "hostid": "10265",
            "interfaces": [
                {
                    "interfaceid": "4",
                    "ip": "172.25.34.5"
                }
            ]
        }
    ]
}

执行脚本获取被监控的主机信息

删除zabbix监控中的主机

[root@server5 ~]# vim zabbix-api
curl -s  -XPOST -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "host.delete", # 调用host.delete方法
"params": [
"10264"  # 上一步返回的被监控主机hostid号
],
"id": 2,
"auth": "bc5e6f0477f2bdbc94130bb212399dab"
}' http://172.25.34.6/zabbix/api_jsonrpc.php | python -m json.tool
[root@server5 ~]# ./zabbix-api 
{
    "id": 2,
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10264"
        ]
    }
}

浏览器发现对应主机已经删除了

添加主机:

[root@server5 ~]# vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "host.create", # 调用host.create方法
"params": {
"host": "server5",# 被监控的主机名
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "172.25.34.6",# 被监控主机的ip
"dns": "",
"port": "10050" # zabbix-agent的端口号
}
],
"groups": [
{
"groupid": "2"# 建立的主机加入的群组id
}
],
"templates": [
{
      "templates":"10001"# 建立的主机使用的模版id
}
]
},
"id": 2,
"auth": "bc5e6f0477f2bdbc94130bb212399dab"
}' http://172.25.34.6/zabbix/api_jsonrpc.php | python -m json.tool

[root@server5 ~]# ./zabbix-api 
{
    "id": 2,
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10267"
        ]
    }
}

刷新页面就显示server5已经添加成功了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值