Zabbix安装部署,在Zabbix监控里添加主机,使用API实现主机基础管理

前言:

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

实验环境:

server1172.25.75.1zabbix-server zabbix-agent
server2172.25.75.2zabbix-agent
server3172.25.75.3zabbix-agent

一、Zabbix-server环境的搭建

先给大家介绍两个搜索下载各种rpm包的网站,方便大家下载依赖包。
pbone:http://rpm.pbone.net/
pkgs:https://pkgs.org/

我们实验中所用到的依赖包,可以在这两个网站下载哈!!!

1、安装zabbix

在这里插入图片描述

[root@server1 ~]# ls
fping-3.10-1.el7.x86_64.rpm
iksemel-1.4-2.el7.centos.x86_64.rpm
php-bcmath-5.4.16-42.el7.x86_64.rpm
php-mbstring-5.4.16-42.el7.x86_64.rpm
zabbix-agent-4.0.5-1.el7.x86_64.rpm
zabbix-get-4.0.5-1.el7.x86_64.rpm
zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm
zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
zabbix-sender-4.0.5-1.el7.x86_64.rpm
zabbix-server-mysql-4.0.5-1.el7.x86_64.rpm
zabbix-web-4.0.5-1.el7.noarch.rpm
zabbix-web-mysql-4.0.5-1.el7.noarch.rpm
[root@server1 ~]# yum install -y fping-3.10-1.el7.x86_64.rpm iksemel-1.4-2.el7.centos.x86_64.rpm 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 php-bcmath-5.4.16-42.el7.x86_64.rpm php-mbstring-5.4.16-42.el7.x86_64.rpm

在这里插入图片描述

2、下载mysql,初始化

[root@server1 ~]# yum install mariadb-server -y
[root@server1 mysql]# systemctl start mariadb
[root@server1 mysql]# mysql_secure_installation

在这里插入图片描述

3、安装zabbix客户端,可以监控自己。

[root@server1 ~]# yum install zabbix-agent-4.0.5-1.el7.x86_64.rpm -y

4、创建zabbix用户,授权

[root@server1 ~]# mysql -p
MariaDB [(none)]>  create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';

在这里插入图片描述

5、导入数据

