This is simple project for golang, elasticsearch, and kibana
Docker
Docker & docker-compose Installation
On Mac:
Installation Docker with Mac
Try to check docker version:
$ docker --version
$ docker-compose version
Elasticsearch
Elasticsearch Installation on Docker
Download image of elasticsearch with version
7.6.0
:$ docker pull elasticsearch:7.6.0
Try to run image of elasticsearch to be a container:
$ docker run -d --network:elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasticsearch elasticsearch:7.6.0
$ docker ps
Kibana
Kibana Installation on Docker
Download image of kibana with version
7.6.0
:$ docker pull kibana:7.6.0
or
$ docker pull docker.elastic.co/kibana/kibana:7.6.0
Try run image of kibana to be a container:
$ docker run -d --net:elastic -p 5601:5601 -e ELASTICSEARCH_URL=http://localhost:9200 --name kibana kibana:7.6.0
$ docker ps
Docker Compose
Create docker compose for Elasticsearch and Kibana
Create file with name
docker-compose.yml
and type this example configuration into file:version: '2.2'
services:
es01:
image: elasticsearch:7.6.0
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02
- cluster.initial_master_nodes=es01,es02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: elasticsearch:7.6.0
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01
- cluster.initial_master_nodes=es01,es02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
kibana:
image: kibana:7.6.0
container_name: kibana
environment:
SERVER_NAME: kibana.local
ELASTICSEARCH_HOSTS: http://es01:9200
ports:
- 5601:5601
networks:
- elastic
depends_on:
- es01
- es02
volumes:
data01:
driver: local
data02:
driver: local
networks:
elastic:
driver: bridge
In this case, I'm creating 3 containers:
- es01 (elasticsearch for node 1)
- es02 (elasticsearch for node 2)
- kibana (as dashboard)
Run Docker Compose
To run docker compose:
$ docker-compose run -d
$ docker ps
Make sure all containers running
golang
Golang Installation
Install golang
Install golang
Try to check version
$ go version
Setup Project
This is golang library to integrate with elasticsearch
First, download library for go-elasticsearch, in here we are using version v7:
$ go mod init
$ go get github.com/elastic/go-elasticsearch/v7
Then create file
main.go
and insert this example code:package main
import (
"crypto/tls"
"log"
"net"
"net/http"
"time"
"github.com/elastic/go-elasticsearch/v7"
)
func main() {
cfg := elasticsearch.Config{
Addresses: []string{
"http://localhost:9200",
},
Username: "foo",
Password: "bar",
Transport: &http.Transport{
MaxIdleConnsPerHost: 10,
ResponseHeaderTimeout: time.Second,
DialContext: (&net.Dialer{Timeout: time.Second}).DialContext,
TLSClientConfig: &tls.Config{
MinVersion: tls.VersionTLS11,
},
},
}
es, _ := elasticsearch.NewClient(cfg)
res, err := es.Info()
if err != nil {
log.Fatalf("Error getting response: %s", err)
}
log.Println(res)
log.Println(es.Indices)
}
Run golang elasticsearch Application
Try to run application:
$ go run main.go
See More in here
Documentation of go-elasticsearch
Source:
If you're trying to lose fat then you have to jump on this brand new personalized keto diet.
ReplyDeleteTo design this service, certified nutritionists, fitness trainers, and chefs united to develop keto meal plans that are powerful, suitable, price-efficient, and delicious.
Since their grand opening in January 2019, 1000's of people have already completely transformed their figure and health with the benefits a great keto diet can give.
Speaking of benefits; clicking this link, you'll discover eight scientifically-certified ones provided by the keto diet.