zabbix(二)

zabbix

1.zabbix监控的模式

        主动和被动模式都是对于客户端而言

  • 主动模式

        客户端主动将数据发送给server或者是代理服务器

  • 被动模式

         服务端或者proxy(代理服务器)主动找客户端索要数据------------>默认方式

        被动模式在成规模的集群(成百上千台的),都是由服务端主动去找,那么服务端的压力会很大。

        可视化界面创建模板时,可以选择主动还是被动模式。

2.zabbix之自动发现

        自动发现:服务端可以自动发现客户端,并且把客户端添加到监控组当中去。

        实现方法:通过zabbix官网提供的API内部的接口

API和端口之间的区别

应用和应用之间的通信:端口对端口 ---- 端到端

应用内部的组件进行通信:API

方法一:API

获取内部的通信密钥(token密钥)

#在服务端执行,获取token密钥
curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "user.login",
  "params": {
    "username": "Admin",
    "password": "zabbix"
  },
  "id": 1
}' http://192.168.206.60/zabbix/api_jsonrpc.php

#post: 服务器的后台发送数据
#Content-Type:application/json:发送的应用数据格式是json
#api_jsonrpc.php后台的动态请求的文件

 {"jsonrpc":"2.0","result":"b5a3a34f9e1a1ceac70f3c0c557e5155","id":1}root@nginx1:~#

#b5a3a34f9e1a1ceac70f3c0c557e5155就是密钥

向API发送POST请求,添加新的主机 

nignx1:192.168.206.60 zabbix server

nignx2:192.168.206.70 zabbix-agent

nginx3:192.168.206.80 zabbix-agent

#在服务端执行

curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "host.create",
  "params": {
     "host": "nginx3",
     "interfaces": [
       {
         "type": 1,
         "main": 1,
         "useip": 1,
         "ip": "192.168.206.80",
         "dns": "",
         "port": "10050"
       }
   ],
   "groups": [
      {
         "groupid": "2"
        }
   ],
   "templates": [
   {
        "templateid": "10343"
   }
   ]
},
"auth": "b5a3a34f9e1a1ceac70f3c0c557e5155",
"id": 1
}' http://192.168.206.60/zabbix/api_jsonrpc.php | python3 -m json.tool

解释如下-------------------------------------------------------------------------------------------------------------

"method": "host.create" #定义请求的方法,方法有很多,创建主机。
 "host": "test2" 定义客户端的主机名
"interfaces":   #定义监控的类型和客户端的信息
"type": 1    #1 agent;2 snmp;3 umpi;4 JMX
"useip": 1   #1表示使用ip地址;0表示使用DNS解析主机名
"ip": "192.168.206.80"  #客户端的ip地址
"port": "10050" #客户端的端口
"groups": #主机群组 主机组id
"templates": #模板 模板id

方法二:页面的自动发现  

#有bug,不推荐

用nginx2实验,在数据采集的主机里删除nginx2

数据采集-->自动发现-->创建发现规则

告警--动作--发现动作

nginx1:

zabbix_get -s 192.168.206.70 -p 10050 -k 'system.hostname'

3.zabbix之代理服务器

 

安装相关软件 

test1:192.168.206.30 做代理服务器

cd /opt

wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb

dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb

apt-get update

apt install -y zabbix-proxy-mysql zabbix-get zabbix-sql-scripts

apt install -y mariadb-server

mysql_secure_installation

mysql -u root -p123456

CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;

GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';

flush privileges;

cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -u root -p123456 zabbix_proxy

修改proxy配置文件 

vim /etc/zabbix/zabbix_proxy.conf

Server=192.168.206.60 #指向服务端

Hostname=test1 #主机名对应本机

#194行

DBpassword=zabbix

systemctl restart zabbix-proxy.service

修改客户端配置文件

vim /etc/zabbix/zabbix_agent2.conf

两个Server指向192.168.206.30(代理服务器的ip)

systemctl restart zabbix-agent2.service

向API发送POST请求,添加新的主机 

可视化界面:管理-->proxy-->创建proxy

创建完成后按F12获取proxy_id

数据采集-->主机-->删除nginx3

 

curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "host.create",
  "params": {
     "host": "nginx3",
     "proxy_hostid": "10636",
     "interfaces": [
       {
         "type": 1,
         "main": 1,
         "useip": 1,
         "ip": "192.168.206.80",
         "dns": "",
         "port": "10050"
       }
   ],
   "groups": [
      {
         "groupid": "2"
        }
   ],
   "templates": [
   {
        "templateid": "10001"
   }
   ]
},
"auth": "b5a3a34f9e1a1ceac70f3c0c557e5155",
"id": 1
}' http://192.168.206.60/zabbix/api_jsonrpc.php | python3 -m json.tool

 

 test1:tail -f /var/log/zabbix/zabbix_proxy.log

 

nginx1:tail -f /var/log/zabbix/zabbix_server.log

 

4.批量添加主机

 方法一:通过脚本调用API

