В этом разделе описывается, как получить доступ к кластеру CSS с помощью Go.
Подключитесь к кластеру в режиме без безопасности. Пример кода приведён ниже:
1234567891011121314151617package mainimport ("github.com/elastic/go-elasticsearch/v7""log")func main() {cfg := elasticsearch.Config{Addresses: []string{"http://HOST:9200/",},}es, _ := elasticsearch.NewClient(cfg)log.Println(es.Info())}
В приведённой выше информации, Хост указывает внутренний IP‑адрес узла кластера.
12345678910111213141516171819package mainimport ("github.com/elastic/go-elasticsearch/v7""log")func main() {cfg := elasticsearch.Config{Addresses: []string{"http://HOST:9200/",},Имя пользователя: "USERNAME",Пароль: "PASSWORD",}es, _ := elasticsearch.NewClient(cfg)log.Println(es.Инфо())}
1234567891011121314151617181920212223242526package mainimport ("crypto/tls""github.com/elastic/go-elasticsearch/v7""log""net/http")func main() {cfg := elasticsearch.Config{Addresses: []строка{"https://HOST:9200/",},Имя пользователя: "USERNAME",Пароль: "PASSWORD",Транспорт: &http.Транспорт{TLSClientConfig: &tls.Конфиг{InsecureSkipVerify: true,},},}es, _ := elasticsearch.NewClient(cfg)log.Println(es.Info())}
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758package mainimport ("crypto/tls""crypto/x509""flag""github.com/elastic/go-elasticsearch/v7""io/ioutil""log""net""net/http""time")func main() {insecure := flag.Bool("insecure-ssl", false, "Принять/Игнорировать все SSL‑сертификаты сервера")flag.Parse()// Получить SystemCertPool, при ошибке продолжить с пустым пуломrootCAs, _ := x509.SystemCertPool()if rootCAs == nil {rootCAs = x509.NewCertPool()}// Чтение файла сертификатаcerts, err := ioutil.ReadFile("/tmp/CloudSearchService.cer")if err != nil {log.Fatalf("Failed to append %q to RootCAs: %v", "xxx", err)}// Добавьте наш сертификат в системный пулif ok := rootCAs.AppendCertsFromPEM(certs); !ok {log.Println(Сертификаты не добавлены, используется только системные сертификаты)}config := elasticsearch.Config{Addresses: []строка{"https://HOST:9200/",},Имя пользователя: "USERNAME",Пароль: "PASSWORD",Транспорт: &http.Транспорт{MaxIdleConnsPerHost: 10,ResponseHeaderTimeout: время.секунда,DialContext: (&net.Dialer{Timeout: 30 * время.секунда,KeepAlive: 30 * время.Второй,}).DialContext,TLSClientConfig: &tls.Config{InsecureSkipVerify: *insecure,RootCAs: rootCAs,},},}es, _ := elasticsearch.NewClient(config)log.Println(elasticsearch.Version)log.Println(es.Info())}
Parameter | Description |
|---|---|
HOST | IP address для доступа к кластеру Elasticsearch. Если указано несколько IP address, разделите их запятыми (,). |
USERNAME | Username для доступа к кластеру. |
PASSWORD | Password пользователя. |
Write the code above to the EsTest.gc файл, основанный на типе кластера, и сохраните файл в отдельный каталог. Выполните следующую команду в этом каталоге, чтобы запустить код:
go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.io,directgo env -w GONOSUMDB=*go mod init testgo mod tidygo run EsTest.go