https://github.com/eikoshelev/etcd-proxy-server
Proxy server for monitoring etcd via https protocol
https://github.com/eikoshelev/etcd-proxy-server
docker etcd https k8s kubernetes metrics prometheus proxy
Last synced: 7 months ago
JSON representation
Proxy server for monitoring etcd via https protocol
- Host: GitHub
- URL: https://github.com/eikoshelev/etcd-proxy-server
- Owner: eikoshelev
- Created: 2019-06-03T10:23:23.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-04-21T14:04:12.000Z (over 2 years ago)
- Last Synced: 2024-06-21T08:29:28.676Z (over 1 year ago)
- Topics: docker, etcd, https, k8s, kubernetes, metrics, prometheus, proxy
- Language: Go
- Homepage:
- Size: 8.95 MB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# etcd-proxy-server
Proxy to collect [etcd](https://etcd.io/) metrics using [Prometheus](https://prometheus.io/) over HTTPS in a [Kubernetes](https://kubernetes.io/) cluster

* Automatically deployed on master nodes ([daemonSet.yaml](kubernetes/manifests/daemonSet.yaml));
* Using certificates located in `/etc/kubernetes/pki/etcd`, configures the HTTPS client;
* Receives requests for receiving metrics and, on behalf of the configured client, refers to etcd;
* Returns received metrics;
* Allows only `GET` requests for the handler `/metrics`;
## Usage
### Kubernetes
Just do it and forget it:
```sh
git clone git@github.com:eikoshelev/etcd-proxy-server.git && cd etcd-proxy-server
```
```sh
kubectl apply -f kubernetes -n
```
### Docker container
```sh
docker run -d --name etcd-proxy-server eikoshelev/etcd-proxy-server:v2.0.0
```
### Description
```
./etcd-proxy-server -h
Usage of ./etcd-proxy-server:
-caFile string
A PEM eoncoded CA's certificate file (default "/etc/kubernetes/pki/etcd/ca.crt")
-certFile string
A PEM eoncoded certificate file (default "/etc/kubernetes/pki/etcd/healthcheck-client.crt")
-clientTimeout duration
Timeout for client (default 10s)
-hostIP string
Host machine IP
-keyFile string
A PEM encoded private key file (default "/etc/kubernetes/pki/etcd/healthcheck-client.key")
-metricsRoute string
Route for collecting metrics (default "/metrics")
-serverPort string
Server port (default ":8888")
-serverRTimeout duration
ReadTimeout for server (default 10s)
-serverWTimeout duration
WriteTimeout for server (default 10s)
```
`hostIP` reads the environment variable of the same name by default, which is set depending on the node on which it is deployed under, for more details see [daemonSet.yaml](kubernetes/manifests/daemonSet.yaml#L61)