[root@server1 ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz | mysql -uzabbix -p zabbix

在这里插入图片描述
进入mysql查看是否导入成功
在这里插入图片描述

6、更改服务端配置文件,启动服务

[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf
124 DBPassword=redhat

开启zabbix:

[root@server1 ~]# systemctl start zabbix-server
[root@server1 ~]# systemctl start zabbix-agent
[root@server1 ~]# netstat -tnlp

在这里插入图片描述

7、更改httpd的zabbix配置文件,启动http

[root@server1 ~]# vim /etc/httpd/conf.d/zabbix.conf
 20         php_value date.timezone Asia/Shanghai
 [root@server1 ~]# systemctl start httpd
[root@server1 ~]# netstat -tnlp

在这里插入图片描述

8、浏览器前端配置

在客户端浏览器输入:172.25.75.1/zabbix/
在这里插入图片描述
Next
在这里插入图片描述
这里必须全为OK才可以继续!!!
在这里插入图片描述
输入数据库的密码!(我是redhat)
在这里插入图片描述
Name名字可以随意取
在这里插入图片描述
点击Next。
在这里插入图片描述
最后点击Finish。完成基本设置。
在这里插入图片描述
这里可以输入帐号和密码,我们输入管理员帐号和密码(帐号Admin,密码zabbix)
在这里插入图片描述
zabbix是支持中文的,可以点加右上角的头像,选择chinese。
在这里插入图片描述

二、添加agent节点

1、在server2上安装zabbix-agent

[root@server2 ~]# ls
zabbix-agent-4.0.5-1.el7.x86_64.rpm
[root@server2 ~]# rpm -ivh zabbix-agent-4.0.5-1.el7.x86_64.rpm 
warning: zabbix-agent-4.0.5-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-agent-4.0.5-1.el7         ################################# [100%]

2、更改zabbix-agent的配置文件,配置zabbix-server端

[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf
 98 Server=172.25.75.1
139 ServerActive=172.25.75.1
150 Hostname=server2
[root@server2 ~]# systemctl start zabbix-agent
[root@server2 ~]# cat /var/log/zabbix/zabbix_agentd.log

在这里插入图片描述

3、手动在web界面添加节点

在这里插入图片描述
点击创建主机。
在这里插入图片描述
我们先监控我们的Linux系统,这里模板就选择Linux系统就可以了!
在这里插入图片描述
然后配置主机:
在这里插入图片描述
填入我们server2的相关信息,后点击添加!
在这里插入图片描述
这里如果可用性么有的话,耐心等待一段时间后,就会更新到可用了!!!
在这里插入图片描述
这就是手动添加的步骤了,那么如果有几百台主机的话,一台一台的操作实在效率太低了。我们有自动发现和自动注册动作可以完美解决这个问题哈!

4、配置自动发现动作

我们先把我们手动添加的主机删掉。
在这里插入图片描述
点击动作!
在这里插入图片描述
点击事件源,选择自动发现
在这里插入图片描述
点击名称!更改自动发现动作的触发条件
在这里插入图片描述
这里可以选择很多的条件,我们的条件是包含server,然后点击触发条件下面的添加。
在这里插入图片描述
点击更新。
在这里插入图片描述
点击停用,启用该动作!
在这里插入图片描述
然后点击自动发现!
在这里插入图片描述
点击名称。
在这里插入图片描述
更改IP范围和更新间隔后,更新,并且启用。
在这里插入图片描述
我们再次切换到主机,发现主机已经自动添加到列表里了
在这里插入图片描述

5、配置自动注册动作

1、停用自动发现动作,并且配置server3的agent相关配置

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

2、web端配置

在这里插入图片描述
在动作中选择自动注册,然后创建动作。
在这里插入图片描述
在这里插入图片描述
填入动作名称,和设置触发条件。后设置操作
在这里插入图片描述
操作,添加主机,添加到主机群组,链接模板。后点加添加
在这里插入图片描述
我们切换到主机,查看动作是否成功!
在这里插入图片描述
我们发现server3已经成功添加到我们的主机列表中了!

6、自动发现和自动注册的区别

zabbix的server端是根据agent的主机名为标识来添加主机的。 这句话的意思是说,如果agent和server在网络上打通,server是通过agent的主机名来区分不同主机的。这个agent的主机名是在zabbix_agent.conf配置文件中来设定的。所以有时你会发现两台agent ip一样,但是主机名不一样,也是没有问题的。

自动发现是zabbix-server主动去添加主机。在web上创建自动发现的规则后,zabbix-server会在一个ip地址范围内去扫描agent主机,并将agent主机添加到web端。Zabbix-server的操作,会增加server的压力。

自动注册zabbix-agent主动发送注册信息到server端,然后agent主机会被添加到web端。这是agent端的操作,会降低server端的负载。但前提是agent端一定要安装了zabbix-agent程序

三、使用API管理主机

在访问Zabbix的任何数据之前,需要登录并且获取身份令牌,我们使用标准Zabbix Admin用户身份登录,那么我们的JSON请求如下所示:

1、登录并且获取身份令牌

[root@server1 ~]# 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://172.25.75.1/zabbix/api_jsonrpc.php | python -m json.tool	#ip为zabbix的server端的ip
[root@server1 ~]# chmod +x zabbix-api 
[root@server1 ~]# ./zabbix-api 
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "9cc8178a9cf275fb17028813078d6dda"		#这就是身份令牌
}

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

2、编辑api文件,实现列出主机列表

[root@server1 ~]# 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": "9cc8178a9cf275fb17028813078d6dda"		#这里的身份令牌是我们生成的
}' http://172.25.75.1/zabbix/api_jsonrpc.php | python -m json.tool

在这里插入图片描述

[root@server1 ~]# ./zabbix-api		#查看主机列表

在这里插入图片描述

3、使用api完成删除主机

在实验前,停用我们之前的自动注册和自动发现动作。

[root@server1 ~]# vim zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
        "10265"		#这里删除10265也就是我们查看时的server3
    ],
    "id": 2,
    "auth": "9cc8178a9cf275fb17028813078d6dda"
}' http://172.25.75.1/zabbix/api_jsonrpc.php | python -m json.tool

在这里插入图片描述

[root@server1 ~]# ./zabbix-api

在这里插入图片描述
我们查看我们的web界面。
在这里插入图片描述
server3的确被删掉了!!!

4、使用api实现添加主机

[root@server1 ~]# vim zabbix-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.75.3",
                "dns": "",
                "port": "10050"		#zabbix-agent服务的端口
            }
        ],
        "groups": [
            {
                "groupid": "2"		#groupid号
            }
        ],
        "templates": [
            {
                "templateid": "10001"		#模板号
            }
        ]
    },
    "id": 2,
    "auth": "9cc8178a9cf275fb17028813078d6dda"
}' http://172.25.75.1/zabbix/api_jsonrpc.php | python -m json.tool

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

[root@server1 ~]# ./zabbix-api

在这里插入图片描述
在这里插入图片描述
成功使用api添加主机!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值