Coder Social home page Coder Social logo

etcdkeeper's Introduction

image

ETCD Keeper

  • Lightweight etcd web client.
  • Support etcd 2.x and etcd 3.x.
  • The server uses the etcd go client interface, and the server compiles with the etcd client package.
  • Based easyui framework to achieve(easyui license easyui website).

Usage

  Usage of etcdkeeper.exe:
  -h string
        host name or ip address (default: "0.0.0.0", the http server addreess, not etcd address)
  -p int
        port (default 8080)
  -sep string
        Separator (default "/")
  -usetls
        use tls (only v3)
  -cacert string
        verify certificates of TLS-enabled secure servers using this CA bundle (only v3)
  -cert string
        identify secure client using this TLS certificate file (only v3)
  -key string
        identify secure client using this TLS key file (only v3)
  -auth bool
        use etcd auth
  -timeout int
        ETCD client connect timeout
  • Open your browser and enter the address: http://127.0.0.1:8080/etcdkeeper
  • Click on the version of the title to select the version of ETCD. The default is V3. Reopening will remember your choice.
  • Right click on the tree node to add or delete.
  • Get data based on etcd user permissions.
    • Just display the list according to the configured permissions, and there will be time to add the configuration permission features.
    • Each time you restart etcdkeeper, you need to enter the root username and password for each etcd server address.
    • enable etcdv3 authentication
    • enable etcdv2 authentication
  • Display the status information of etcd, version, data size.
  • Etcd address can be modified by default to the localhost. If you change, press the Enter key to take effect.

Features

  • Etcd client view, Add, update or delete nodes.
  • Content edits use the ace editor(Ace editor). Support toml,ini,yaml,json,xml and so on to highlight view.
  • Content format. (Currently only support json, Other types can be extended later) Thanks jim3ma for his contribution.@jim3ma

Work in progress

  • Add import and export features. (delay)

Special Note

Because the etcdv3 version uses the new storage concept, without the catalog concept, the client uses the previous default "/" delimiter to view. See the documentation for etcdv3 clientv3 doc.

Docker

