{"id":316959,"date":"2021-01-26T09:01:15","date_gmt":"2021-01-26T09:01:15","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=316959"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=316959","title":{"rendered":"\u0421\u0431\u043e\u0440\u043a\u0430 \u043b\u043e\u0433\u043e\u0432 \u0432 kubernetes. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 EFK \u0441\u0442\u0435\u043a\u0430 \u0441 LDAP \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439. (Bitnami, opendistro)"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u041f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044f, \u043a\u0430\u0436\u0434\u0430\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043e\u0442 \u0440\u0443\u0447\u043d\u043e\u0433\u043e grep \u043b\u043e\u0433\u043e\u0432 \u043a \u0431\u043e\u043b\u0435\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430, \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043b\u043e\u0433\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 kubernetes, \u0433\u0434\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e \u0438 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e, \u0432\u0430\u0441 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043d\u0443\u0436\u0434\u0430\u044e\u0442 \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0441\u0442\u0430\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u044b \u0441\u0431\u043e\u0440\u0430 \u043b\u043e\u0433\u043e\u0432.  \u0412  \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u0440\u0438\u0447\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f \u0441\u0435\u0431\u044f. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u0438 \u0437\u0430\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0432\u0448\u0435\u043c \u0441\u0435\u0431\u044f \u0441\u0442\u044d\u043a\u0435 <a href=\"https:\/\/www.elastic.co\/products\/elasticsearch\" rel=\"noopener noreferrer nofollow\">Elasticsearch<\/a> + <a href=\"https:\/\/www.elastic.co\/products\/kibana\" rel=\"noopener noreferrer nofollow\">Kibana<\/a> + <a href=\"https:\/\/www.fluentd.org\/\" rel=\"noopener noreferrer nofollow\">Fluentd<\/a> \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c <a href=\"https:\/\/opendistro.github.io\/for-elasticsearch-docs\/docs\/security\/\" rel=\"noopener noreferrer nofollow\">OpenDistro Security.<\/a> \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u0442\u044d\u043a \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e open source, \u0447\u0442\u043e \u043f\u0440\u0438\u0434\u0430\u0435\u0442 \u0435\u043c\u0443 \u043e\u0441\u043e\u0431\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c.<\/p>\n<h2>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u043a\u0430<\/h2>\n<p>\u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043b\u0430\u0434\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u043b\u043e\u0433\u043e\u0432 \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 kubernetes. \u0418\u0437 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.  <\/p>\n<\/li>\n<li>\n<p>\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0447\u0438\u0441\u0442\u043a\u0443 \u043b\u043e\u0433\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c LDAP, \u0434\u043b\u044f \u0440\u0430\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432. <\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0435\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u044b<\/strong><\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442: <\/p>\n<ul>\n<li>\n<p>\u0418\u043c\u0435\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 kuberenetes 1.18 \u0438\u043b\u0438 \u0432\u044b\u0448\u0435 (\u043d\u0438\u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u044e \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438)<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 <a href=\"https:\/\/helm.sh\/docs\/intro\/install\/\" rel=\"noopener noreferrer nofollow\">helm 3 <\/a><\/p>\n<\/li>\n<\/ul>\n<h2>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e helm chart<\/h2>\n<p>\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 kubernetes \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f helm. Helm \u044d\u0442\u043e \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0438\u0445 \u0432\u043c\u0435\u0441\u0442e, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c\u0438 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439.<\/p>\n<p>\u0412 \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <a href=\"https:\/\/github.com\/bitnami\/charts\/tree\/master\/bitnami\" rel=\"noopener noreferrer nofollow\">helm chart \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 bitnami(\u043f\u043e\u0434\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 vmware)<\/a>  <\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0431\u0440\u0430\u043d\u044b open source \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u043d\u0430 \u0432\u0441\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u0436\u0438\u0437\u043d\u0438.<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0447\u0430\u0442\u043e\u0432 \u0438 \u0434\u043e\u043a\u0435\u0440 \u043e\u0431\u0440\u0430\u0437\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u043a\u0440\u0430\u0441\u0438\u0432\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0435\u043a\u0442 \u0436\u0438\u0432\u043e\u0439 \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c<\/p>\n<\/li>\n<\/ul>\n<h2>\u0412\u044b\u0431\u043e\u0440 \u0441\u0442\u0435\u043a\u0430<\/h2>\n<p>\u0412\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0432\u044b\u0431\u043e\u0440 \u0441\u0442\u0435\u043a\u0430 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u043e \u0432\u0440\u0435\u043c\u044f.  \u0421 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u043e\u043b\u0435\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0431\u044b \u0434\u0435\u043f\u043b\u043e\u0438\u043b\u0438 ELK \u0441\u0442\u0435\u043a \u0432\u043c\u0435\u0441\u0442\u043e EFK \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 helm chart. <\/p>\n<p>Fluentd \u0447\u0430\u0441\u0442\u043e \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432 <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/cluster-administration\/logging\/#cluster-level-logging-architectures\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>, \u0448\u0438\u0440\u043e\u043a\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d, \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u043d\u0430 \u0432\u0441\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u0436\u0438\u0437\u043d\u0438. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0432 rebrain \u0438 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0442\u0435\u043b \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c fluentd. <\/p>\n<p>Elasticsearch \u0438 kibana \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0434\u043b\u044f security \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u043a\u0443\u0441\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0434\u0443\u0442 \u043f\u043e\u0434 \u0438\u043d\u043e\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Amazon \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u044b Open Distro, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0442 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043f\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439. <\/p>\n<p>\u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8a6\/c9e\/6e3\/8a6c9e6e39d7e3168e09dc13a88b0425.jpeg\" width=\"1028\" height=\"622\"><figcaption><\/figcaption><\/figure>\n<p>\u0425\u043e\u0440\u043e\u0448\u0438\u043c \u0442\u043e\u043d\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0435\u043b\u0435\u043d\u044b\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u0442\u0430 \u0447\u0430\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0432\u0441\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043b\u043e\u0433\u0438.<\/p>\n<h2>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0435\u043f\u043b\u043e\u0439 EFK \u0441\u0442\u0435\u043a\u0430 (\u0431\u0435\u0437 Security)<\/h2>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 EFK \u0441\u0442\u0435\u043a\u0430 \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0430 \u043f\u043e \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/docs.bitnami.com\/tutorials\/integrate-logging-kubernetes-kibana-elasticsearch-fluentd\/\" rel=\"noopener noreferrer nofollow\">Collect and Analyze Log Data for a Kubernetes Cluster with Bitnami&#8217;s Elasticsearch, Fluentd and Kibana Charts<\/a>. \u041a\u043e\u043c\u043f\u043e\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0430\u0442. \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c <a href=\"https:\/\/github.com\/serg-bs\/efk\" rel=\"noopener noreferrer nofollow\"><strong><em>\u0437\u0434\u0435\u0441\u044c<\/em><\/strong><\/a> \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439<\/p>\n<pre><code class=\"bash\">helm dependency update helm upgrade --install efk . -f values-minimal.yaml<\/code><\/pre>\n<p>\u0418\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 values-minimal.yaml <\/p>\n<pre><code class=\"json\">elasticsearch:   volumePermissions:     enabled: true  kibana:   volumePermissions:     enabled: true   elasticsearch:     hosts:     - \"efk-elasticsearch-coordinating-only\"     port: 9200 # \u041f\u0440\u043e\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u0445\u043e\u0441\u0442, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0438\u043d\u0433\u0440\u0435\u0441\u0441   ingress:     enabled: true     hostname: kibana.local # \u041b\u0438\u0431\u043e    service:     type: NodePort     port: 30010 fluentd:   aggregator:     enabled: true     configMap: elasticsearch-output     extraEnv:     - name: ELASTICSEARCH_HOST       value: \"efk-elasticsearch-coordinating-only\"     - name: ELASTICSEARCH_PORT       value: \"9200\"   forwarder: #    \u0427\u0442\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u043e\u0432 \u0441 \u0434\u0438\u0441\u043a\u0430 \/var\/log\/containers\/* \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e     enabled: false     configMap: apache-log-parser     extraEnv:     - name: FLUENTD_DAEMON_USER       value: root     - name: FLUENTD_DAEMON_GROUP       value: root<\/code><\/pre>\n<p>\u041a\u0438\u0431\u0430\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <a href=\"http:\/\/minikube_host:30010\/\" rel=\"noopener noreferrer nofollow\">http:\/\/minikube_host:30010\/<\/a>, \u043b\u0438\u0431\u043e <a href=\"http:\/\/kibana.local\" rel=\"noopener noreferrer nofollow\">http:\/\/kibana.local<\/a>. <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 fluentd forwarder \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d. \u041f\u0435\u0440\u0435\u0434 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430, \u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b \u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043b\u043e\u0433\u0438, \u0438\u043d\u0430\u0447\u0435 \u0435\u043b\u0430\u0441\u0442\u0438\u043a\u0443 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0441\u043b\u0430\u043d\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u043e\u0433\u043e\u0432.  \u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u0444\u0430\u0439\u043b\u0435 apache-log-parser.yaml.<\/p>\n<h2>\u041a\u0430\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043b\u043e\u0433\u0438 \u0432 EFK<\/h2>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u043b\u0438\u0431\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c fluentd forwarder, \u043b\u0438\u0431\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/github.com\/serg-bs\/django-hello-world\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043d\u0430 python<\/a>. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f bare metal. \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 FLUENT_HOST FLUENT_PORT \u043d\u0430 \u0432\u0430\u0448\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"json\">cat &lt;&lt;EOF | kubectl apply -f - apiVersion: apps\/v1 kind: Deployment metadata:   name: helloworld   labels:     app: helloworld spec:   replicas: 1   template:     metadata:       name: helloworld       labels:         app: helloworld     spec:       containers:         - name: helloworld           image: sergbs\/django-hello-world:1           imagePullPolicy: Always           ports:             - containerPort: 8000           env:             - name: FLUENT_HOST               value: \"efk-fluentd-headless\"             - name: FLUENT_PORT               value: \"24224\"   selector:     matchLabels:       app: helloworld --- apiVersion: v1 kind: Service metadata:   name: helloworld spec:   selector:     app: helloworld   ports:     - port: 8000       nodePort: 30011   type: NodePort EOF<\/code><\/pre>\n<p>\u041f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <a href=\"http:\/\/minikube_host:30011\/\" rel=\"noopener noreferrer nofollow\">http:\/\/minikube_host:30011\/<\/a> \u0411\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e &#171;Hello, world!&#187;  \u0418 \u043b\u043e\u0433 \u0443\u0439\u0434\u0435\u0442 \u0432 elastic<\/p>\n<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e23\/268\/e6c\/e23268e6cde34a215f09bb37ef8ea25a.jpeg\" width=\"1355\" height=\"551\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440<\/p>\n<p>\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c fluentd forwarder, \u043e\u043d \u0441\u043e\u0437\u0434\u0430\u0441\u0442 daemon set, \u0442.\u0435. \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u0443\u0431\u0435\u0440\u043d\u0435\u0442\u0435\u0441\u0430 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u043b\u043e\u0433\u0438 docker container-\u043e\u0432.  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0430\u0448 \u0434\u043e\u043a\u0435\u0440 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 fluentd, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/github.com\/serg-bs\/django-hello-world\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 python<\/a>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0435\u0433\u043e, \u043a\u0430\u043a \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 EFK. <\/p>\n<p>\u0418 \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430, \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439, \u043d\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u043b\u043e\u0433\u0438\u0440\u0443\u0435\u0442\u0435 \u0441\u0440\u0430\u0437\u0443 \u0432 fluentd \u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0442\u0435\u0440\u0438 \u043a\u043e\u043d\u0435\u043a\u0442\u0430, \u0432\u043e fluentd \u0447\u0430\u0441\u0442\u044c \u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u044b \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u044d\u0442\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438 \u0441 \u0434\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0432 EFK.    <\/p>\n<h2>\u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u043b\u043e\u0433\u043e\u0432<\/h2>\n<p>\u0414\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u043b\u043e\u0433\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f curator. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 yaml \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"json\">elasticsearch:   curator:     enabled: true<\/code><\/pre>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0435\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0443\u0436\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0441\u0442\u0430\u0440\u0448\u0435 90 \u0434\u043d\u0435\u0439 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u043e\u0434\u0447\u0430\u0442\u0430 efk\/charts\/elasticsearch-12.6.1.tgz!\/elasticsearch\/values.yaml <\/p>\n<pre><code class=\"json\">configMaps:   # Delete indices older than 90 days   action_file_yml: |-       ...  \tunit: days \tunit_count: 90<\/code><\/pre>\n<h2>Security<\/h2>\n<p>\u041a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e security \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0431\u043e\u043b\u044c \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u0448\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0443\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0441\u043b\u0430, \u044d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0448\u0430\u0433. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0434\u0435 \u0444\u0430\u043a\u0442\u043e \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 LDAP.  \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u043e\u0442 \u0435\u043b\u0430\u0441\u0442\u0438\u043a\u0430 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u043d\u0435 \u043f\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d <a href=\"https:\/\/opendistro.github.io\/for-elasticsearch-docs\/docs\/install\/plugins\/%20\" rel=\"noopener noreferrer nofollow\">Open Distro<\/a>. \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c, \u043a\u0430\u043a \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c. <\/p>\n<p><strong>\u0421\u0431\u043e\u0440\u043a\u0430 elasticsearch c \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c opendistro<\/strong><\/p>\n<p>\u0412\u043e\u0442 <a href=\"https:\/\/github.com\/serg-bs\/docker-elasticsearch-opendistro-openldap\" rel=\"noopener noreferrer nofollow\"><strong><em>\u043f\u0440\u043e\u0435\u043a\u0442<\/em><\/strong><\/a> \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438 docker images.<\/p>\n<p>\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u0441\u0438\u044f elasticsearch \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430  \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430.<\/p>\n<p>\u0412 <a href=\"https:\/\/opendistro.github.io\/for-elasticsearch-docs\/docs\/install\/plugins\/#security\" rel=\"noopener noreferrer nofollow\">quickstart<\/a> \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <a href=\"https:\/\/github.com\/opendistro-for-elasticsearch\/security\/blob\/master\/tools\/install_demo_configuration.sh\" rel=\"noopener noreferrer nofollow\">install_demo_configuration.sh<\/a> \u0441 \u0434\u0435\u043c\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438.<\/p>\n<pre><code class=\"bash\">FROM bitnami\/elasticsearch:7.10.0  RUN elasticsearch-plugin install -b https:\/\/d3g5vo6xdbdb9a.cloudfront.net\/downloads\/elasticsearch-plugins\/opendistro-security\/opendistro_security-1.12.0.0.zip RUN touch \/opt\/bitnami\/elasticsearch\/config\/elasticsearch.yml  USER root RUN \/bin\/bash \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/tools\/install_demo_configuration.sh -y -i RUN mv \/opt\/bitnami\/elasticsearch\/config\/elasticsearch.yml \/opt\/bitnami\/elasticsearch\/config\/my_elasticsearch.yml COPY my_elasticsearch.yml \/opt\/bitnami\/elasticsearch\/config\/my_elasticsearch.yml USER 1001<\/code><\/pre>\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043c\u0430\u0433\u0438\u044f, \u0432\u0432\u0438\u0434\u0443, \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 elasticsearch.yml, \u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b bitnami \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u043d\u0438 \u043f\u0440\u043e\u0441\u044f\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 my_elasticsearch.yml <\/p>\n<p>\u0412 my_elasticsearch.yml  \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443, \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0440\u0435\u0441\u0442\u0430\u043c elasticsearch \u043f\u043e http. <\/p>\n<pre><code class=\"json\"># turn off REST layer  tlsopendistro_security.ssl.http.enabled: false<\/code><\/pre>\n<p>\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u044d\u0442\u043e \u0432 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445, \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c Rest Layer tls \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u043e \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u0441 elasticsearch.<\/p>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a docker-compose \u0441 LDAP \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439<\/strong><\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>docker-compose up<\/code> , \u0438 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u043c\u0441\u044f \u043d\u0430 <a href=\"http:\/\/0:5601\" rel=\"noopener noreferrer nofollow\">http:\/\/0:5601<\/a> \u043f\u043e\u0434 admin\/admin<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0cc\/67a\/ddf\/0cc67addfad0137b541ca5909a2e364d.jpeg\" width=\"404\" height=\"384\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u043a\u043b\u0430\u0434\u043a\u0430 Security<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/653\/0af\/7c5\/6530af7c52aea0c4d8897a9c731fbfbb.jpeg\" width=\"413\" height=\"581\"><figcaption><\/figcaption><\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 LDAP \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u0438\u0431\u0430\u043d\u044b<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ec4\/fc7\/d7c\/ec4fc7d7c9e7f88c42392b662bd68d8e.jpeg\" width=\"1168\" height=\"506\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0421\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043b\u0430\u0433\u0438\u043d \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0432\u043e\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0435 \u0435\u043b\u0430\u0441\u0442\u0438\u043a\u0430, \u0438 \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0442.\u0435. \u0435\u0441\u043b\u0438 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u043e\u0437\u0436\u0435 \u0442\u043e \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 securityadmin.sh<\/p>\n<pre><code class=\"bash\">docker exec -it elasticsearch \/bin\/bash I have no name!@68ac2255bb85:\/$ .\/securityadmin_demo.sh Open Distro Security Admin v7 Will connect to localhost:9300 ... done Connected as CN=kirk,OU=client,O=client,L=test,C=de Elasticsearch Version: 7.10.0 Open Distro Security Version: 1.12.0.0 Contacting elasticsearch cluster 'elasticsearch' and wait for YELLOW clusterstate ... Clustername: elasticsearch Clusterstate: YELLOW Number of nodes: 1 Number of data nodes: 1 .opendistro_security index already exists, so we do not need to create one. Populate config from \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/ Will update '_doc\/config' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/config.yml     SUCC: Configuration for 'config' created or updated Will update '_doc\/roles' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/roles.yml     SUCC: Configuration for 'roles' created or updated Will update '_doc\/rolesmapping' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/roles_mapping.yml     SUCC: Configuration for 'rolesmapping' created or updated Will update '_doc\/internalusers' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/internal_users.yml     SUCC: Configuration for 'internalusers' created or updated Will update '_doc\/actiongroups' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/action_groups.yml     SUCC: Configuration for 'actiongroups' created or updated Will update '_doc\/tenants' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/tenants.yml     SUCC: Configuration for 'tenants' created or updated Will update '_doc\/nodesdn' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/nodes_dn.yml     SUCC: Configuration for 'nodesdn' created or updated Will update '_doc\/whitelist' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/whitelist.yml     SUCC: Configuration for 'whitelist' created or updated Will update '_doc\/audit' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/audit.yml     SUCC: Configuration for 'audit' created or updated Done with success I have no name!@68ac2255bb85:\/$  <\/code><\/pre>\n<p><strong>\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Ldap<\/strong><\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441  LDAP \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0435\u043a\u0446\u0438\u0438 \u0432 elastisearch-opendistro-sec\/config.yml, \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u043e <a href=\"https:\/\/opendistro.github.io\/for-elasticsearch-docs\/docs\/security\/configuration\/ldap\/#connection-settings\" rel=\"noopener noreferrer nofollow\">authentication<\/a><\/p>\n<pre><code class=\"json\">config:   dynamic:     authc:       # \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e\t           authz:       # \u0430 \u0437\u0434\u0435\u0441\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e\t<\/code><\/pre>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 Active Directory, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"json\">       # \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e           ldap:         ...             hosts:               - ldaphost:389             bind_dn: cn=LDAP,ou=Example,dc=example,dc=ru             password: CHANGEME             userbase: 'DC=example,DC=ru'             usersearch: '(sAMAccountName={0})'             username_attribute: sAMAccountName <\/code><\/pre>\n<p>\u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f securityadmin.sh \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0431\u044b\u043b\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u0435.  <\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 EFK + Opendistro \u0432 kubernetes<\/h2>\n<p>\u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u0441 <a href=\"https:\/\/github.com\/serg-bs\/efk\" rel=\"noopener noreferrer nofollow\">kubernetes<\/a>, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439<\/p>\n<pre><code class=\"bash\">helm upgrade --install efk . -f values.yaml  <\/code><\/pre>\n<p>\u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 OpenDistro Security plugin \u043c\u044b \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0432 \u0441\u0435\u043a\u0440\u0435\u0442\u044b kubernetes.<\/p>\n<pre><code class=\"json\">  extraVolumes:   - name: config     secret:       secretName: opendistro-config       items:         - key: config.yml           path: config.yml   - name: roles-mapping     secret:       secretName: opendistro-config       items:         - key: roles_mapping.yml           path: roles_mapping.yml   extraVolumeMounts:     - mountPath: \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/config.yml       subPath: config.yml       name: config     - mountPath: \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/roles_mapping.yml       subPath: roles_mapping.yml       name: roles-mapping<\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 helm upgrade, \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 job, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 <strong>helm upgrade<\/strong> <\/p>\n<pre><code class=\"json\">apiVersion: batch\/v1 kind: Job metadata:     name: opendistro-config-reload     labels:         app.kubernetes.io\/managed-by: {{.Release.Service | quote }}         app.kubernetes.io\/instance: {{.Release.Name | quote }}     annotations:         \"helm.sh\/hook\": post-upgrade         \"helm.sh\/hook-delete-policy\": hook-succeeded spec:     template:         metadata:             name: config-reload             labels:                 app.kubernetes.io\/managed-by: {{.Release.Service | quote }}                 app.kubernetes.io\/instance: {{.Release.Name | quote }}         spec:             initContainers:                 - name: \"wait-for-db\"                   image: \"alpine:3.6\"                   command:                       - 'sh'                       - '-c'                       - &gt;                           until nc -z -w 2 efk-elasticsearch-coordinating-only 9300 &amp;&amp; echo elastic is ok; do                             sleep 2;                           done;             containers:                 - name: opendistro-config-reload                   image: \"{{ .Values.elasticsearch.image.registry }}\/{{ .Values.elasticsearch.image.repository}}:{{ .Values.elasticsearch.image.tag }}\"                   imagePullPolicy: {{ .Values.elasticsearch.image.pullPolicy | quote }}                 {{- if .Values.elasticsearch.master.securityContext.enabled }}                   securityContext:                     runAsUser: {{ .Values.elasticsearch.master.securityContext.runAsUser }}                  {{- end }}                   command:                     - 'bash'                     - '-c'                     - &gt;                        \"\/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/tools\/securityadmin.sh\" -h efk-elasticsearch-coordinating-only -cd \"\/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\" -icl -key \"\/opt\/bitnami\/elasticsearch\/config\/kirk-key.pem\" -cert \"\/opt\/bitnami\/elasticsearch\/config\/kirk.pem\" -cacert \"\/opt\/bitnami\/elasticsearch\/config\/root-ca.pem\" -nhnv             restartPolicy: Never     backoffLimit: 1 <\/code><\/pre>\n<h2>\u0418\u0442\u043e\u0433\u0438<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443 \u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 kubernetes, \u0434\u0430\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u043e\u0433 \u0431\u044b \u0441\u0442\u0430\u0442\u044c \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u0431\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c. \u0412\u0441\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c\u0438 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\u043c\u0438. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c production ready \u0440\u0435\u0448\u0435\u043d\u0438\u0435.  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/p>\n<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/537736\/\"> https:\/\/habr.com\/ru\/post\/537736\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u041f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044f, \u043a\u0430\u0436\u0434\u0430\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043e\u0442 \u0440\u0443\u0447\u043d\u043e\u0433\u043e grep \u043b\u043e\u0433\u043e\u0432 \u043a \u0431\u043e\u043b\u0435\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430, \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043b\u043e\u0433\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 kubernetes, \u0433\u0434\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e \u0438 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e, \u0432\u0430\u0441 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043d\u0443\u0436\u0434\u0430\u044e\u0442 \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0441\u0442\u0430\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u044b \u0441\u0431\u043e\u0440\u0430 \u043b\u043e\u0433\u043e\u0432.  \u0412  \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u0440\u0438\u0447\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f \u0441\u0435\u0431\u044f. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u0438 \u0437\u0430\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0432\u0448\u0435\u043c \u0441\u0435\u0431\u044f \u0441\u0442\u044d\u043a\u0435 <a href=\"https:\/\/www.elastic.co\/products\/elasticsearch\" rel=\"noopener noreferrer nofollow\">Elasticsearch<\/a> + <a href=\"https:\/\/www.elastic.co\/products\/kibana\" rel=\"noopener noreferrer nofollow\">Kibana<\/a> + <a href=\"https:\/\/www.fluentd.org\/\" rel=\"noopener noreferrer nofollow\">Fluentd<\/a> \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c <a href=\"https:\/\/opendistro.github.io\/for-elasticsearch-docs\/docs\/security\/\" rel=\"noopener noreferrer nofollow\">OpenDistro Security.<\/a> \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u0442\u044d\u043a \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e open source, \u0447\u0442\u043e \u043f\u0440\u0438\u0434\u0430\u0435\u0442 \u0435\u043c\u0443 \u043e\u0441\u043e\u0431\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c.<\/p>\n<h2>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u043a\u0430<\/h2>\n<p>\u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043b\u0430\u0434\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u043b\u043e\u0433\u043e\u0432 \u0441 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 kubernetes. \u0418\u0437 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.  <\/p>\n<\/li>\n<li>\n<p>\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0447\u0438\u0441\u0442\u043a\u0443 \u043b\u043e\u0433\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c LDAP, \u0434\u043b\u044f \u0440\u0430\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432. <\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0435\u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u044b<\/strong><\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442: <\/p>\n<ul>\n<li>\n<p>\u0418\u043c\u0435\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 kuberenetes 1.18 \u0438\u043b\u0438 \u0432\u044b\u0448\u0435 (\u043d\u0438\u0436\u0435 \u0432\u0435\u0440\u0441\u0438\u044e \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438)<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 <a href=\"https:\/\/helm.sh\/docs\/intro\/install\/\" rel=\"noopener noreferrer nofollow\">helm 3 <\/a><\/p>\n<\/li>\n<\/ul>\n<h2>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e helm chart<\/h2>\n<p>\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 kubernetes \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f helm. Helm \u044d\u0442\u043e \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0438\u0445 \u0432\u043c\u0435\u0441\u0442e, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c\u0438 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439.<\/p>\n<p>\u0412 \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <a href=\"https:\/\/github.com\/bitnami\/charts\/tree\/master\/bitnami\" rel=\"noopener noreferrer nofollow\">helm chart \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 bitnami(\u043f\u043e\u0434\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 vmware)<\/a>  <\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0431\u0440\u0430\u043d\u044b open source \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u043d\u0430 \u0432\u0441\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u0436\u0438\u0437\u043d\u0438.<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0447\u0430\u0442\u043e\u0432 \u0438 \u0434\u043e\u043a\u0435\u0440 \u043e\u0431\u0440\u0430\u0437\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u043a\u0440\u0430\u0441\u0438\u0432\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0435\u043a\u0442 \u0436\u0438\u0432\u043e\u0439 \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c<\/p>\n<\/li>\n<\/ul>\n<h2>\u0412\u044b\u0431\u043e\u0440 \u0441\u0442\u0435\u043a\u0430<\/h2>\n<p>\u0412\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0432\u044b\u0431\u043e\u0440 \u0441\u0442\u0435\u043a\u0430 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u043e \u0432\u0440\u0435\u043c\u044f.  \u0421 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u043e\u043b\u0435\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0431\u044b \u0434\u0435\u043f\u043b\u043e\u0438\u043b\u0438 ELK \u0441\u0442\u0435\u043a \u0432\u043c\u0435\u0441\u0442\u043e EFK \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 helm chart. <\/p>\n<p>Fluentd \u0447\u0430\u0441\u0442\u043e \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432 <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/cluster-administration\/logging\/#cluster-level-logging-architectures\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>, \u0448\u0438\u0440\u043e\u043a\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d, \u0438\u043c\u0435\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u043d\u0430 \u0432\u0441\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u0436\u0438\u0437\u043d\u0438. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0432 rebrain \u0438 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0442\u0435\u043b \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c fluentd. <\/p>\n<p>Elasticsearch \u0438 kibana \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0434\u043b\u044f security \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u043a\u0443\u0441\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0434\u0443\u0442 \u043f\u043e\u0434 \u0438\u043d\u043e\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Amazon \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u044b Open Distro, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0442 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043f\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439. <\/p>\n<p>\u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0425\u043e\u0440\u043e\u0448\u0438\u043c \u0442\u043e\u043d\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0435\u043b\u0435\u043d\u044b\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u0442\u0430 \u0447\u0430\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0432\u0441\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043b\u043e\u0433\u0438.<\/p>\n<h2>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0435\u043f\u043b\u043e\u0439 EFK \u0441\u0442\u0435\u043a\u0430 (\u0431\u0435\u0437 Security)<\/h2>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 EFK \u0441\u0442\u0435\u043a\u0430 \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0430 \u043f\u043e \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/docs.bitnami.com\/tutorials\/integrate-logging-kubernetes-kibana-elasticsearch-fluentd\/\" rel=\"noopener noreferrer nofollow\">Collect and Analyze Log Data for a Kubernetes Cluster with Bitnami&#8217;s Elasticsearch, Fluentd and Kibana Charts<\/a>. \u041a\u043e\u043c\u043f\u043e\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0430\u0442. \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c <a href=\"https:\/\/github.com\/serg-bs\/efk\" rel=\"noopener noreferrer nofollow\"><strong><em>\u0437\u0434\u0435\u0441\u044c<\/em><\/strong><\/a> \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439<\/p>\n<pre><code class=\"bash\">helm dependency update helm upgrade --install efk . -f values-minimal.yaml<\/code><\/pre>\n<p>\u0418\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 values-minimal.yaml <\/p>\n<pre><code class=\"json\">elasticsearch:   volumePermissions:     enabled: true  kibana:   volumePermissions:     enabled: true   elasticsearch:     hosts:     - \"efk-elasticsearch-coordinating-only\"     port: 9200 # \u041f\u0440\u043e\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u0445\u043e\u0441\u0442, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0438\u043d\u0433\u0440\u0435\u0441\u0441   ingress:     enabled: true     hostname: kibana.local # \u041b\u0438\u0431\u043e    service:     type: NodePort     port: 30010 fluentd:   aggregator:     enabled: true     configMap: elasticsearch-output     extraEnv:     - name: ELASTICSEARCH_HOST       value: \"efk-elasticsearch-coordinating-only\"     - name: ELASTICSEARCH_PORT       value: \"9200\"   forwarder: #    \u0427\u0442\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u043e\u0432 \u0441 \u0434\u0438\u0441\u043a\u0430 \/var\/log\/containers\/* \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e     enabled: false     configMap: apache-log-parser     extraEnv:     - name: FLUENTD_DAEMON_USER       value: root     - name: FLUENTD_DAEMON_GROUP       value: root<\/code><\/pre>\n<p>\u041a\u0438\u0431\u0430\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <a href=\"http:\/\/minikube_host:30010\/\" rel=\"noopener noreferrer nofollow\">http:\/\/minikube_host:30010\/<\/a>, \u043b\u0438\u0431\u043e <a href=\"http:\/\/kibana.local\" rel=\"noopener noreferrer nofollow\">http:\/\/kibana.local<\/a>. <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 fluentd forwarder \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d. \u041f\u0435\u0440\u0435\u0434 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430, \u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b \u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043b\u043e\u0433\u0438, \u0438\u043d\u0430\u0447\u0435 \u0435\u043b\u0430\u0441\u0442\u0438\u043a\u0443 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0441\u043b\u0430\u043d\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u043e\u0433\u043e\u0432.  \u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u0444\u0430\u0439\u043b\u0435 apache-log-parser.yaml.<\/p>\n<h2>\u041a\u0430\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043b\u043e\u0433\u0438 \u0432 EFK<\/h2>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u043b\u0438\u0431\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c fluentd forwarder, \u043b\u0438\u0431\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/github.com\/serg-bs\/django-hello-world\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043d\u0430 python<\/a>. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f bare metal. \u0418\u0441\u043f\u0440\u0430\u0432\u044c\u0442\u0435 FLUENT_HOST FLUENT_PORT \u043d\u0430 \u0432\u0430\u0448\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"json\">cat &lt;&lt;EOF | kubectl apply -f - apiVersion: apps\/v1 kind: Deployment metadata:   name: helloworld   labels:     app: helloworld spec:   replicas: 1   template:     metadata:       name: helloworld       labels:         app: helloworld     spec:       containers:         - name: helloworld           image: sergbs\/django-hello-world:1           imagePullPolicy: Always           ports:             - containerPort: 8000           env:             - name: FLUENT_HOST               value: \"efk-fluentd-headless\"             - name: FLUENT_PORT               value: \"24224\"   selector:     matchLabels:       app: helloworld --- apiVersion: v1 kind: Service metadata:   name: helloworld spec:   selector:     app: helloworld   ports:     - port: 8000       nodePort: 30011   type: NodePort EOF<\/code><\/pre>\n<p>\u041f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <a href=\"http:\/\/minikube_host:30011\/\" rel=\"noopener noreferrer nofollow\">http:\/\/minikube_host:30011\/<\/a> \u0411\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e &#171;Hello, world!&#187;  \u0418 \u043b\u043e\u0433 \u0443\u0439\u0434\u0435\u0442 \u0432 elastic<\/p>\n<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440<\/p>\n<p>\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c fluentd forwarder, \u043e\u043d \u0441\u043e\u0437\u0434\u0430\u0441\u0442 daemon set, \u0442.\u0435. \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u0443\u0431\u0435\u0440\u043d\u0435\u0442\u0435\u0441\u0430 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u043b\u043e\u0433\u0438 docker container-\u043e\u0432.  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0430\u0448 \u0434\u043e\u043a\u0435\u0440 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 fluentd, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/github.com\/serg-bs\/django-hello-world\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 python<\/a>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0435\u0433\u043e, \u043a\u0430\u043a \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 EFK. <\/p>\n<p>\u0418 \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430, \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439, \u043d\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u043b\u043e\u0433\u0438\u0440\u0443\u0435\u0442\u0435 \u0441\u0440\u0430\u0437\u0443 \u0432 fluentd \u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0442\u0435\u0440\u0438 \u043a\u043e\u043d\u0435\u043a\u0442\u0430, \u0432\u043e fluentd \u0447\u0430\u0441\u0442\u044c \u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u044b \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0430\u0432\u0441\u0435\u0433\u0434\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u044d\u0442\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438 \u0441 \u0434\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0432 EFK.    <\/p>\n<h2>\u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u043b\u043e\u0433\u043e\u0432<\/h2>\n<p>\u0414\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u043b\u043e\u0433\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f curator. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 yaml \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"json\">elasticsearch:   curator:     enabled: true<\/code><\/pre>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0435\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0443\u0436\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0441\u0442\u0430\u0440\u0448\u0435 90 \u0434\u043d\u0435\u0439 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u043e\u0434\u0447\u0430\u0442\u0430 efk\/charts\/elasticsearch-12.6.1.tgz!\/elasticsearch\/values.yaml <\/p>\n<pre><code class=\"json\">configMaps:   # Delete indices older than 90 days   action_file_yml: |-       ...  \tunit: days \tunit_count: 90<\/code><\/pre>\n<h2>Security<\/h2>\n<p>\u041a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e security \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0431\u043e\u043b\u044c \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u0448\u0430 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0443\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0441\u043b\u0430, \u044d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0448\u0430\u0433. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0434\u0435 \u0444\u0430\u043a\u0442\u043e \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 LDAP.  \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u043e\u0442 \u0435\u043b\u0430\u0441\u0442\u0438\u043a\u0430 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u043d\u0435 \u043f\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d <a href=\"https:\/\/opendistro.github.io\/for-elasticsearch-docs\/docs\/install\/plugins\/%20\" rel=\"noopener noreferrer nofollow\">Open Distro<\/a>. \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c, \u043a\u0430\u043a \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c. <\/p>\n<p><strong>\u0421\u0431\u043e\u0440\u043a\u0430 elasticsearch c \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c opendistro<\/strong><\/p>\n<p>\u0412\u043e\u0442 <a href=\"https:\/\/github.com\/serg-bs\/docker-elasticsearch-opendistro-openldap\" rel=\"noopener noreferrer nofollow\"><strong><em>\u043f\u0440\u043e\u0435\u043a\u0442<\/em><\/strong><\/a> \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438 docker images.<\/p>\n<p>\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u0441\u0438\u044f elasticsearch \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430  \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430.<\/p>\n<p>\u0412 <a href=\"https:\/\/opendistro.github.io\/for-elasticsearch-docs\/docs\/install\/plugins\/#security\" rel=\"noopener noreferrer nofollow\">quickstart<\/a> \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <a href=\"https:\/\/github.com\/opendistro-for-elasticsearch\/security\/blob\/master\/tools\/install_demo_configuration.sh\" rel=\"noopener noreferrer nofollow\">install_demo_configuration.sh<\/a> \u0441 \u0434\u0435\u043c\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438.<\/p>\n<pre><code class=\"bash\">FROM bitnami\/elasticsearch:7.10.0  RUN elasticsearch-plugin install -b https:\/\/d3g5vo6xdbdb9a.cloudfront.net\/downloads\/elasticsearch-plugins\/opendistro-security\/opendistro_security-1.12.0.0.zip RUN touch \/opt\/bitnami\/elasticsearch\/config\/elasticsearch.yml  USER root RUN \/bin\/bash \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/tools\/install_demo_configuration.sh -y -i RUN mv \/opt\/bitnami\/elasticsearch\/config\/elasticsearch.yml \/opt\/bitnami\/elasticsearch\/config\/my_elasticsearch.yml COPY my_elasticsearch.yml \/opt\/bitnami\/elasticsearch\/config\/my_elasticsearch.yml USER 1001<\/code><\/pre>\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043c\u0430\u0433\u0438\u044f, \u0432\u0432\u0438\u0434\u0443, \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 elasticsearch.yml, \u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b bitnami \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u043d\u0438 \u043f\u0440\u043e\u0441\u044f\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 my_elasticsearch.yml <\/p>\n<p>\u0412 my_elasticsearch.yml  \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443, \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0440\u0435\u0441\u0442\u0430\u043c elasticsearch \u043f\u043e http. <\/p>\n<pre><code class=\"json\"># turn off REST layer  tlsopendistro_security.ssl.http.enabled: false<\/code><\/pre>\n<p>\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u044d\u0442\u043e \u0432 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445, \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c Rest Layer tls \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u043e \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u0441 elasticsearch.<\/p>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a docker-compose \u0441 LDAP \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439<\/strong><\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>docker-compose up<\/code> , \u0438 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u043c\u0441\u044f \u043d\u0430 <a href=\"http:\/\/0:5601\" rel=\"noopener noreferrer nofollow\">http:\/\/0:5601<\/a> \u043f\u043e\u0434 admin\/admin<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u043a\u043b\u0430\u0434\u043a\u0430 Security<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 LDAP \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u0438\u0431\u0430\u043d\u044b<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0421\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043b\u0430\u0433\u0438\u043d \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0432\u043e\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0435 \u0435\u043b\u0430\u0441\u0442\u0438\u043a\u0430, \u0438 \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0442.\u0435. \u0435\u0441\u043b\u0438 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u043e\u0437\u0436\u0435 \u0442\u043e \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 securityadmin.sh<\/p>\n<pre><code class=\"bash\">docker exec -it elasticsearch \/bin\/bash I have no name!@68ac2255bb85:\/$ .\/securityadmin_demo.sh Open Distro Security Admin v7 Will connect to localhost:9300 ... done Connected as CN=kirk,OU=client,O=client,L=test,C=de Elasticsearch Version: 7.10.0 Open Distro Security Version: 1.12.0.0 Contacting elasticsearch cluster 'elasticsearch' and wait for YELLOW clusterstate ... Clustername: elasticsearch Clusterstate: YELLOW Number of nodes: 1 Number of data nodes: 1 .opendistro_security index already exists, so we do not need to create one. Populate config from \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/ Will update '_doc\/config' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/config.yml     SUCC: Configuration for 'config' created or updated Will update '_doc\/roles' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/roles.yml     SUCC: Configuration for 'roles' created or updated Will update '_doc\/rolesmapping' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/roles_mapping.yml     SUCC: Configuration for 'rolesmapping' created or updated Will update '_doc\/internalusers' with \/opt\/bitnami\/elasticsearch\/plugins\/opendistro_security\/securityconfig\/internal_users.yml     SUCC: Configuration for 'internalusers' created or updated Will<\/code><\/pre>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-316959","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/316959","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=316959"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/316959\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=316959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=316959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=316959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}