服务端nginx1: 添加shell脚本

#以添加70,80服务端为例

cd /opt

vim plzc.sh

#!/bin/bash
IP="
192.168.206.70
192.168.206.80
"
for i in ${IP}
do
#获取主机名
hostname=$(nslookup ${i} | awk '{ print $4 }' | sed 's/\.//')
curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "host.create",
  "params": {
     "host": "'${hostname}'",
     "interfaces": [
       {
         "type": 1,
         "main": 1,
         "useip": 1,
         "ip": "'${i}'",
         "dns": "",
         "port": "10050"
       }
   ],
   "groups": [
      {
         "groupid": "2"
        }
   ],
   "templates": [
   {
        "templateid": "10001"
   }
   ]
},
"auth": "b5a3a34f9e1a1ceac70f3c0c557e5155",
"id": 1
}' http://192.168.206.60/zabbix/api_jsonrpc.php | python3 -m json.tool
done

#外部传参(hostname和i)要用单引号引起来

#也可以用反向代理服务器

#添加字段 "proxy_hostid": "10636",  即可

bash plzc.sh

方法二:通过postman批量添加  

 {
  "jsonrpc": "2.0",
  "method": "host.create",
  "params": {
     "host": "'${hostname}'",
     "interfaces": [
       {
         "type": 1,
         "main": 1,
         "useip": 1,
         "ip": "'${i}'",
         "dns": "",
         "port": "10050"
       }
   ],
   "groups": [
      {
         "groupid": "2"
        }
   ],
   "templates": [
   {
        "templateid": "10001"
   }
   ]
},
"auth": "b5a3a34f9e1a1ceac70f3c0c557e5155",
"id": 1
}

 

5.zabbix-snmp监控

概述

        snmp(simple network managerment protocol)简单网络管理协议,用来监控和管理网络设备(路由器,交换机等等的标准协议。

实验

60服务器端口

apt -y install snmp snmpd

在ens上模拟路由器和cloud

路由器网关 192.168.206.100

snmp-agent

snmp-agent sys-info version all

#snmp1 snmp2 snmp3 all 开启协议之后,支持以上的所有版本

snmp-agent community write public

#路由器设备可以被哪些团体进行读写,public:公共组,所有设备都可以读写路由器的配置信息

snmp-agent target-host trap-hostname zabbix address 192.168.206.60 udp-port 161 trap-paramsname zabbix

#声明监控的zabbix的server端的ip地址,和snmp的监听端口

snmp-agent trap enable

#检测连通性

ping 192.168.206.60

nginx1: ping 192.168.206.100

 

vim /etc/snmp/snmpd.conf

#63行添加

view systemonly include .1

#数字是设备的oid信息,一般都是从设备厂商直接获取

1 表示设备名,查询设备的所有信息

数字越短能看到的信息越多

systemctl restart snmpd

snmpwalk -c public -v 2c 192.168.206.100

 

web端:

添加主机

route

Huawei vrp by snmp

virtual machines

192.168.206.100 161

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/66443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

任务调度之Quartz(二):Quartz体系结构

1、Quartz 体系结构 由上一篇的Quartz基本使用可以发现,Quartz 主要包含一下几种角色: 1)Job:也可以认为是JobDtetail,表示具体的调度任务 2)Trigger:触发器,用于定义任务Job出发执行…

十五、Vue 响应接口

文章目录 一、响应式系统基础什么是响应式系统响应式数据的声明与使用二、响应式原理深入Object.defineProperty () 方法的应用(Vue2)Proxy 对象的应用(Vue3)三、响应式接口之 ref 和 reactive(Vue3)ref 函数的使用reactive 函数的使用四、计算属性(computed)作为响应式…

Nature Electronics——近传感器计算:50 nm异构集成技术的革命

创新点:1.高密度互联设计:基于二维材料,开发出互连密度高达62,500 I/O每平方毫米的M3D集成结构。2.异构层堆叠:整合了第二层石墨烯化学传感器和第一层MoS₂记忆晶体管,实现功能互补。3.超短传感器与计算元件距离&#…

Ubuntu 安装 Java 1.8

如果你希望使用 Oracle JDK 8,可以按照以下步骤操作: 下载 Oracle JDK 8: 访问 Oracle 官方网站 下载适用于 Ubuntu 的 JDK 8 版本 安装 Oracle JDK 8: 将下载的 JDK 8 压缩包解压到一个目录中,例如 /opt/module&…

字节青训入营考核十五题-Java-找单独的数

问题 问题描述 在一个班级中,每位同学都拿到了一张卡片,上面有一个整数。有趣的是,除了一个数字之外,所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上的数字是什么。 要求&#xff…

Unity学习之UGUI(三)

十二、Slider 1、作用 Slider是滑动条组件,是UGUI中用于处理滑动条相关交互的关键组件 创建Slider默认包括4个对象 父对象:Slider组件依附的对象 子对象:背景图,进度图,滑动块三组对象 2、主要参数 3、代码控制 voi…

