jsonrpc

使用API接口在zabbix系统中登陆、创建、删除agent

与世无争的帅哥 提交于 2021-02-16 21:56:44
一、API的介绍 API(Application Programming Interface, 应用程序 编程接口)是一些预先定义的 函数 ,目的是提供 应用程序 与开发人员基于某 软件 或硬件得以访问一组 例程 的能力,而又无需访问源码,或理解内部工作 机制 的细节。 在 linux 中,用户编程接口API遵循了 UNIX 中最流行的应用编程界面标准--- POSIX 标准。 POSIX 标准是由 IEEE 和ISO/IEC共同开发的标准系统。该标准基于当时现有的 UNIX 实践和经验,描述了 操作系统 的 系统调用 编程接口API,用于保证应用程序可以在 源程序 一级上在多种操作系统上移植运行。这些系统调用编程接口主要是通过C库(LIBC)来实现的。 API 接口属于一种操作系统或 程序接口 , GUI 接口属于一种图形操作系统。两者都属于直接 用户接口 。有时公司会将 API 作为其公共开放系统。也就是说,公司制定自己的系统接口标准,当需要执行 系统整合 、自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用 源代码 ,该接口标准被称之为开放式API。 zabbix中api主要作用:为批量操作、第三方软件集成以及其他作用提供可编程接口。大致工作过程:1)API采用json-rpc实现。这意味这调用任何函数,都需要发送post请求,且输入输出格式都是以json格式。2

python 通过zabbix api获得所有主机的ip

烈酒焚心 提交于 2021-01-13 08:49:21
#!/usr/bin/env python3 #coding=utf-8 import json import requests #from urllib import requests, parse,error # based url and required header #url = "http://sg-zabbix.upliveapp.com/zabbix/api_jsonrpc.php" class zabbixapi: '''获得token''' def __init__(self): self.url = 'http:// xxxxxxxx /zabbix/api_jsonrpc.php' self.headers = {'Content-Type': 'application/json'} auth = { "jsonrpc": "2.0", "method": "user.login", "params": { "user": " xxxxx ", ###验证 "password": " xxxxx " }, "id": 1, "auth": None, } response = requests.post(self.url, data=json.dumps(auth), headers=self.headers) self.authid = json

python脚本添加zabbix 主机

泪湿孤枕 提交于 2021-01-13 08:49:11
import requests import json url = ' http://192.168.4.2/zabbix/api_jsonrpc.php ' headers = { ' Content-Type ' : ' application/json-rpc ' } # ############################################# # data = { # "jsonrpc": "2.0", # 协议版本,固定的 # "method": "apiinfo.version", # 方法,做什么就找到什么方法 # "params": [], # 参数 # "id": 101 # 随便给定一个数值,表示任务ID # } # ############################################# # 获得令牌 # data = { # "jsonrpc": "2.0", # "method": "user.login", # "params": { # "user": "Admin", # "password": "zabbix" # }, # "id": 1 # } # df99a7ab5f64c27fd4bc155c44b452fd # #############################################

python调用zabbix api接口实时展示数据

我的未来我决定 提交于 2021-01-13 08:25:30
python调用zabbix api接口实时展示数据 关于API zabbix拥有完善的API,基于JSON RPC提供资产,主机,主机组,监控项,告警等方面的接口。在做运维自动化时,需要用API功能对zabbix二次开发。本文我将介绍如何用python信使用zabbix的API。 API介绍: API地址: http://你的zabbix域名/api_jsonrpc.php API请求方法,采用POST API请求数据结构 { "jsonrpc": "2.0", // 版本 "method": "user.login", // 接口方法名 "params": { //接口参数 }, "auth": "", // 登录后的session,未登录为空 "id": 1 // 任意数 } API常用的接口 user.login ,用户登录 host.get(create|delete|update),主机操作 hostgroup.get(create|delete|update),主机组操作 item.getcreate|delete|update),监控项目操作 history.get,历史数据查询 event.get,事件查询 trigger.get ,触发器查询 近日公司准备自已做一个运维管理平台,其中的监控部分,打算调用zabbix api接口来进行展示。 经过思考之后

用eosjs接入eos主网

喜夏-厌秋 提交于 2020-11-24 06:55:15
用eosjs连接主网节点很简单,只需要在创建JsonRpc对象时,指定要连接主网节点的地址 就可以了。 如果要深入系统地学习EOS开发,推荐这个课程: EOS智能合约与DApp开发入门 例如,下面的代码将创建一个使用eosnewyork.io节点RPC旳[JsonRpc] http://cw.hubwiz.com/card/c/eosjs-manual/1/2/1/ )对象,然后使用 get_info() 方法获取网络总体信息: const { JsonRpc } = require('eosjs') const fetch = require('node-fetch') const rpc = new JsonRpc('https://api.eosnewyork.io:443',{fetch}) rpc.get_info().then(info => console.log(info)) 除了JsonRpc对象,要在主网上提交交易还需要签名、序列化等步骤。因此还需要在JsonRpc对象基础上,创建一个 Api 实例对象,它封装了完整的交易处理流程。例如: const signatureProvider = new JsSignatureProvider(['...']) const api = new Api({ rpc, signatureProvider,

golang rpc demo

空扰寡人 提交于 2020-10-24 18:59:40
server.go package main import ( "log" "net" "net/http" "net/rpc" "net/rpc/jsonrpc" ) type Args struct { A int B int } type Number struct{} // 方法参数列表必须为此格式 func (num *Number) Sum(args *Args, sum *int) error { *sum = args.A + args.B return nil } func TcpServer() { ln, err := net.Listen("tcp", "127.0.0.1:9008") if err != nil { log.Fatalln("net.Listen error:", err) } log.Println("start connection") for { // 接收客户端连接请求 conn, err := ln.Accept() if err != nil { log.Println("ln.Accept error:", err) continue } // 处理客户端请求 go func(conn net.Conn) { log.Println("new client in coming") jsonrpc.ServeConn(conn