Etdkeeper official image. (https://hub.docker.com/r/evildecay/etcdkeeper)

Screenshots

image

Demo

image

License

MIT

etcdkeeper's People

Contributors

andrescidoncha avatar bestcx avatar evildecay avatar gothrek22 avatar jim3ma avatar starplanet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

etcdkeeper's Issues

建议:可以简化一下go mod 依赖

看了下可以简化蛮多不必要的依赖

go.etcd.io/etcd/client/pkg/v3 v3.5.0 //go.etcd.io/etcd/client/pkg/v3/transport 用来tls连接
go.etcd.io/etcd/client/v2 v2.305.0
go.etcd.io/etcd/client/v3 v3.5.0
google.golang.org/grpc v1.38.0

etcd cluster应该如何连接?

安装了etcd keeper。访问端口后默认连接127.0.0.1:2379.
这个默认连接可以修改吗?需要在哪里指定?
集群模式修改的格式是什么,我是3个节点的集群,把三个节点ip:2379都写进去吗?

打开页面报错

通过docker-compose部署 etcdkeeper,进入页面就弹出报错
image

我不知道是不是我的 docker-compose.yaml 配置的有错误,还是我启动 etcd 镜像错了

这是docker-compose.yaml内容
`version: '3'
networks:
mall:

services:
etcd1:
image: quay.io/coreos/etcd:v3.2.5
container_name: etcd1
command: etcd -name etcd1 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380" -initial-cluster-state new
ports:
- 2379:2379
- 2380:2380
networks:
- mall

etcd2:
image: quay.io/coreos/etcd:v3.2.5
container_name: etcd2
command: etcd -name etcd2 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380" -initial-cluster-state new
ports:
- 2379
- 2380
networks:
- mall

etcd3:
image: quay.io/coreos/etcd:v3.2.5
container_name: etcd3
command: etcd -name etcd3 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380" -initial-cluster-state new
ports:
- 2379
- 2380
networks:
- mall

etcdkeeper:
image: evildecay/etcdkeeper:latest
container_name: "etcdkeeper"
environment:
HOST: "0.0.0.0"
ports:
- 8080
networks:
- mall
depends_on:
- etcd1`

get etcd endpoint from environment variable

Hi,
Thanks for the gr8 work
if it possible, please add the ability to set ETCD endpoint from environment variable,
currently you are using Cookies.get('etcd-endpoint');

var etcdBase = Cookies.get('etcd-endpoint');
if(typeof(etcdBase) === 'undefined') {
etcdBase = '127.0.0.1:2379';

How to compile etcdkeeper for new architecture

Hi guys,

I would to compile you go program to arm architecture.
It's the first time I have to build a go application from source.

Could you please tell me what's the best way to do it ?
Cheers

Restructure Project

Two suggestions:

  1. Use one of the (many, many) binary packing tools to include the assets in the binary.
  2. Move main.go to the root directory so that you can easily do GO111MODULE=on go get github.com/evildecay/etcdkeeper

(I'm a little more comfortable building from source that downloading a binary release, and building from source is so easy with Go.)

Thanks!

Need a feature to duplicate values under a new key

Hi,

We are using etcd to hold application configurations and sometimes we need to create new keys by modifying existing values.
So we would like to have a feature to duplicate existing values under a new key.

If the community agrees with this feature. We would happy to do this as a contribution.

Let me know your thoughts on this.

Thanks.

view information from the page error send message larger than max

etcdkeeper has already started successfully.
However, the following error occurs when I try to view information from the page
rpc error: code = ResourceExhausted desc = trying to send message larger than max (6161420 vs. 2097152)
The MaxCallSendMsgSize parameter defaults to 2M, I think we should expose this parameter

404 for http://localhost:8080/etcdkeeper

start command

 ./etcdkeeper -cacert /etc/kubernetes/pki/etcd/ca.crt -key /etc/kubernetes/pki/etcd/healthcheck-client.key -cert /etc/kubernetes/pki/etcd/healthcheck-client.crt -p 8080 -usetls

[root@master1 etcdmanagelog]# curl http://localhost:8080/etcdkeeper
404 page not found

then change to default configuration to start, still not working

[root@master1 ~]# ./etcdkeeper
2019/09/18 17:39:09 listening on 0.0.0.0:8080
[root@master1 etcdmanagelog]# curl http://localhost:8080/etcdkeeper
404 page not found

merge your version switcher

@AndresCidoncha created a nice version switcher in his fork.
It's much more intuitive than having to go to the correct URL.

@AndresCidoncha perhaps you could create a pull request from your fork?
Forking a project and keeping general improvements for your self is not the best way to improve a project.

Thanks

登录失败

点击登录总是弹出显示 user name is empty 的窗口,这是为啥

消息内容过长

image

我保存的信息有点长,但是可以正常使用,在keeper上就打不开,会报这个错 #

每个浏览器首次登录都要输入root?

用的V3,加用户名密码认证
对于特性中:
Each time you restart etcdkeeper, you need to enter the root username and password for each etcd server address.
因为要分开权限,能否一次登录root,后面就可以直接用不同的用户登录的?不然放权的话一个一个去给开发人员输入一次root,然后在切换下,估计要累死了:(,其他的功能都很简洁好用,不知道这个首次登录的问题,是否有其他方式解决呢?
再次感谢让我们到那么好的UI管理

Any plan to support etcd cluster?

Etcdkeeper makes it very convenient to manage etcd single member. 👍 But now I use etcd cluster intended for HA. So etcdkeeper has any enhancement plan to support etcd cluster?

连接存储k8s的etcd,部分value是乱码

GET /v3/get?key=%2Fregistry%2Fevents%2Fdefault%2Fzk-0.1589a2d155984db6
response:

{"node":{"createdIndex":6656239,"dir":false,"key":"/registry/events/default/zk-0.1589a2d155984db6","modifiedIndex":6743140,"ttl":3535,"value":"k8s\u0000\n\u000b\n\u0002v1\u0012\u0005Event\u0012\ufffd\u0002\nZ\n\u0015zk-0.1589a2d155984db6\u0012\u0000\u001a\u0007default\"\u0000*$91cd703d-40ba-11e9-917c-525400ab7cc42\u00008\u0000B\u0008\u0008\ufffdŃ\ufffd\u0005\u0010\u0000z\u0000\u0012I\n\u0003Pod\u0012\u0007default\u001a\u0004zk-0\"$91cc931e-40ba-11e9-917c-525400ab7cc4*\u0002v12\u00076656235:\u0000\u001a\u0010FailedScheduling\"Cpod has unbound immediate PersistentVolumeClaims (repeated 2 times)*\u0015\n\u0011default-scheduler\u0012\u00002\u0008\u0008\ufffdŃ\ufffd\u0005\u0010\u0000:\u0008\u0008\ufffd\ufffd\ufffd\ufffd\u0005\u0010\u0000@\ufffd\ufffd\u0001J\u0007WarningR\u0000b\u0000r\u0000z\u0000\u001a\u0000\"\u0000"}}

etcdkeeper

404 page not found

Ran the mac version:
$ /Applications/etcdkeeper/etcdkeeper
2019/04/09 07:20:14 listening on 0.0.0.0:8080

Then opened http://127.0.0.1:8080/etcdkeeper in browser.

支持Revision查看kv吗?

原来是国人啊,感谢你的开源项目。
有个问题请教一下,etcdkeeper支持查看不同Revision的kv值吗?我好像没找到啊。谢谢。

How To List The Watched Keys

Thanks a lot for your project
I havenot found how to list the watched keys. Maybe I lost something or your havenot implement it.
Like the command line: etcdctl lease timetolive --keys 694d6dde8ef506d2(lease id).
Thanks again.

docker etcdkeeper not work

I use Docker Swarm for start keeper:

version: '3.3'
networks:
  net-etcd:
    external: true
services:
  keeper:
    image: evildecay/etcdkeeper:latest
    networks:
     - net-etcd
    deploy:
      labels:
        traefik.enable: 'true'
        traefik.http.services.etcd-ui.loadbalancer.server.port: 8080
        
        traefik.http.routers.etcd-ui.rule: Host(`etcd.example.com`)
        traefik.http.routers.etcd-ui.middlewares: redirect@file
        traefik.http.routers.etcd-ui.entrypoints: http
        
        traefik.http.routers.etcd-ui-ssl.rule: Host(`etcd.example.com`)
        traefik.http.routers.etcd-ui-ssl.tls: 'true'
        traefik.http.routers.etcd-ui-ssl.service: etcd-ui
        traefik.http.routers.etcd-ui-ssl.tls.certresolver: default
        traefik.http.routers.etcd-ui-ssl.entrypoints: https
      restart_policy:
        condition: on-failure
        window: 120s
        max_attempts: 5

and after start container i see:

# docker logs -f etcd-ui_keeper.1.qftkn42c8m01pfhqhrdsq9g3x
2019-11-21 20:04:44.890346 I | listening on 0.0.0.0:8080

But i cant open etcd.example.com/etcdkeeper ... i got Gateway Timeout from traefik.
Any ideas?

etcdkeeper doesn't work for etcd version 3.3.13

My env
etcd Version: 3.3.13
Git SHA: 98d3084
Go Version: go1.10.8
Go OS/Arch: linux/amd64

error message
rpc error: code = ResourceExhausted desc = grpc: received message larger than max (8615395 vs. 4194304)

throw timeout error

I met follow error when accessing ui
{"readyState":0,"status":0,"statusText":"timeout"}

Error token with auth

Hello

they are error when i refresh etcdkeeper

Capture1

in etcd they are error token

Capture2

need restart etcdkeeper or change target ui (switch 127.0.01 to localhost)

Can not build docker image

Does anyone know how to solve this?

Step 1/16 : FROM golang:1.9-alpine as builder
 ---> b0260be938c6
Step 2/16 : RUN apk add -U git     && go get github.com/golang/dep/...
 ---> Using cache
 ---> 703234621f56
Step 3/16 : WORKDIR /go/src/github.com/evildecay/etcdkeeper
 ---> Using cache
 ---> 644d1053f003
Step 4/16 : ADD src ./
 ---> Using cache
 ---> 7c7b7324484a
Step 5/16 : ADD Gopkg.* ./
 ---> Using cache
 ---> 3516cf99238a
Step 6/16 : RUN dep ensure -update     && go build -o etcdkeeper.bin etcdkeeper/main.go
 ---> Running in 1791cc70021c
etcdkeeper/main.go:7:2: cannot find package "etcdkeeper/session" in any of:
	/go/src/github.com/evildecay/etcdkeeper/vendor/etcdkeeper/session (vendor tree)
	/usr/local/go/src/etcdkeeper/session (from $GOROOT)
	/go/src/etcdkeeper/session (from $GOPATH)
etcdkeeper/main.go:8:2: cannot find package "etcdkeeper/session/providers/memory" in any of:
	/go/src/github.com/evildecay/etcdkeeper/vendor/etcdkeeper/session/providers/memory (vendor tree)
	/usr/local/go/src/etcdkeeper/session/providers/memory (from $GOROOT)
	/go/src/etcdkeeper/session/providers/memory (from $GOPATH)
The command '/bin/sh -c dep ensure -update     && go build -o etcdkeeper.bin etcdkeeper/main.go' returned a non-zero code: 1

add versioned tags to offical docker image

Hi,

@evildecay I suggest you add versioned tags to the docker image so people can choose what version to download.

You can set it up by adding the following rule in automated builds:

Docker Tag Source
{sourceref} /^v([0-9.]+)$/

Like this:
Screenshot 2019-09-12 at 14 57 14

Next time you add push a new git version tag, it will create a image with that version.

etcdserver: user name is empty

etcdserver: user name is empty

输入正确的用户密码后一直弹出 这个错误,我搭建的 etcd集群是etcd-v3.4.14 版本

The server needs to initialize the root user.

Hi,

I am the root user and I have already created another user with separate login credentials.

But when I use the etcd-keeper to login with the new user created, it gives the error "The server needs to initialize the root user."

I mean, if I were to give access to another user for viewing only specific set of keys in my production etcd cluster, why he needs to initialize it with root user? That is giving him the root username and password.And nobody wants that.

How can I get rid of this warning?

Returned the "grpc: timed out when dialing" error.

Hello:

I have a etcd server and try to run etcdkeeper. But when I accessd the webui (http://10.62.101.36:8280/etcdkeeper3/), returned the "grpc: timed out when dialing" error.

The etcd server info and etcdkeeper log print as followed, any advice to soulve it? thanks.

[root@master1 ~]# etcdctl --cert-file=/etc/etcd/peer.crt --key-file=/etc/etcd/peer.key --ca-file=/etc/etcd/ca.crt --peers="https://10.62.101.36:2379" cluster-health
member f9dceee68ee5d622 is healthy: got healthy result from https://10.62.101.36:2379
cluster is healthy
[root@master1 ~]# ./etcdkeeper/httpserver -h 10.62.101.36 -p 8280
2017/10/30 22:41:47 /root/assets
2017/10/30 22:41:47 listening on 10.62.101.36:8280
2017/10/30 22:41:56 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 127.0.0.1:2379: getsockopt: connection refused"; Reconnecting to {"127.0.0.1:2379" <nil>}
2017/10/30 22:41:57 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 127.0.0.1:2379: getsockopt: connection refused"; Reconnecting to {"127.0.0.1:2379" <nil>}
2017/10/30 22:41:58 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 127.0.0.1:2379: getsockopt: connection refused"; Reconnecting to {"127.0.0.1:2379" <nil>}
2017/10/30 22:42:01 POST v3 connect fail.
2017/10/30 22:42:01 Failed to dial 127.0.0.1:2379: context canceled; please retry.

how to use etcdkeeper after enable etcd auth

as title.
after i enable the authentication of etcd and revoke the role guest.
Role: guest
KV Read:
KV Write:
etcd keeper report an erroe :
110: The request requires user authentication (Insufficient credentials) [0]

kunernetes etcd value not decode

i use the tool open kubernetes etcd.
but value is no decode. the value is Protobuf.the value need decode to yaml on view.
write value need encode.

now i use etcdctl --cacert filepath --cert filepath --key filepath get keyname|auger decode
the project https://github.com/jpbetz/auger

404 page not found

[root@master01 ~]# vim /lib/systemd/system/etcdkeeper.servic
[Unit]
Description=etcdkeeper service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/etcdkeeper -p 8800 -h 192.168.2.66
ExecReload=/bin/kill -HUP
KillMode=process
Restart=on-failure
PrivateTmp=true
[Install]
WantedBy=multi-user.target

[root@master01 ~]# systemctl status etcdkeeper.service
● etcdkeeper.service - etcdkeeper service
Loaded: loaded (/usr/lib/systemd/system/etcdkeeper.service; enabled; vendor preset: disabled)
Active: active (running) since 三 2022-01-12 12:15:23 CST; 5s ago
Main PID: 9740 (etcdkeeper)
Tasks: 4
Memory: 4.5M
CGroup: /system.slice/etcdkeeper.service
└─9740 /usr/local/bin/etcdkeeper -p 8800 -h 192.168.2.66

1月 12 12:15:23 master01 systemd[1]: Started etcdkeeper service.
1月 12 12:15:23 master01 systemd[1]: Starting etcdkeeper service...
1月 12 12:15:23 master01 etcdkeeper[9740]: listening on 192.168.2.66:8800
[root@master01 ~]# curl 192.168.2.66:8800
404 page not found
root@master01 ~]# ls -l /usr/local/bin/etcdkeeper
-rwxr-xr-x 1 root root 19755714 6月 8 2020 /usr/local/bin/etcdkeeper
What's the reason?

Keys on the root path not shown

Etcdkeeper shows only keys that have a prefix "/".

7aaa24e175

Expected: show all keys.

$ etcdctl get / --keys-only=true --prefix
/skydns
/skydns/...
...
$ etcdctl get "" --keys-only=true --prefix
/skydns
/skydns/...
...
backend-encrypted
config/iam/...

ETCD cluster with only cert based auth doesn't work

I ran etcdkeeper -usetls -cert /etcd-manage/bin/tlskey/etcdserver.crt -key etcd-manage/bin/tlskey/etcdserver.key

foobar.etcd.com:2379

2019/10/20 21:07:25 listening on 0.0.0.0:8080
2019/10/20 21:07:27 POST v3 connect success.
2019/10/20 21:07:27 rpc error: code = Unimplemented desc =

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.