win下搭建elk并集成springboot

一、ELK 是什么? ELK 实际上是三个工具的集合,Elasticsearch Logstash Kibana,这三个工具组合形成了一套实用、易用的监控架构,很多公司利用它来搭建可视化的海量日志分析平台。 ElasticSearch ElasticSearch 是一个基于 Lucen…

基于微信小程序疫苗预约系统ssm+论文源码调试讲解

第四章 系统设计 到目前为止,市面上已经存在了各种各样的软件系统,从系统的分类着手,主要应用范围倾向于办公系统,娱乐系统,社交系统,然后下面有很多比较细的分支系统。很多系统已经经过了市场的考验&…

MySQL慢查询问题排查

第一步:查看当前正在运行的事务状态 select trx_state,trx_started,trx_mysql_thread_id,trx_query from information_schema.innodb_trx; 其中: Trx_state:事务状态 Trx_started:事务启动时间 Trx_mysql_thread_id&…

c++领域展开第十幕——类和对象(内存管理——c/c++内存分布、c++内存管理方式、new/delete与malloc/free区别)超详细!!!!

文章目录 前言一、c/c内存分布二、c的内存管理方式2.1new/delete操作内置类型2.2new和delete操作自定义类型 三、operator new与operator delete函数3.1operator new与operator delete函数 四、new和delete的实现原理4.1 内置类型4.2 自定义类型 五、malloc/free和new/delete的…

MacBook_Xcode_Swift雨燕

Swift Swift Swift Swift是苹果公司开发的现代化编程语言, 专为Apple平台设计。其简洁语法、类型安全、Optionals处理、Playgrounds交互式环境、泛型编程、协议与扩展、闭包功能、枚举与关联值、结构体与类的高效内存管理、异步编程的async/await语法、Swift Packa…

QT自定义工具条渐变背景颜色一例

使用样式定义: QWidget* toolbar new QWidget(this);toolbar->setObjectName("main_tool");toolbar->setStyleSheet("#main_tool{background: qlineargradient(x1:0 , y1:0 , x2:1 , y2:0,""stop:0 rgba(0,255,0, 0.2),"&q…

Flutter 鸿蒙化 flutter和鸿蒙next混和渲染

前言导读 这一个节课我们讲一下PlatformView的是使用 我们在实战中有可能出现了在鸿蒙next只加载一部分Flutter的情况 我们今天就讲一下这种情况具体实现要使用到我们的PlatformView 效果图 具体实现: 一、Native侧 使用 DevEco Studio工具打开 platform_view_example\oho…

React Native 项目 Error: EMFILE: too many open files, watch

硬件:MacBook Pro (Retina, 13-inch, Mid 2014) OS版本:MacOS BigSur 11.7.10 (20G1427) 更新: 删除modules的方法会有反弹,最后还是手动安装了预编译版本的watchman。 React Native 项目运行npm run web,出现如下错误&#xff1a…

倾斜摄影相机在不动产确权登记和权籍调查中的应用

一、项目背景 1.1 项目背景 为贯彻落实中央、国务院关于实施乡村振兴战略、关于“扎实推进房地一体的农村集体建设用地和宅基地使用权确权登记颁证,完善农民闲置宅基地和闲置农房政策,探索宅基地所有权、资格权、使用权‘三权分置’”的要求&#xff0…

2.1.7-1 io_uring的使用

一、背景 (1)下面几个有关异步操作的例子: a)客户端和服务端的异步关系,就是客户端发送请求后不需要等待结果,接下来发送其他请求。 b)对于服务端,客户端来请求后,服务…

Lua开发环境如何安装?保姆级教程

大家好,我是袁庭新。Lua开发环境如何安装搭建?这套篇文章帮你搞定~ CentOS 7系统默认已经安装了Lua语言环境,因此可直接运行Lua代码。可以使用以下命令查看当前系统中默认自带的Lua版本。 # 查看系统默认自带的Lua版本 [rootloc…

SpringBoot入门之创建一个Hello World项目

文章目录 一、使用传统的方式1、创建一个SpringBoot项目2、配置pom.xml文件3、下载Maven依赖4、创建一个Controller类:com.devops.controller.HelloController5、创建一个引导类:com.devops.HelloApplication6、启动项目8、访问80809、完整项目结构 二、…

搜索引擎是如何理解你的查询并提供精准结果的?

目录 一、搜索引擎简单介绍 二、搜索引擎整体架构和工作过程 (一)整体分析 (二)爬虫系统 三个基本点 爬虫系统的工作流程 关键考虑因素和挑战 (三)索引系统 网页处理阶段 预处理阶段 反作弊分析…

vulnhub靶场-potato(至获取shell)

arp-scan -l 扫描IP 使用御剑端口扫描扫描端口,扫到了80和7120两个端口,其中7120为ssh端口 使用dirb http://192.168.171.134 扫描目录 发现info.php 访问为phpinfo界面 访问192.168.171.134为一个大土豆,没什么用 所以我们从ssh入手 盲…