使用Python实现RPC框架

风流意气都作罢 提交于 2020-10-18 07:56:41
前言 本文将会使用Python实现一个最简单的RPC框架,玩具向,不具有实用意义,但可以让你清醒的理解RPC框架的几个组成部分,只是比看Python自带的xmlrpc清晰。 本文需要一点Python socket基础。 如果你对Python Socket基础方面的内容不是很熟悉,推荐阅读Real Python的「Socket Programming in Python (Guide)」 吐槽一下VSCode,在开发一些比较复杂的Python项目时,VSCode的debug功能让人感到蛋疼,询问了Windows下使用VSCode的同事,都没有这样的问题,不清楚VSCode对Mac的支持是否存在问题,还只是我单纯的不会用:( 本文代码比较简单,所以还是使用VSCode进行开发。那我们开始吧! 回顾RPC 客户端(Client):服务调用方。 客户端存根(Client Stub):存放服务端地址信息,将客户端的请求参数数据信息打包成网络消息,再通过网络传输发送给服务端。 服务端存根(Server Stub):接收客户端发送过来的请求消息并进行解包,然后再调用本地服务进行处理。 服务端(Server):服务的真正提供者。 Network Service:底层传输,可以是 TCP 或 HTTP。 实现jsonrpc 在实现前,简单理一下整体思路。 1.Network Service

2020全新升级版-Google资深工程师深度讲解Go语言网盘下载

荒凉一梦 提交于 2020-10-01 22:39:50
下载地址: 百度网盘 适合人群及技术储备要求 如果你已经掌握了一门编程语言,想转型Go语言工程师, 或者是对Go的基础语法有简单的认识,想更深层次的了解Go语言 那么本门课程非常适合你 技术储备要求: 至少掌握一门编程语言 具有一定项目基础和工作经验者学习效果更佳 第1章 课程介绍 欢迎大家来到深度讲解Go语言的课堂。本课程将从基本语法讲起,逐渐深入,帮助同学深度理解Go语言面向接口,函数式编程,错误处理,测试,并行计算等元素,并带领大家实现一个分布式爬虫的实战项目。 1-1 Google资深工程师深度讲解go语言 试看 1-2 安装与环境 1-3 国内镜像配置 1-4 IntelliJ Idea 的安装和配置 1-5 vscode 的安装和配置 第2章 基础语法 量,常量,类型,选择,循环,函数,指针,本章节带领大家学习一门新语言所需的必备语法知识。让大家对Go语言有一个初步的认识! 2-1 变量定义 2-2 内建变量类型 2-3 常量与枚举 2-4 条件语句 2-5 循环 2-6 函数 2-7 指针 第3章 内建容器 本章节我们来学习数组,切片,Map和字符串。在Go语言中,我们一般不直接使用数组,而是使用切片来管理线性表结构,它的语法类似python的list,不过更强大哦。当然,Map和字符串的学习也是必不可少。掌握至此,我们就可以写一些简单的算法了

让rpcx支持python细节分析之服务调用

血红的双手。 提交于 2020-08-09 07:54:41
0x1 这段时间在线上系统上正式用上了rpcx作为微服务框架,逐渐代替之前使用的go-micro,主要是考虑到简洁性(go-micro要写proto),性能,配套(rpcx有一个服务治理的UI),fork了个项目二次开发,加入了一些需要的功能特性 网关: https://github.com/halokid/rpcx-gateway 框架: https://github.com/halokid/rpcx 0x2 关于支持python的技术细节 目前python假如rpcx当中,由于时间人手问题,想快速切换原有的服务到rpcx框架,并没有从rpc协议上去支持,目前的做法是python服务还是用原有的jsonrpc来做,但是在服务注册阶段会按照rpcx的注册方式来注册,无缝集成到rpcx-ui当中,python服务的流程如下: 如图所示,相同语言的调用是直接走RPC的, 不同语言的调用是通过网关来统一调用,一般跨语言的服务调用都是用目前访问量不太大的应用来做,多了一次http的转发,性能会比直接调用差一些。其中直接调用的话go的采用msgpack(可定制,默认支持4种)作为默认的解编码工具,ptyhon是用json,所以性能方面go肯定比py要快,从这个层面来说,但是py胜在快速开发。 来源: oschina 链接: https://my.oschina.net/u/615967

微服务性能优化之thrift改造

守給你的承諾、 提交于 2020-05-05 14:05:33
在我当前所做的web项目中,采用前后端分离模式前端通过Django 提供restful接口,后端采用微服务架构,微服务之间的调用采用jsonrpc,由于微服务之间的调用很频繁,导致前端得到的响应很慢,所以就不得不做性能优化。 JSON-RPC是一种基于JSON的跨语言远程调用协议。 比xml-rpc、webservice等基于文本的协议传输数据格小; 但是JSON格式的解析开销太大。 GRPC:GRPC是一个高性能、通用的开源RPC框架,由Google主要面向移动应用开发并基于HTTP/2协议(注意是HTTP/2协议,不是我们常使用的HTTP 1_1。HTTP/2协议详细的介绍可以参见官方地址:https://http2.github.io/)标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。为了支持GRPC的跨语言性,GRPC有一套独立存在IDL语言。不过由于GRPC是Google的开源产品,在信息格式封装方面Google主要还是推广的自己的ProtoBuf,所以GPRC是不支持其他信息格式的(至少ProtoBuf效率是大家有目共睹的)。关于GRPC详细的使用介绍,可以参见官方地址: https://github.com/grpc/grpc Thrift:Thrift是Facebook的一个开源项目