jazigo alternatives and similar packages
Based on the "Networking" category.
Alternatively, view jazigo alternatives based on common mentions on social networks and blogs.
fasthttp9.8 7.8 jazigo VS fasthttpFast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
kcptun9.8 4.2 jazigo VS kcptunA Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。N:M 多重化と FEC を備えた KCP に基づく安定した安全なトンネル。 N:M 다중화 및 FEC를 사용하는 KCP 기반의 안정적이고 안전한 터널입니다. Un tunnel stable et sécurisé basé sur KCP avec multiplexage N:M et FEC.
dns9.5 5.5 jazigo VS dnsDNS library in Go
gnet9.5 4.4 jazigo VS gnet🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet 是一个高性能、轻量级、非阻塞的事件驱动 Go 网络框架。
quic-go9.5 8.8 jazigo VS quic-goA QUIC implementation in pure go
httpstat9.3 0.0 jazigo VS httpstatIt's like curl -v, with colours.
Netmaker9.3 9.6 jazigo VS NetmakerNetmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.
gopacket9.3 4.5 jazigo VS gopacketProvides packet processing capabilities for Go
kcp-go9.0 2.5 jazigo VS kcp-goA Crypto-Secure, Production-Grade Reliable-UDP Library for golang with FEC
gobgp8.9 6.6 jazigo VS gobgpBGP implemented in the Go Programming Language
req8.8 9.6 jazigo VS reqSimple Go HTTP client with Black Magic
netpoll8.8 7.0 jazigo VS netpollA high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance.
HTTPLab8.8 0.0 jazigo VS HTTPLabThe interactive web server
ssh8.7 4.8 jazigo VS sshEasy SSH servers in Golang
mqttPaho8.6 6.6 jazigo VS mqttPahoThe Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
fortio8.6 9.4 jazigo VS fortioFortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats.
heimdall8.5 0.0 jazigo VS heimdallAn enhanced HTTP client for Go
go-getter8.3 4.8 jazigo VS go-getterPackage for downloading things from a string URL using a variety of protocols.
gobetween8.2 1.0 jazigo VS gobetween:cloud: Modern & minimalistic load balancer for the Сloud era
gev8.1 1.6 jazigo VS gev🚀Gev is a lightweight, fast non-blocking TCP network library / websocket server based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.
mdns8.1 0.0 jazigo VS mdnsSimple mDNS client/server library in Golang
sftp8.1 3.7 jazigo VS sftpSFTP support for the go.crypto/ssh package
water8.1 0.0 jazigo VS waterA simple TUN/TAP library written in native Go.
ftp7.9 3.8 jazigo VS ftpFTP client package for Go
NFF-Go7.9 0.0 jazigo VS NFF-GoNFF-Go -Network Function Framework for GO (former YANFF)
gosnmp7.8 3.3 jazigo VS gosnmpAn SNMP library written in Go
nbio7.7 7.2 jazigo VS nbioPure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use.
grab7.7 0.0 jazigo VS grabA download manager package for Go
gmqtt7.5 2.8 jazigo VS gmqttGmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.x and V5 in golang
vssh7.3 0.0 jazigo VS vsshGo Library to Execute Commands Over SSH at Scale
lhttp7.3 0.0 jazigo VS lhttpgo websocket, a better way to buid your IM server
cidranger7.2 0.0 jazigo VS cidrangerFast IP to CIDR lookup in Golang
gotcp7.1 0.0 jazigo VS gotcpA Go package for quickly building tcp servers
gopcap7.0 0.0 jazigo VS gopcapA simple wrapper around libpcap for the Go programming language
bine7.0 3.5 jazigo VS bineGo library for accessing and embedding Tor clients and servers
go-stun6.9 2.5 jazigo VS go-stunA go implementation of the STUN client (RFC 3489 and RFC 5389)
tcp_server6.9 0.0 jazigo VS tcp_servergolang tcp server
peerdiscovery6.8 0.0 jazigo VS peerdiscoveryPure-Go library for cross-platform local peer discovery using UDP multicast :woman: :repeat: :woman:
easytcp6.8 5.5 jazigo VS easytcp:sparkles: :rocket: EasyTCP is a light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful.
stun6.7 3.8 jazigo VS stunFast RFC 5389 STUN implementation in go
gaio6.6 0.0 jazigo VS gaioHigh performance async-io(proactor) networking for Golang。golangのための高性能非同期io(proactor)ネットワーキング
raw6.6 4.7 jazigo VS rawPackage raw enables reading and writing data at the device driver level for a network interface. MIT Licensed.
requests6.6 1.0 jazigo VS requestsHTTP requests for Gophers
winrm6.6 0.0 jazigo VS winrmCommand-line tool and library for Windows remote command execution in Go
ftpserverlib6.3 4.3 jazigo VS ftpserverlibgolang ftp server library
gNxI6.3 2.1 jazigo VS gNxIgNXI Tools - gRPC Network Management/Operations Interface Tools
arp6.1 1.6 jazigo VS arpPackage arp implements the ARP protocol, as described in RFC 826. MIT Licensed.
go-cleanhttp6.0 2.8 jazigo VS go-cleanhttpGet easily stdlib HTTP client, which does not share any state with other clients.
ethernet5.7 1.4 jazigo VS ethernetPackage ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. MIT Licensed.
buffstreams5.7 0.0 jazigo VS buffstreamsA library to simplify writing applications using TCP sockets to stream protobuff messages
Static code analysis for 29 languages.
Do you think we are missing an alternative of jazigo or a related project?
Table of Contents
- About Jazigo
- Supported Platforms
- Quick Start - Short version
- Quick Start - Detailed version
- Global Settings
- Importing Many Devices
- Using AWS S3
- Calling an external program
Created by gh-md-toc
Jazigo is a tool written in Go for retrieving configuration for multiple devices, similar to rancid, fetchconfig, oxidized, Sweet.
Installation and usage are supposed to be dead simple. If you hit any surprising difficulty, please report.
Please send pull requests for new plataforms.
- Cisco ACI APIC
- Cisco IOS
- Cisco IOS XR
- Cisco NGA
- Datacom DmSwitch
- Fortigate FortiOS
- HTTP (collect output of http GET method)
- Huawei VRP
- Juniper JunOS
- Linux (collect output of SSH commands)
- Run (run external program and collect its output)
- Written in Go. Single executable file. No runtime dependency.
- Straightforward usage: run the binary then point browser to web UI. Default settings should work out-of-the-box.
- Tool configuration is automatically saved as YAML. However one is NOT supposed to edit configuration file directly.
- Spawns multiple concurrent lightweight goroutines to quickly handle large number of devices.
- Very easy to add support for new platforms. See the Cisco IOS model as example.
- Backup files can be accessed from web UI.
- See file differences directly from the web UI.
- Support for SSH and TELNET.
- Can directly store backup files into AWS S3 bucket.
- Can call an external program and collect its output.
- You need a system with the Go language in order to build the application. There is no special requirement for running it.
Quick Start - Short version
This is how to boot up Jazigo very quickly:
With Go Modules (starting from Go 1.11)
git clone https://github.com/udhos/jazigo ;# clone outside of GOPATH cd jazigo go install ./jazigo mkdir etc repo log JAZIGO_HOME=$PWD ~/go/bin/jazigo
Without Go Modules (before Go 1.11)
go get github.com/udhos/jazigo cd ~/go/src/github.com/udhos/jazigo ./build.sh mkdir etc repo log JAZIGO_HOME=$PWD ~/go/bin/jazigo
Quick Start - Detailed version
Installation and usage are supposed to be dead simple. If you hit any surprising difficulty, please report.
If you want to build from source code, start from step 1.
If you downloaded the executable binary file, start from step 5.
1. Setup GOPATH as usual
#export GOPATH=~/go ;# starting from Go 1.8, GOPATH is no longer required mkdir ~/go
2. Get dependencies
go get github.com/icza/gowut/gwu go get github.com/udhos/lockfile go get github.com/udhos/equalfile go get github.com/udhos/difflib go get gopkg.in/yaml.v2 go get golang.org/x/crypto/ssh go get github.com/aws/aws-sdk-go
3. Get source code
go get github.com/udhos/jazigo
4. Compile and install
go install github.com/udhos/jazigo/jazigo
5. Decide where to store config, backup, log and static www files
export JAZIGO_HOME=$HOME/jazigo mkdir $JAZIGO_HOME cd $JAZIGO_HOME mkdir etc repo log www
Hint: By default, Jazigo looks for directories 'etc', 'repo', 'log', and 'www' under $JAZIGO_HOME. If left undefined, JAZIGO_HOME defaults to /var/jazigo. See command line options to fine tune filesystem locations.
6. Copy static files (CSS and images) to $JAZIGO_HOME/www
# If you have downloaded jazigo using 'go get': cp ~/go/src/github.com/udhos/jazigo/www/* $JAZIGO_HOME/www # Otherwise get static files from https://github.com/udhos/jazigo/tree/master/www cd $JAZIGO_HOME/www wget https://raw.githubusercontent.com/udhos/jazigo/master/www/fail-small.png wget https://raw.githubusercontent.com/udhos/jazigo/master/www/ok-small.png wget https://raw.githubusercontent.com/udhos/jazigo/master/www/jazigo.css wget https://raw.githubusercontent.com/udhos/jazigo/master/www/GitHub-Mark-32px.png
7. Run jazigo once (see -runOnce option)
Watch messages logged to standard output for errors.
Hint: Since root privileges are usually not needed, run Jazigo as a regular user.
8. Run jazigo forever
9. Open the web interface
Point web browser at: http://localhost:8080/jazigo
You might want to adjust global settings. See the Jazigo admin window under http://localhost:8080/jazigo/admin.
maxconfigfiles: 120 holdtime: 12h0m0s scaninterval: 10m0s maxconcurrency: 20 maxconfigloadsize: 10000000
maxconfigfiles: This option limits the amount of files stored per device. When this limit is reached, older files are discarded.
holdtime: When a successful backup is saved for a device, the software will only contact that specific device again after expiration of the 'holdtime' timer.
scaninterval: The interval between two device table scans. If the device table is fully processed before the 'scaninterval' timer, the software will wait idly for the next scan cycle. If the full table scan takes longer than 'scaninterval', the next cycle will start immediately.
maxconcurrency: This option limits the number of concurrent backup jobs. You should raise this value if you need faster scanning of all devices. Keep in mind that if your devices use a centralized authentication system (for example, Cisco Secure ACS), the authentication server might become a bottleneck for high concurrency.
maxconfigloadsize: This limit puts restriction into the amount of data the tool loads from a file to memory. Intent is to protect the servers' memory from exhaustion while trying to handle multiple very large configuration files.
Importing Many Devices
You can use the Web UI to add devices, but it is not designed for importing a large number of devices.
The easiest way to include many devices is by using the command line option -deviceImport.
1. Build a device table using this format:
$ cat table.txt # # model id hostport transports username password enable-password # cisco-ios lab1 router1905lab telnet san fran sanjose cisco-ios lab2 router3925lab telnet san fran sanjose junos auto ex4200lab ssh,telnet backup juniper1 not-used junos auto 184.108.40.206:2222 ssh backup juniper1 not-used $
Hint: The device id must be unique. You can generate a meaningful device id manually as you like. You can also let Jazigo create id's automatically by specifying the special id auto.
2. Then load the table with the option -deviceImport:
$ $GOPATH/bin/jazigo -deviceImport < table.txt
Using AWS S3
Quick recipe for using S3 bucket:
1. Create a bucket 'bucketname' on AWS region 'regionname'.
2. Authorize the client to access the bucket
An usual way is to create an IAM user, add key/secret, and put those credentials into ~/.aws/credentials:
$ cat ~/.aws/credentials [default] aws_access_key_id = key aws_secret_access_key = secret
3. Run jazigo pointing its config and repository paths to S3 bucket ARN:
S3 bucket ARN: arn:aws:s3:regionname::bucketname/foldername
# Example ARN=arn:aws:s3:regionname::bucketname/foldername $GOPATH/bin/jazigo -configPathPrefix=$ARN/etc/jazigo.conf. -repositoryPath=$ARN/repo
Hint: You could point config and repository to distinct buckets.
Calling an external program
You can use the pseudo model run to call an external program to collect custom configuration.
Create a device using the model run, then specify the program arguments in the attribute runprog:
# This example calls: /bin/bash -c "env | egrep ^JAZIGO_" runprog: - /bin/bash - -c - env | egrep ^JAZIGO_
The external program invoked by the model run will receive its device authentication credentials as environment variables:
JAZIGO_DEV_ID=deviceid JAZIGO_DEV_HOSTPORT=host[:port] -- port is optional JAZIGO_DEV_USER=username JAZIGO_DEV_PASS=password
The external program is expected to issue captured configuration to stdout and then to exit with zero exit status.