├── page ├── .hugo_build.lock ├── themes │ └── hugo-theme-learn │ │ ├── .gitignore │ │ ├── layouts │ │ ├── partials │ │ │ ├── favicon.html │ │ │ ├── custom-comments.html │ │ │ ├── toc.html │ │ │ ├── custom-header.html │ │ │ ├── tags.html │ │ │ ├── menu-footer.html │ │ │ ├── custom-footer.html │ │ │ ├── meta.html │ │ │ └── search.html │ │ ├── shortcodes │ │ │ ├── notice.html │ │ │ ├── mermaid.html │ │ │ ├── siteparam.html │ │ │ ├── ref.html │ │ │ ├── relref.html │ │ │ ├── button.html │ │ │ ├── expand.html │ │ │ └── attachments.html │ │ ├── _default │ │ │ ├── single.html │ │ │ └── list.html │ │ ├── index.json │ │ └── index.html │ │ ├── images │ │ ├── tn.png │ │ └── screenshot.png │ │ ├── static │ │ ├── images │ │ │ ├── favicon.png │ │ │ ├── gopher-404.jpg │ │ │ └── clippy.svg │ │ ├── fonts │ │ │ ├── Inconsolata.eot │ │ │ ├── Inconsolata.ttf │ │ │ ├── Inconsolata.woff │ │ │ ├── Work_Sans_200.eot │ │ │ ├── Work_Sans_200.ttf │ │ │ ├── Work_Sans_200.woff │ │ │ ├── Work_Sans_200.woff2 │ │ │ ├── Work_Sans_300.eot │ │ │ ├── Work_Sans_300.ttf │ │ │ ├── Work_Sans_300.woff │ │ │ ├── Work_Sans_300.woff2 │ │ │ ├── Work_Sans_500.eot │ │ │ ├── Work_Sans_500.ttf │ │ │ ├── Work_Sans_500.woff │ │ │ ├── Work_Sans_500.woff2 │ │ │ ├── Novecentosanswide-Normal-webfont.eot │ │ │ ├── Novecentosanswide-Normal-webfont.ttf │ │ │ ├── Novecentosanswide-Normal-webfont.woff │ │ │ ├── Novecentosanswide-Normal-webfont.woff2 │ │ │ ├── Novecentosanswide-UltraLight-webfont.eot │ │ │ ├── Novecentosanswide-UltraLight-webfont.ttf │ │ │ ├── Novecentosanswide-UltraLight-webfont.woff │ │ │ └── Novecentosanswide-UltraLight-webfont.woff2 │ │ ├── webfonts │ │ │ ├── fa-solid-900.eot │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-brands-400.eot │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-brands-400.woff │ │ │ ├── fa-regular-400.eot │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-solid-900.woff │ │ │ ├── fa-solid-900.woff2 │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.woff │ │ │ └── fa-regular-400.woff2 │ │ └── css │ │ │ ├── auto-complete.css │ │ │ ├── tags.css │ │ │ ├── featherlight.min.css │ │ │ ├── hybrid.css │ │ │ └── atom-one-dark-reasonable.css │ │ ├── archetypes │ │ ├── default.md │ │ └── chapter.md │ │ ├── exampleSite │ │ ├── content │ │ │ ├── shortcodes │ │ │ │ ├── children │ │ │ │ │ ├── test.en.md │ │ │ │ │ ├── test.fr.md │ │ │ │ │ ├── children-1 │ │ │ │ │ │ ├── _index.fr.md │ │ │ │ │ │ ├── _index.en.md │ │ │ │ │ │ └── children-1-1 │ │ │ │ │ │ │ ├── _index.fr.md │ │ │ │ │ │ │ ├── _index.en.md │ │ │ │ │ │ │ └── children-1-1-1 │ │ │ │ │ │ │ ├── _index.en.md │ │ │ │ │ │ │ ├── _index.fr.md │ │ │ │ │ │ │ └── children-1-1-1-1 │ │ │ │ │ │ │ ├── _index.fr.md │ │ │ │ │ │ │ ├── _index.en.md │ │ │ │ │ │ │ └── children-1-1-1-1-1 │ │ │ │ │ │ │ ├── _index.en.md │ │ │ │ │ │ │ └── _index.fr.md │ │ │ │ │ ├── children-3 │ │ │ │ │ │ ├── _index.fr.md │ │ │ │ │ │ └── _index.en.md │ │ │ │ │ ├── children-2 │ │ │ │ │ │ ├── test3.en.md │ │ │ │ │ │ ├── test3.fr.md │ │ │ │ │ │ ├── _index.en.md │ │ │ │ │ │ └── _index.fr.md │ │ │ │ │ ├── children-4 │ │ │ │ │ │ ├── _index.fr.md │ │ │ │ │ │ └── _index.en.md │ │ │ │ │ ├── _index.en.md │ │ │ │ │ └── _index.fr.md │ │ │ │ ├── attachments.en.files │ │ │ │ │ ├── hugo.png │ │ │ │ │ ├── BachGavotteShort.mp3 │ │ │ │ │ ├── adivorciarsetoca00cape.pdf │ │ │ │ │ ├── Carroll_AliceAuPaysDesMerveilles.pdf │ │ │ │ │ └── movieselectricsheep-flock-244-32500-2.mp4 │ │ │ │ ├── attachments.fr.files │ │ │ │ │ ├── hugo.png │ │ │ │ │ ├── BachGavotteShort.mp3 │ │ │ │ │ ├── adivorciarsetoca00cape.pdf │ │ │ │ │ ├── Carroll_AliceAuPaysDesMerveilles.pdf │ │ │ │ │ └── movieselectricsheep-flock-244-32500-2.mp4 │ │ │ │ ├── siteparam.en.md │ │ │ │ ├── siteparam.fr.md │ │ │ │ ├── _index.en.md │ │ │ │ ├── button.en.md │ │ │ │ ├── _index.fr.md │ │ │ │ ├── button.fr.md │ │ │ │ ├── notice.en.md │ │ │ │ └── notice.fr.md │ │ │ ├── cont │ │ │ │ ├── i18n │ │ │ │ │ └── images │ │ │ │ │ │ └── i18n-menu.gif │ │ │ │ ├── pages │ │ │ │ │ └── images │ │ │ │ │ │ ├── pages-chapter.png │ │ │ │ │ │ ├── pages-default.png │ │ │ │ │ │ └── frontmatter-icon.png │ │ │ │ ├── _index.en.md │ │ │ │ ├── _index.fr.md │ │ │ │ ├── tags.en.md │ │ │ │ ├── tags.fr.md │ │ │ │ ├── archetypes.en.md │ │ │ │ ├── icons.en.md │ │ │ │ └── archetypes.fr.md │ │ │ ├── basics │ │ │ │ ├── requirements │ │ │ │ │ ├── images │ │ │ │ │ │ └── magic.gif │ │ │ │ │ ├── _index.en.md │ │ │ │ │ └── _index.fr.md │ │ │ │ ├── _index.zh.md │ │ │ │ ├── installation │ │ │ │ │ └── images │ │ │ │ │ │ └── chapter.png │ │ │ │ ├── style-customization │ │ │ │ │ └── images │ │ │ │ │ │ ├── red-variant.png │ │ │ │ │ │ ├── blue-variant.png │ │ │ │ │ │ └── green-variant.png │ │ │ │ ├── configuration │ │ │ │ │ └── images │ │ │ │ │ │ └── home_button_defaults.jpg │ │ │ │ ├── _index.en.md │ │ │ │ └── _index.fr.md │ │ │ ├── showcase.en.md │ │ │ ├── showcase.fr.md │ │ │ ├── credits.fr.md │ │ │ └── credits.en.md │ │ ├── static │ │ │ ├── images │ │ │ │ └── showcase │ │ │ │ │ ├── tat.png │ │ │ │ │ ├── tshark_dev.png │ │ │ │ │ └── inteliver_docs.png │ │ │ └── fonts │ │ │ │ ├── monogramos-webfont.eot │ │ │ │ ├── monogramos-webfont.ttf │ │ │ │ ├── monogramos-webfont.woff │ │ │ │ └── monogramos-webfont.woff2 │ │ ├── layouts │ │ │ ├── partials │ │ │ │ ├── custom-footer.html │ │ │ │ └── menu-footer.html │ │ │ └── shortcodes │ │ │ │ └── ghcontributors.html │ │ └── LICENSE.md │ │ ├── .editorconfig │ │ ├── i18n │ │ ├── zh-cn.toml │ │ ├── ja.toml │ │ ├── ar.toml │ │ ├── en.toml │ │ ├── es.toml │ │ ├── pt.toml │ │ ├── tr.toml │ │ ├── hi.toml │ │ ├── ru.toml │ │ ├── de.toml │ │ ├── id.toml │ │ ├── nl.toml │ │ └── fr.toml │ │ ├── wercker.yml │ │ ├── .grenrc.yml │ │ ├── netlify.toml │ │ ├── theme.toml │ │ └── LICENSE.md ├── archetypes │ └── default.md ├── public │ ├── images │ │ ├── favicon.png │ │ ├── metrics.png │ │ ├── vpc-flow.png │ │ ├── cloudtrail.png │ │ ├── gopher-404.jpg │ │ ├── acknowledge.png │ │ ├── aws-overview.png │ │ ├── call-metadata.png │ │ ├── configure-sso.png │ │ ├── fleet-server.png │ │ ├── role-mapping.png │ │ ├── service-map.png │ │ ├── task2-start.png │ │ ├── task3-start.png │ │ ├── task4-start.png │ │ ├── session-viewer.png │ │ ├── sso-application.png │ │ ├── task1-solution.png │ │ ├── task3-solution.png │ │ ├── task4-solution.png │ │ ├── aws_workshop_arch.png │ │ ├── enrollment-token.png │ │ ├── integration-page.png │ │ ├── lambda-to-elastic.png │ │ ├── CloudFormation-Stack.png │ │ ├── billing-integration.png │ │ ├── create-agent-policy.png │ │ ├── endpoint-integration.png │ │ ├── integrations-page-2.png │ │ ├── kibana-login-screen.png │ │ ├── kibana-user-settings.png │ │ ├── metric-integrations.png │ │ ├── result-call-metadata.png │ │ ├── add-new-sso-application.png │ │ ├── aws-serverless-overview.png │ │ ├── kubernetes-monitoring.png │ │ ├── sso-attribute-mapping.png │ │ ├── API-keys-—-Elastic-Cloud.png │ │ ├── add-kubernetes-integration.png │ │ ├── elasticsearch-user-settings.png │ │ ├── elasticsearch-user-settings-2.png │ │ ├── AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service.png │ │ ├── AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step2.png │ │ ├── AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step3+4.png │ │ └── clippy.svg │ ├── fonts │ │ ├── Inconsolata.eot │ │ ├── Inconsolata.ttf │ │ ├── Inconsolata.woff │ │ ├── Work_Sans_200.eot │ │ ├── Work_Sans_200.ttf │ │ ├── Work_Sans_200.woff │ │ ├── Work_Sans_300.eot │ │ ├── Work_Sans_300.ttf │ │ ├── Work_Sans_300.woff │ │ ├── Work_Sans_500.eot │ │ ├── Work_Sans_500.ttf │ │ ├── Work_Sans_500.woff │ │ ├── Work_Sans_200.woff2 │ │ ├── Work_Sans_300.woff2 │ │ ├── Work_Sans_500.woff2 │ │ ├── Novecentosanswide-Normal-webfont.eot │ │ ├── Novecentosanswide-Normal-webfont.ttf │ │ ├── Novecentosanswide-Normal-webfont.woff │ │ ├── Novecentosanswide-Normal-webfont.woff2 │ │ ├── Novecentosanswide-UltraLight-webfont.eot │ │ ├── Novecentosanswide-UltraLight-webfont.ttf │ │ ├── Novecentosanswide-UltraLight-webfont.woff │ │ └── Novecentosanswide-UltraLight-webfont.woff2 │ ├── webfonts │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.ttf │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ ├── fa-brands-400.woff │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff │ │ ├── fa-regular-400.woff2 │ │ └── fa-solid-900.woff2 │ ├── tags │ │ └── index.xml │ ├── 03_conclusion │ │ └── index.xml │ ├── 02_observability │ │ └── index.xml │ ├── categories │ │ └── index.xml │ ├── 06_task4 │ │ └── index.xml │ ├── 08_conclusion │ │ └── index.xml │ ├── 05_task3 │ │ └── index.xml │ ├── 04_task2 │ │ └── index.xml │ ├── 03_task1 │ │ └── index.xml │ ├── css │ │ ├── auto-complete.css │ │ ├── tags.css │ │ ├── featherlight.min.css │ │ ├── hybrid.css │ │ └── atom-one-dark-reasonable.css │ ├── 02_demo │ │ └── index.xml │ ├── 00_introduction │ │ └── index.xml │ ├── sitemap.xml │ └── 404.html ├── static │ └── images │ │ ├── metrics.png │ │ ├── vpc-flow.png │ │ ├── cloudtrail.png │ │ ├── acknowledge.png │ │ ├── aws-overview.png │ │ ├── call-metadata.png │ │ ├── configure-sso.png │ │ ├── fleet-server.png │ │ ├── role-mapping.png │ │ ├── service-map.png │ │ ├── task2-start.png │ │ ├── task3-start.png │ │ ├── task4-start.png │ │ ├── session-viewer.png │ │ ├── sso-application.png │ │ ├── task1-solution.png │ │ ├── task3-solution.png │ │ ├── task4-solution.png │ │ ├── aws_workshop_arch.png │ │ ├── enrollment-token.png │ │ ├── integration-page.png │ │ ├── lambda-to-elastic.png │ │ ├── CloudFormation-Stack.png │ │ ├── billing-integration.png │ │ ├── create-agent-policy.png │ │ ├── endpoint-integration.png │ │ ├── integrations-page-2.png │ │ ├── kibana-login-screen.png │ │ ├── kibana-user-settings.png │ │ ├── metric-integrations.png │ │ ├── result-call-metadata.png │ │ ├── add-new-sso-application.png │ │ ├── aws-serverless-overview.png │ │ ├── kubernetes-monitoring.png │ │ ├── sso-attribute-mapping.png │ │ ├── API-keys-—-Elastic-Cloud.png │ │ ├── add-kubernetes-integration.png │ │ ├── elasticsearch-user-settings.png │ │ ├── elasticsearch-user-settings-2.png │ │ ├── AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service.png │ │ ├── AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step2.png │ │ └── AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step3+4.png ├── layouts │ └── partials │ │ ├── favicon.html │ │ ├── logo.html │ │ └── menu-footer.html ├── .gitmodules ├── CODE_OF_CONDUCT.md ├── LICENSE-SUMMARY ├── content │ ├── _index.md │ ├── 01_Getting started │ │ ├── page-1-elastic-key.md │ │ ├── _index.md │ │ ├── page-1-aws-marketplace.md │ │ └── page-1-cloud-formation.md │ ├── 08_Conclusion │ │ └── _index.md │ ├── 99_Observability │ │ ├── page-1-compliance.md │ │ └── _index.md │ ├── 06_Task4 │ │ └── _index.md │ ├── 04_Task2 │ │ └── _index.md │ ├── 05_Task3 │ │ └── _index.md │ ├── 03_Task1 │ │ └── _index.md │ ├── 02_Demo │ │ ├── page-1-environment.md │ │ └── _index.md │ └── 00_Introduction │ │ └── _index.md ├── .gitignore ├── LICENSE-SAMPLECODE ├── webspec.yml └── pipeline │ └── webhosting │ └── README.md ├── python-app ├── .gitignore ├── restart.sh └── loadgen.py ├── .gitignore ├── terraform ├── terraform │ ├── provider.tf │ ├── main.tf │ ├── logs_elb.tf │ ├── logs_s3.tf │ ├── ami_picker.tf │ ├── logs_cloudtrail.tf │ ├── service-data.tf │ ├── logs-cloudwatch.tf │ ├── config.tftpl │ └── variables.tf ├── json_templates │ ├── es_api_key.json │ ├── aws_rule_activation.json │ ├── default-policy.json │ ├── services-index.json │ ├── lambda-metrics-ingest-pipeline.json │ ├── custom-logs-ingest-pipeline.json │ ├── apm-traces-ingest-pipeline.json │ ├── python-integration.json │ ├── services-data.ndjson │ ├── cloudwatch-ingest-pipeline.json │ ├── service_transform.json │ └── python-index-template.json ├── .gitignore ├── lib │ └── elastic_api │ │ ├── es_api_key.sh │ │ ├── kb_load_detection_rules.sh │ │ ├── es_start_transform.sh │ │ ├── es_bulk.sh │ │ ├── es_create_transform.sh │ │ ├── kb_enable_detection_rules.sh │ │ ├── es_create_ilm_policy.sh │ │ ├── es_create_ingest_pipeline.sh │ │ ├── es_create_mapping.sh │ │ ├── kb_upload_saved_objects.sh │ │ ├── kb_add_integration_to_policy.sh │ │ ├── es_create_index_template.sh │ │ └── kb_create_agent_policy.sh └── README.md ├── misc ├── fixPerformanceIssue.sh └── dependencies-input.csv ├── lambda-generator └── requirements.txt ├── aws-lambda └── lambda-application │ ├── package.json │ ├── handler.js │ └── serverless.yml └── README.md /page/.hugo_build.lock: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python-app/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | **.env 2 | terraform/terraform/.terraform.tfstate.lock.info 3 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | public/ 3 | exampleSite/public 4 | -------------------------------------------------------------------------------- /terraform/terraform/provider.tf: -------------------------------------------------------------------------------- 1 | provider "aws" { 2 | region = var.aws_region 3 | } -------------------------------------------------------------------------------- /terraform/json_templates/es_api_key.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "${elastic-api-key-name}" 3 | } 4 | -------------------------------------------------------------------------------- /terraform/json_templates/aws_rule_activation.json: -------------------------------------------------------------------------------- 1 | {"action":"enable", "query": "alert.attributes.tags: \"AWS\""} -------------------------------------------------------------------------------- /page/archetypes/default.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "{{ replace .Name "-" " " | title }}" 3 | date: {{ .Date }} 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /page/public/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/favicon.png -------------------------------------------------------------------------------- /page/public/images/metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/metrics.png -------------------------------------------------------------------------------- /page/public/images/vpc-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/vpc-flow.png -------------------------------------------------------------------------------- /page/static/images/metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/metrics.png -------------------------------------------------------------------------------- /page/static/images/vpc-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/vpc-flow.png -------------------------------------------------------------------------------- /page/public/fonts/Inconsolata.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Inconsolata.eot -------------------------------------------------------------------------------- /page/public/fonts/Inconsolata.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Inconsolata.ttf -------------------------------------------------------------------------------- /page/public/images/cloudtrail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/cloudtrail.png -------------------------------------------------------------------------------- /page/public/images/gopher-404.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/gopher-404.jpg -------------------------------------------------------------------------------- /page/static/images/cloudtrail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/cloudtrail.png -------------------------------------------------------------------------------- /page/public/fonts/Inconsolata.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Inconsolata.woff -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_200.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_200.eot -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_200.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_200.ttf -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_200.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_200.woff -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_300.eot -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_300.ttf -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_300.woff -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_500.eot -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_500.ttf -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_500.woff -------------------------------------------------------------------------------- /page/public/images/acknowledge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/acknowledge.png -------------------------------------------------------------------------------- /page/public/images/aws-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/aws-overview.png -------------------------------------------------------------------------------- /page/public/images/call-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/call-metadata.png -------------------------------------------------------------------------------- /page/public/images/configure-sso.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/configure-sso.png -------------------------------------------------------------------------------- /page/public/images/fleet-server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/fleet-server.png -------------------------------------------------------------------------------- /page/public/images/role-mapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/role-mapping.png -------------------------------------------------------------------------------- /page/public/images/service-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/service-map.png -------------------------------------------------------------------------------- /page/public/images/task2-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/task2-start.png -------------------------------------------------------------------------------- /page/public/images/task3-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/task3-start.png -------------------------------------------------------------------------------- /page/public/images/task4-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/task4-start.png -------------------------------------------------------------------------------- /page/static/images/acknowledge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/acknowledge.png -------------------------------------------------------------------------------- /page/static/images/aws-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/aws-overview.png -------------------------------------------------------------------------------- /page/static/images/call-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/call-metadata.png -------------------------------------------------------------------------------- /page/static/images/configure-sso.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/configure-sso.png -------------------------------------------------------------------------------- /page/static/images/fleet-server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/fleet-server.png -------------------------------------------------------------------------------- /page/static/images/role-mapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/role-mapping.png -------------------------------------------------------------------------------- /page/static/images/service-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/service-map.png -------------------------------------------------------------------------------- /page/static/images/task2-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/task2-start.png -------------------------------------------------------------------------------- /page/static/images/task3-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/task3-start.png -------------------------------------------------------------------------------- /page/static/images/task4-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/task4-start.png -------------------------------------------------------------------------------- /page/layouts/partials/favicon.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_200.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_200.woff2 -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_300.woff2 -------------------------------------------------------------------------------- /page/public/fonts/Work_Sans_500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Work_Sans_500.woff2 -------------------------------------------------------------------------------- /page/public/images/session-viewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/session-viewer.png -------------------------------------------------------------------------------- /page/public/images/sso-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/sso-application.png -------------------------------------------------------------------------------- /page/public/images/task1-solution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/task1-solution.png -------------------------------------------------------------------------------- /page/public/images/task3-solution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/task3-solution.png -------------------------------------------------------------------------------- /page/public/images/task4-solution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/task4-solution.png -------------------------------------------------------------------------------- /page/public/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /page/public/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /page/public/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /page/public/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /page/public/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /page/static/images/session-viewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/session-viewer.png -------------------------------------------------------------------------------- /page/static/images/sso-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/sso-application.png -------------------------------------------------------------------------------- /page/static/images/task1-solution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/task1-solution.png -------------------------------------------------------------------------------- /page/static/images/task3-solution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/task3-solution.png -------------------------------------------------------------------------------- /page/static/images/task4-solution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/task4-solution.png -------------------------------------------------------------------------------- /page/public/images/aws_workshop_arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/aws_workshop_arch.png -------------------------------------------------------------------------------- /page/public/images/enrollment-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/enrollment-token.png -------------------------------------------------------------------------------- /page/public/images/integration-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/integration-page.png -------------------------------------------------------------------------------- /page/public/images/lambda-to-elastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/lambda-to-elastic.png -------------------------------------------------------------------------------- /page/public/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /page/public/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /page/public/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /page/public/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /page/public/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /page/public/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /page/public/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /page/static/images/aws_workshop_arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/aws_workshop_arch.png -------------------------------------------------------------------------------- /page/static/images/enrollment-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/enrollment-token.png -------------------------------------------------------------------------------- /page/static/images/integration-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/integration-page.png -------------------------------------------------------------------------------- /page/static/images/lambda-to-elastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/lambda-to-elastic.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/partials/favicon.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /page/public/images/CloudFormation-Stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/CloudFormation-Stack.png -------------------------------------------------------------------------------- /page/public/images/billing-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/billing-integration.png -------------------------------------------------------------------------------- /page/public/images/create-agent-policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/create-agent-policy.png -------------------------------------------------------------------------------- /page/public/images/endpoint-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/endpoint-integration.png -------------------------------------------------------------------------------- /page/public/images/integrations-page-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/integrations-page-2.png -------------------------------------------------------------------------------- /page/public/images/kibana-login-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/kibana-login-screen.png -------------------------------------------------------------------------------- /page/public/images/kibana-user-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/kibana-user-settings.png -------------------------------------------------------------------------------- /page/public/images/metric-integrations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/metric-integrations.png -------------------------------------------------------------------------------- /page/public/images/result-call-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/result-call-metadata.png -------------------------------------------------------------------------------- /page/static/images/CloudFormation-Stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/CloudFormation-Stack.png -------------------------------------------------------------------------------- /page/static/images/billing-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/billing-integration.png -------------------------------------------------------------------------------- /page/static/images/create-agent-policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/create-agent-policy.png -------------------------------------------------------------------------------- /page/static/images/endpoint-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/endpoint-integration.png -------------------------------------------------------------------------------- /page/static/images/integrations-page-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/integrations-page-2.png -------------------------------------------------------------------------------- /page/static/images/kibana-login-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/kibana-login-screen.png -------------------------------------------------------------------------------- /page/static/images/kibana-user-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/kibana-user-settings.png -------------------------------------------------------------------------------- /page/static/images/metric-integrations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/metric-integrations.png -------------------------------------------------------------------------------- /page/static/images/result-call-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/result-call-metadata.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/images/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/images/tn.png -------------------------------------------------------------------------------- /terraform/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .vs/slnx.sqlite 3 | *.tfstate 4 | *.backup 5 | terraform/*.tfstate 6 | terraform/.terraform 7 | *.hcl 8 | local_env -------------------------------------------------------------------------------- /page/public/images/add-new-sso-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/add-new-sso-application.png -------------------------------------------------------------------------------- /page/public/images/aws-serverless-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/aws-serverless-overview.png -------------------------------------------------------------------------------- /page/public/images/kubernetes-monitoring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/kubernetes-monitoring.png -------------------------------------------------------------------------------- /page/public/images/sso-attribute-mapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/sso-attribute-mapping.png -------------------------------------------------------------------------------- /page/static/images/add-new-sso-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/add-new-sso-application.png -------------------------------------------------------------------------------- /page/static/images/aws-serverless-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/aws-serverless-overview.png -------------------------------------------------------------------------------- /page/static/images/kubernetes-monitoring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/kubernetes-monitoring.png -------------------------------------------------------------------------------- /page/static/images/sso-attribute-mapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/sso-attribute-mapping.png -------------------------------------------------------------------------------- /page/public/images/API-keys-—-Elastic-Cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/API-keys-—-Elastic-Cloud.png -------------------------------------------------------------------------------- /page/static/images/API-keys-—-Elastic-Cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/API-keys-—-Elastic-Cloud.png -------------------------------------------------------------------------------- /page/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "themes/hugo-theme-learn"] 2 | path = themes/hugo-theme-learn 3 | url = https://github.com/matcornic/hugo-theme-learn.git 4 | -------------------------------------------------------------------------------- /page/public/images/add-kubernetes-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/add-kubernetes-integration.png -------------------------------------------------------------------------------- /page/public/images/elasticsearch-user-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/elasticsearch-user-settings.png -------------------------------------------------------------------------------- /page/static/images/add-kubernetes-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/add-kubernetes-integration.png -------------------------------------------------------------------------------- /page/static/images/elasticsearch-user-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/elasticsearch-user-settings.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/images/screenshot.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/partials/custom-comments.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /page/public/images/elasticsearch-user-settings-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/elasticsearch-user-settings-2.png -------------------------------------------------------------------------------- /page/static/images/elasticsearch-user-settings-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/elasticsearch-user-settings-2.png -------------------------------------------------------------------------------- /terraform/json_templates/default-policy.json: -------------------------------------------------------------------------------- 1 | { "name": "${policy_name}", "description": "Terraformed policy", "namespace": "default", "monitoring_enabled": [ ]} -------------------------------------------------------------------------------- /page/public/fonts/Novecentosanswide-Normal-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Novecentosanswide-Normal-webfont.eot -------------------------------------------------------------------------------- /page/public/fonts/Novecentosanswide-Normal-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Novecentosanswide-Normal-webfont.ttf -------------------------------------------------------------------------------- /page/public/fonts/Novecentosanswide-Normal-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Novecentosanswide-Normal-webfont.woff -------------------------------------------------------------------------------- /page/public/fonts/Novecentosanswide-Normal-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Novecentosanswide-Normal-webfont.woff2 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/partials/toc.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{ .TableOfContents }} 4 |
5 |
6 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/images/favicon.png -------------------------------------------------------------------------------- /page/layouts/partials/logo.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /page/public/fonts/Novecentosanswide-UltraLight-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Novecentosanswide-UltraLight-webfont.eot -------------------------------------------------------------------------------- /page/public/fonts/Novecentosanswide-UltraLight-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Novecentosanswide-UltraLight-webfont.ttf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/archetypes/default.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "{{ replace .Name "-" " " | title }}" 3 | date = {{ .Date }} 4 | weight = 5 5 | +++ 6 | 7 | Lorem Ipsum. -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Inconsolata.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Inconsolata.eot -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Inconsolata.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Inconsolata.ttf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Inconsolata.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Inconsolata.woff -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/images/gopher-404.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/images/gopher-404.jpg -------------------------------------------------------------------------------- /page/public/fonts/Novecentosanswide-UltraLight-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Novecentosanswide-UltraLight-webfont.woff -------------------------------------------------------------------------------- /page/public/fonts/Novecentosanswide-UltraLight-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/fonts/Novecentosanswide-UltraLight-webfont.woff2 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_200.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_200.eot -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_200.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_200.ttf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_200.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_200.woff -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_200.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_200.woff2 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_300.eot -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_300.ttf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_300.woff -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_300.woff2 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_500.eot -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_500.ttf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_500.woff -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Work_Sans_500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Work_Sans_500.woff2 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/test.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page test" 3 | description = "This is a page test" 4 | +++ 5 | 6 | This is a test demo child page -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/test.fr.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page test" 3 | description = "Ceci est une page test" 4 | +++ 5 | 6 | Ceci est une page de demo -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/static/images/showcase/tat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/static/images/showcase/tat.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/_index.fr.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 1" 3 | description = "Ceci est une page test" 4 | +++ 5 | 6 | Ceci est une page de demo -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-3/_index.fr.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 3" 3 | description = "Ceci est une page test" 4 | +++ 5 | 6 | Ceci est une page de demo -------------------------------------------------------------------------------- /page/public/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service.png -------------------------------------------------------------------------------- /page/static/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/_index.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 1" 3 | description = "This is a demo child page" 4 | +++ 5 | 6 | This is a demo child page -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.eot -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.ttf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/test3.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page test 3" 3 | description = "This is a page test" 4 | +++ 5 | 6 | This is a test 3 demo child page -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/test3.fr.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page test 3" 3 | description = "Ceci est une page test" 4 | +++ 5 | 6 | Ceci est une page de demo test 3 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.woff -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/static/fonts/monogramos-webfont.woff2 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/static/images/showcase/tshark_dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/static/images/showcase/tshark_dev.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.eot -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.ttf -------------------------------------------------------------------------------- /page/public/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step2.png -------------------------------------------------------------------------------- /page/static/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step2.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/i18n/images/i18n-menu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/cont/i18n/images/i18n-menu.gif -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.fr.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 1-1" 3 | description = "Ceci est une page test" 4 | +++ 5 | 6 | Ceci est une page de demo -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/shortcodes/notice.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 |
{{ .Inner }}
3 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.woff -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-Normal-webfont.woff2 -------------------------------------------------------------------------------- /page/public/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step3+4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/public/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step3+4.png -------------------------------------------------------------------------------- /page/static/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step3+4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/static/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step3+4.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/_index.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 1-1" 3 | description = "This is a demo child page" 4 | +++ 5 | 6 | This is a demo child page -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-4/_index.fr.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 4" 3 | description = "Ceci est une page test" 4 | hidden = true 5 | +++ 6 | 7 | Ceci est une page de demo -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/static/images/showcase/inteliver_docs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/static/images/showcase/inteliver_docs.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.eot -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.ttf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/requirements/images/magic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/basics/requirements/images/magic.gif -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-chapter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-chapter.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/pages-default.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/partials/custom-header.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/static/fonts/Novecentosanswide-UltraLight-webfont.woff2 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/_index.zh.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 基础 3 | weight: 5 4 | pre: "1. " 5 | chapter: true 6 | --- 7 | 8 | ### 章节 1 9 | 10 | # 基础 11 | 12 | 了解该 Hugo 主题的特点以及背后的核心概念。 13 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/installation/images/chapter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/basics/installation/images/chapter.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/frontmatter-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/cont/pages/images/frontmatter-icon.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-3/_index.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 3" 3 | description = "This is a demo child page" 4 | +++ 5 | 6 | This is a demo child page, not displayed in the menu -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/shortcodes/mermaid.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 |
{{ safeHTML .Inner }}
3 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/hugo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/hugo.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/hugo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/hugo.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 1-1-1" 3 | description = "This is a demo child page" 4 | +++ 5 | 6 | This is a demo child page -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/_index.fr.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 1-1-1" 3 | description = "Ceci est une page test" 4 | +++ 5 | 6 | Ceci est une page de demo -------------------------------------------------------------------------------- /python-app/restart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sudo pkill -f app1.py 4 | sudo pkill -f loadgen.py 5 | sudo python3 /home/ubuntu/aws-workshop/python-app/app1.py & 6 | sleep 1 7 | sudo python3 /home/ubuntu/aws-workshop/python-app/loadgen.py & -------------------------------------------------------------------------------- /misc/fixPerformanceIssue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sudo pkill -f app1.py 4 | sudo pkill -f loadgen.py 5 | sudo python3 /home/ubuntu/aws-workshop/python-app/app2.py & 6 | sleep 1 7 | sudo python3 /home/ubuntu/aws-workshop/python-app/loadgen.py & -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/red-variant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/red-variant.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.fr.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 1-1-1-1" 3 | description = "Ceci est une page test" 4 | +++ 5 | 6 | Ceci est une page de demo -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-4/_index.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 4" 3 | description = "This is a demo child page" 4 | hidden = true 5 | +++ 6 | 7 | This is a demo child page, not displayed in the menu -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/partials/tags.html: -------------------------------------------------------------------------------- 1 | {{ if .Params.tags }} 2 |
3 | {{range .Params.tags}} 4 | {{ . }} 5 | {{end}} 6 |
7 | {{end}} -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/configuration/images/home_button_defaults.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/basics/configuration/images/home_button_defaults.jpg -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/blue-variant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/blue-variant.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/green-variant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/basics/style-customization/images/green-variant.png -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/BachGavotteShort.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/BachGavotteShort.mp3 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/BachGavotteShort.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/BachGavotteShort.mp3 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 1-1-1-1" 3 | description = "This is a demo child page" 4 | +++ 5 | 6 | This is a demo child page -------------------------------------------------------------------------------- /terraform/json_templates/services-index.json: -------------------------------------------------------------------------------- 1 | {"mappings":{"properties":{"connected_to":{"type":"keyword"},"connected_via":{"type":"keyword"},"process":{"type":"keyword"},"service":{"properties":{"name":{"type":"keyword"}}},"type":{"type":"keyword"}}}} 2 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/partials/menu-footer.html: -------------------------------------------------------------------------------- 1 |

Built with from Grav and Hugo

2 | -------------------------------------------------------------------------------- /lambda-generator/requirements.txt: -------------------------------------------------------------------------------- 1 | certifi==2022.12.7 2 | elastic-transport==8.4.0 3 | elasticsearch==8.5.3 4 | numpy==1.24.0 5 | pandas==1.5.2 6 | python-dateutil==2.8.2 7 | python-dotenv==0.21.0 8 | pytz==2022.7 9 | six==1.16.0 10 | urllib3==1.26.13 11 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/partials/custom-footer.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/adivorciarsetoca00cape.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/adivorciarsetoca00cape.pdf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/adivorciarsetoca00cape.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/adivorciarsetoca00cape.pdf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 1-1-1-1-1" 3 | description = "This is a demo child page" 4 | +++ 5 | 6 | This is a demo child page -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/children-1-1-1-1-1/_index.fr.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 1-1-1-1-1" 3 | description = "Ceci est une page test" 4 | +++ 5 | 6 | Ceci est une page de demo -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/partials/meta.html: -------------------------------------------------------------------------------- 1 | 2 | {{ with .Site.Params.author }}{{ end }} 3 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/shortcodes/siteparam.html: -------------------------------------------------------------------------------- 1 | {{- $paramName := (.Get 0) -}} 2 | {{- $siteParams := .Site.Params -}} 3 | {{- with $paramName -}} 4 | {{- with $siteParams -}} 5 | {{- index . (lower $paramName) -}} 6 | {{- end -}} 7 | {{- end -}} -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/archetypes/chapter.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "{{ replace .Name "-" " " | title }}" 3 | date = {{ .Date }} 4 | weight = 5 5 | chapter = true 6 | pre = "X. " 7 | +++ 8 | 9 | ### Chapter X 10 | 11 | # Some Chapter title 12 | 13 | Lorem Ipsum. -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/Carroll_AliceAuPaysDesMerveilles.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/Carroll_AliceAuPaysDesMerveilles.pdf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/Carroll_AliceAuPaysDesMerveilles.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/Carroll_AliceAuPaysDesMerveilles.pdf -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/_index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Basics 3 | weight: 5 4 | pre: "1. " 5 | chapter: true 6 | --- 7 | 8 | ### Chapter 1 9 | 10 | # Basics 11 | 12 | Discover what this Hugo theme is all about and the core-concepts behind it. 13 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/_index.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Démarrage 3 | weight: 5 4 | pre: "1. " 5 | chapter: true 6 | --- 7 | 8 | ### Chapitre 1 9 | 10 | # Démarrage 11 | 12 | Découvrez comment utiliser ce thème Hugo et apprenez-en les concepts 13 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/_index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Content 3 | weight: 10 4 | chapter: true 5 | pre: "2. " 6 | --- 7 | 8 | ### Chapter 2 9 | 10 | # Content 11 | 12 | Find out how to create and organize your content quickly and intuitively. 13 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/_index.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Contenu 3 | weight: 10 4 | chapter: true 5 | pre: "2. " 6 | --- 7 | 8 | ### Chapitre 2 9 | 10 | # Contenu 11 | 12 | Découvrez comment créer et organiser votre contenu facilement et intuitivement. 13 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/movieselectricsheep-flock-244-32500-2.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.files/movieselectricsheep-flock-244-32500-2.mp4 -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/movieselectricsheep-flock-244-32500-2.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elastic/aws-workshop/main/page/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.files/movieselectricsheep-flock-244-32500-2.mp4 -------------------------------------------------------------------------------- /aws-lambda/lambda-application/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sample-app-lambda", 3 | "version": "1.0.0", 4 | "description": "Sample app for demonstrating using Elastic APM with AWS lambda", 5 | "license": "Apache License 2.0", 6 | "dependencies": { 7 | "request": "2.88.2" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /page/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /page/layouts/partials/menu-footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Privacy | Site Terms | CC BY-SA 4.0 6 | 7 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = 2 9 | indent_style = space 10 | trim_trailing_whitespace = true 11 | 12 | [*.js] 13 | insert_final_newline = true 14 | 15 | [*.md] 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /terraform/json_templates/lambda-metrics-ingest-pipeline.json: -------------------------------------------------------------------------------- 1 | { 2 | "processors": [ 3 | { 4 | "set": { 5 | "field": "service.name", 6 | "ignore_empty_value": true, 7 | "ignore_failure": true, 8 | "copy_from": "aws.dimensions.FunctionName" 9 | } 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /page/LICENSE-SUMMARY: -------------------------------------------------------------------------------- 1 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | 3 | The documentation is made available under the Creative Commons Attribution-ShareAlike 4.0 International License. See the LICENSE file. 4 | 5 | The sample code within this documentation is made available under the MIT-0 license. See the LICENSE-SAMPLECODE file. 6 | -------------------------------------------------------------------------------- /misc/dependencies-input.csv: -------------------------------------------------------------------------------- 1 | service.name,type,connected_to,connected_via,process 2 | python-app,1) Python,,BASH,apm services 3 | api gateway,2) Service,python-app,REST,apm services 4 | sample-app-dev-consumer,3) Lambda,api gateway,TRIGGER,apm services 5 | sample-app-dev-producer,3) Lambda,api gateway,TRIGGER,apm services 6 | dynamodb,2) Service,python-app,QUERY,apm services 7 | -------------------------------------------------------------------------------- /terraform/json_templates/custom-logs-ingest-pipeline.json: -------------------------------------------------------------------------------- 1 | { 2 | "processors": [ 3 | { 4 | "set": { 5 | "field": "event.original", 6 | "copy_from": "message" 7 | } 8 | }, 9 | { 10 | "json": { 11 | "field": "message", 12 | "add_to_root": true, 13 | "ignore_failure": true 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | 3 | {{ .Content }} 4 | 5 | 11 | 12 | {{ partial "footer.html" . }} 13 | -------------------------------------------------------------------------------- /page/content/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Elastic on AWS Workshop" 3 | chapter: true 4 | weight: 1 5 | --- 6 | 7 | # Capture the bug using Elasticsearch Service on AWS 8 | Elastic helps you to overcome data silos and transform data into actionable insights. By using the approach described in the workshop, you will be able to run more reliable apps and detect issues as early as possible. By leveraging the Elastic serverless forwarder, you save time for the setup and resources. 9 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/zh-cn.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "搜索..." 3 | 4 | [Clear-History] 5 | other = "清理历史记录" 6 | 7 | [Attachments-label] 8 | other = "附件" 9 | 10 | [title-404] 11 | other = "错误" 12 | 13 | [message-404] 14 | other = "哎哟。 看起来这个页面不存在 ¯\\_(ツ)_/¯。" 15 | 16 | [Go-to-homepage] 17 | other = "转到主页" 18 | 19 | [Edit-this-page] 20 | other = "编辑当前页" 21 | 22 | [Shortcuts-Title] 23 | other = "更多" 24 | 25 | [Expand-title] 26 | other = "展开" 27 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/ja.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "検索..." 3 | 4 | [Clear-History] 5 | other = "履歴削除" 6 | 7 | [Attachments-label] 8 | other = "添付" 9 | 10 | [title-404] 11 | other = "エラー" 12 | 13 | [message-404] 14 | other = "おっと。ページが見当たりません。 ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "ホームページへ行く" 18 | 19 | [Edit-this-page] 20 | other = "このページを編集" 21 | 22 | [Shortcuts-Title] 23 | other = "更に" 24 | 25 | [Expand-title] 26 | other = "開く..." 27 | -------------------------------------------------------------------------------- /page/content/01_Getting started/page-1-elastic-key.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Get credentials from Elastic" 3 | weight: 22 4 | --- 5 | 6 | In order to get credentials from the Elastic environment you need to create an API key within the Elastic Cloud Portal. The easiest way to do this is to navigate to [ela.st/cloud-key](https://ela.st/cloud-key). From there, just create the API and save it for later use in your CloudFormation script. 7 | 8 | ![AWS Marketplace](/images/API-keys-—-Elastic-Cloud.png) 9 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/requirements/_index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Requirements 3 | weight: 10 4 | disableToc: true 5 | --- 6 | 7 | Thanks to the simplicity of Hugo, this page is as empty as this theme needs requirements. 8 | 9 | Just download latest version of [Hugo binary (> 0.25)](https://gohugo.io/getting-started/installing/) for your OS (Windows, Linux, Mac) : it's that simple. 10 | 11 | ![Magic](/en/basics/requirements/images/magic.gif?classes=shadow) 12 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/showcase.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Showcase 3 | disableToc: true 4 | --- 5 | 6 | #### [TAT](https://ovh.github.io/tat/overview/) by OVH 7 | ![TAT image](/images/showcase/tat.png?width=50pc) 8 | 9 | #### [Tshark.dev](https://tshark.dev) by Ross Jacobs 10 | ![Tshark.dev image](/images/showcase/tshark_dev.png?width=50pc) 11 | 12 | #### [inteliver](https://docs.inteliver.com) by Amir Lavasani 13 | ![docs.inteliver.com image](/images/showcase/inteliver_docs.png?width=50pc) -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/index.json: -------------------------------------------------------------------------------- 1 | [{{ range $index, $page := .Site.Pages }} 2 | {{- if ne $page.Type "json" -}} 3 | {{- if and $index (gt $index 0) -}},{{- end }} 4 | { 5 | "uri": "{{ $page.Permalink }}", 6 | "title": "{{ htmlEscape $page.Title}}", 7 | "tags": [{{ range $tindex, $tag := $page.Params.tags }}{{ if $tindex }}, {{ end }}"{{ $tag| htmlEscape }}"{{ end }}], 8 | "description": "{{ htmlEscape .Description}}", 9 | "content": {{$page.Plain | jsonify}} 10 | } 11 | {{- end -}} 12 | {{- end -}}] -------------------------------------------------------------------------------- /page/.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.*~ 3 | project.lock.json 4 | .DS_Store 5 | *.pyc 6 | 7 | # User-specific files 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | build/ 21 | bld/ 22 | [Bb]in/ 23 | [Oo]bj/ 24 | msbuild.log 25 | msbuild.err 26 | msbuild.wrn 27 | 28 | # Visual Studio 29 | .vs/ 30 | .vscode/ 31 | 32 | # JetBrains IDEs 33 | .idea 34 | 35 | # Node Modules 36 | node_modules/ 37 | -------------------------------------------------------------------------------- /page/public/images/clippy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/layouts/partials/custom-footer.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/wercker.yml: -------------------------------------------------------------------------------- 1 | box: golang 2 | build: 3 | steps: 4 | # Gets the dependencies 5 | - script: 6 | name: get hugo 7 | code: | 8 | git clone https://github.com/gohugoio/hugo.git && cd hugo && go install 9 | # Sets the go workspace and places you package 10 | # at the right place in the workspace tree 11 | - setup-go-workspace 12 | # Build the project 13 | - script: 14 | name: build site 15 | code: | 16 | cd exampleSite && hugo -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/showcase.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Vitrine 3 | disableToc: true 4 | slug: vitrine 5 | --- 6 | 7 | #### [TAT](https://ovh.github.io/tat/overview/) par OVH 8 | ![TAT image](/images/showcase/tat.png?width=50pc) 9 | 10 | #### [Tshark.dev](https://tshark.dev) par Ross Jacobs 11 | ![Tshark.dev image](/images/showcase/tshark_dev.png?width=50pc) 12 | 13 | #### [inteliver](https://docs.inteliver.com) by Amir Lavasani 14 | ![docs.inteliver.com image](/images/showcase/inteliver_docs.png?width=50pc) -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/basics/requirements/_index.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Prérequis 3 | weight: 10 4 | disableToc: true 5 | --- 6 | 7 | Grâce à la simplicité d'Hugo, cette page est vide car il n'y a quasi pas de prérequis pour utiliser le thème. 8 | 9 | Téléchargez la dernière version du [binaire Hugo (> 0.25)](https://gohugo.io/getting-started/installing/) pour votre Système d'exploitation (Windows, Linux, Mac) : et c'est tout ! 10 | 11 | ![Magic](/en/basics/requirements/images/magic.gif?classes=shadow) 12 | -------------------------------------------------------------------------------- /terraform/lib/elastic_api/es_api_key.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "ELASTIC_ENDPOINT=\(.elastic_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) API_KEY_BODY=\(.api_key_body)"')" 4 | 5 | output=$(curl -s -X POST -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 6 | -H 'Content-Type:application/json' -d "$API_KEY_BODY" \ 7 | ${ELASTIC_ENDPOINT}/_security/api_key | jq '.') 8 | 9 | ENCODED=$( echo $output | jq -r '.encoded' ) 10 | jq -n --arg encoded "$ENCODED" '{"encoded" : $encoded}' 11 | -------------------------------------------------------------------------------- /terraform/terraform/main.tf: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------- 2 | # Terraform provider configuration 3 | # ------------------------------------------------------------- 4 | 5 | terraform { 6 | required_version = ">= 1.0.2" 7 | 8 | required_providers { 9 | ec = { 10 | source = "elastic/ec" 11 | version = "= 0.5.0" 12 | } 13 | aws = { 14 | source = "hashicorp/aws" 15 | version = "~> 4.0" 16 | } 17 | } 18 | } 19 | 20 | provider "ec" { 21 | } 22 | 23 | 24 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/ar.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "...البحث" 3 | 4 | [Clear-History] 5 | other = "مسح السجل" 6 | 7 | [Attachments-label] 8 | other = "مرفقات" 9 | 10 | [title-404] 11 | other = "خطأ" 12 | 13 | [message-404] 14 | other = ".¯\\_(ツ)_/¯أوبس. يبدو أن هذه الصفحة غير موجودة" 15 | 16 | [Go-to-homepage] 17 | other = "الذهاب إلى الصفحة الرئيسية" 18 | 19 | [Edit-this-page] 20 | other = "تعديل هذه الصفحة" 21 | 22 | [Shortcuts-Title] 23 | other = "المزيد" 24 | 25 | [Expand-title] 26 | other = "...قم بتوسيع" -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/en.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Search..." 3 | 4 | [Clear-History] 5 | other = "Clear History" 6 | 7 | [Attachments-label] 8 | other = "Attachments" 9 | 10 | [title-404] 11 | other = "Error" 12 | 13 | [message-404] 14 | other = "Woops. Looks like this page doesn't exist ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Go to homepage" 18 | 19 | [Edit-this-page] 20 | other = "Edit this page" 21 | 22 | [Shortcuts-Title] 23 | other = "More" 24 | 25 | [Expand-title] 26 | other = "Expand me..." -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/es.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Buscar..." 3 | 4 | [Clear-History] 5 | other = "Borrar Historial" 6 | 7 | [Attachments-label] 8 | other = "Adjuntos" 9 | 10 | [title-404] 11 | other = "Error" 12 | 13 | [message-404] 14 | other = "Ups. Parece que la página no existe ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Ir al inicio" 18 | 19 | [Edit-this-page] 20 | other = "Editar esta página" 21 | 22 | [Shortcuts-Title] 23 | other = "Más" 24 | 25 | [Expand-title] 26 | other = "Expandir..." 27 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/pt.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Procurar..." 3 | 4 | [Clear-History] 5 | other = "Limpar Histórico" 6 | 7 | [Attachments-label] 8 | other = "Anexos" 9 | 10 | [title-404] 11 | other = "Erro" 12 | 13 | [message-404] 14 | other = "Ops. Parece que a página não existe ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Ir para o início" 18 | 19 | [Edit-this-page] 20 | other = "Editar esta página" 21 | 22 | [Shortcuts-Title] 23 | other = "Mais" 24 | 25 | [Expand-title] 26 | other = "Expandir..." 27 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/tr.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Ara..." 3 | 4 | [Clear-History] 5 | other = "Geçmişi Temizle" 6 | 7 | [Attachments-label] 8 | other = "Ekler" 9 | 10 | [title-404] 11 | other = "Hata" 12 | 13 | [message-404] 14 | other = "Uups. Görünüşe göre böyle bir sayfa yok ¯\\_(ツ)_/¯" 15 | 16 | [Go-to-homepage] 17 | other = "Anasayfaya dön" 18 | 19 | [Edit-this-page] 20 | other = "Sayfayı düzenle" 21 | 22 | [Shortcuts-Title] 23 | other = "Dahası Var" 24 | 25 | [Expand-title] 26 | other = "Genişlet..." 27 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/shortcodes/ref.html: -------------------------------------------------------------------------------- 1 | {{- if in (.Get 0) "/_index.md" -}} 2 | {{- $paths := (split (.Get 0) "_index.md") -}} 3 | {{- $pagepath := index $paths 0 -}} 4 | {{- $anchor := index $paths 1 -}} 5 | {{- with .Site.GetPage "section" (trim $pagepath "/") -}} 6 | {{- ( printf "%s%s" $pagepath $anchor ) | relLangURL -}} 7 | {{- end -}} 8 | {{- else -}} 9 | {{- with .Site.GetPage "section" (.Get 0) }} 10 | {{- .RelPermalink -}} 11 | {{- else -}} 12 | {{- .Get 0 | relref .Page -}} 13 | {{- end -}} 14 | {{- end -}} -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/images/clippy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /terraform/json_templates/apm-traces-ingest-pipeline.json: -------------------------------------------------------------------------------- 1 | { 2 | "processors": [ 3 | { 4 | "set": { 5 | "field": "last_pipeline", 6 | "value": "traces-apm@custom" 7 | } 8 | }, 9 | { 10 | "set": { 11 | "field": "labels.gotcha", 12 | "value": "Congrats, you've found the issue. Execute /misc/fixPerformanceIssue.sh to fix it!", 13 | "if": "ctx.labels?.enrichment == 'true'", 14 | "ignore_failure": true 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /page/public/tags/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Tags on Elastic Observability on AWS Workshop 5 | /tags.html 6 | Recent content in Tags on Elastic Observability on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | 11 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/shortcodes/relref.html: -------------------------------------------------------------------------------- 1 | {{- if in (.Get 0) "/_index.md" -}} 2 | {{- $paths := (split (.Get 0) "_index.md") -}} 3 | {{- $pagepath := index $paths 0 -}} 4 | {{- $anchor := index $paths 1 -}} 5 | {{- with .Site.GetPage "section" (trim $pagepath "/") -}} 6 | {{- ( printf "%s%s" $pagepath $anchor ) | relLangURL -}} 7 | {{- end -}} 8 | {{- else -}} 9 | {{- with .Site.GetPage "section" (.Get 0) }} 10 | {{- .RelPermalink -}} 11 | {{- else -}} 12 | {{- .Get 0 | relref .Page -}} 13 | {{- end -}} 14 | {{- end -}} -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/hi.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "खोजे..." 3 | 4 | [Clear-History] 5 | other = "इतिहास मिटाएँ" 6 | 7 | [Attachments-label] 8 | other = "संलग्नंक (अटैचमेंट)" 9 | 10 | [title-404] 11 | other = "त्रुटि" 12 | 13 | [message-404] 14 | other = "यह पृष्ठ अभि अनुपलब्ध है!" 15 | 16 | [Go-to-homepage] 17 | other = "मुख्य पृष्ठ पर जाऐ" 18 | 19 | [Edit-this-page] 20 | other = "यह पृष्ठ संपादित करें" 21 | 22 | [Shortcuts-Title] 23 | other = "अधिक सामग्री दिखाएं" 24 | 25 | [Expand-title] 26 | other = "विस्तार करे..." 27 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/ru.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Поиск..." 3 | 4 | [Clear-History] 5 | other = "Очистить историю" 6 | 7 | [Attachments-label] 8 | other = "Присоединенные файлы" 9 | 10 | [title-404] 11 | other = "Ошибка" 12 | 13 | [message-404] 14 | other = "Упс. Выглядит будто такой страницы нет ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Перейти на главную" 18 | 19 | [Edit-this-page] 20 | other = "Редактировать" 21 | 22 | [Shortcuts-Title] 23 | other = "Еще" 24 | 25 | [Expand-title] 26 | other = "Развернуть..." -------------------------------------------------------------------------------- /page/public/03_conclusion/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Conclusion on Elastic on AWS Workshop 5 | /03_conclusion.html 6 | Recent content in Conclusion on Elastic on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | 11 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/de.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Suchen..." 3 | 4 | [Clear-History] 5 | other = "Verlauf löschen" 6 | 7 | [Attachments-label] 8 | other = "Anhänge" 9 | 10 | [title-404] 11 | other = "Fehler" 12 | 13 | [message-404] 14 | other = "Huch. Diese Seite scheint nicht zu existieren ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Gehe zur Homepage" 18 | 19 | [Edit-this-page] 20 | other = "Bearbeite diese Seite" 21 | 22 | [Shortcuts-Title] 23 | other = "Mehr" 24 | 25 | [Expand-title] 26 | other = "Erweitere mich..." -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/id.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Telusuri..." 3 | 4 | [Clear-History] 5 | other = "Bersihkan Riwayat" 6 | 7 | [Attachments-label] 8 | other = "Lampiran" 9 | 10 | [title-404] 11 | other = "Kesalahan" 12 | 13 | [message-404] 14 | other = "Oops. Sepertinya halaman ini tidak ada ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Ke halaman depan" 18 | 19 | [Edit-this-page] 20 | other = "Edit halaman ini" 21 | 22 | [Shortcuts-Title] 23 | other = "Lainnya" 24 | 25 | [Expand-title] 26 | other = "Bentangkan..." 27 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/nl.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Zoeken..." 3 | 4 | [Clear-History] 5 | other = "Wis geschiedenis" 6 | 7 | [Attachments-label] 8 | other = "Bijlagen" 9 | 10 | [title-404] 11 | other = "Error" 12 | 13 | [message-404] 14 | other = "Blijkbaar bestaat deze pagina niet ¯\\_(ツ)_/¯." 15 | 16 | [Go-to-homepage] 17 | other = "Naar startpagina" 18 | 19 | [Edit-this-page] 20 | other = "Deze pagina bewerken" 21 | 22 | [Shortcuts-Title] 23 | other = "Snelkoppelingen" 24 | 25 | [Expand-title] 26 | other = "Lees meer..." 27 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/shortcodes/button.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 | 3 | {{ $icon := .Get "icon" }} 4 | {{ $iconposition := .Get "icon-position" }} 5 | {{ if ($icon) }} 6 | {{ if or (not ($iconposition)) (eq $iconposition "left") }} 7 | 8 | {{ end }} 9 | {{ end }} 10 | {{ .Inner }} 11 | {{ if and ($icon) (eq $iconposition "right")}} 12 | 13 | {{ end }} 14 | 15 | -------------------------------------------------------------------------------- /page/public/02_observability/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Observability on Elastic on AWS Workshop 5 | /02_observability.html 6 | Recent content in Observability on Elastic on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | 11 | -------------------------------------------------------------------------------- /page/public/categories/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Categories on Elastic Observability on AWS Workshop 5 | /categories.html 6 | Recent content in Categories on Elastic Observability on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | 11 | -------------------------------------------------------------------------------- /page/public/06_task4/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Anomaly Detection on Elastic Observability on AWS Workshop 5 | /06_task4.html 6 | Recent content in Anomaly Detection on Elastic Observability on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | 11 | -------------------------------------------------------------------------------- /page/public/08_conclusion/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Conclusion on Elastic Observability on AWS Workshop 5 | /08_conclusion.html 6 | Recent content in Conclusion on Elastic Observability on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | 11 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/i18n/fr.toml: -------------------------------------------------------------------------------- 1 | [Search-placeholder] 2 | other = "Rechercher..." 3 | 4 | [Clear-History] 5 | other = "Supprimer l'historique" 6 | 7 | [Attachments-label] 8 | other = "Pièces jointes" 9 | 10 | [title-404] 11 | other = "Erreur" 12 | 13 | [message-404] 14 | other = "Oups. On dirait que cette page n'existe pas ¯\\_(ツ)_/¯" 15 | 16 | [Go-to-homepage] 17 | other = "Vers la page d'accueil" 18 | 19 | [Edit-this-page] 20 | other = "Modifier la page" 21 | 22 | [Shortcuts-Title] 23 | other = "Aller plus loin" 24 | 25 | [Expand-title] 26 | other = "Déroulez-moi..." -------------------------------------------------------------------------------- /page/public/05_task3/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | AIOps Log Spike analysis on Elastic Observability on AWS Workshop 5 | /05_task3.html 6 | Recent content in AIOps Log Spike analysis on Elastic Observability on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | 11 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/.grenrc.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dataSource: "prs" 3 | prefix: "v" 4 | onlyMilestones: false 5 | changelogFilename: "CHANGELOG.md" 6 | includeMessages: "all" 7 | ignoreIssuesWith: 8 | - "support" 9 | ignoreLabels: 10 | - "duplicate" 11 | - "invalid" 12 | - "wontfix" 13 | groupBy: 14 | New features: 15 | - "feature" 16 | Bug Fixes: 17 | - "bug" 18 | Enhancements: 19 | - "enhancement" 20 | Internationalisation: 21 | - "i18n" 22 | Theme Meta: 23 | - "meta" 24 | Uncategorised: 25 | - "closed" 26 | -------------------------------------------------------------------------------- /page/public/04_task2/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Analyze performance issues on Elastic Observability on AWS Workshop 5 | /04_task2.html 6 | Recent content in Analyze performance issues on Elastic Observability on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | 11 | -------------------------------------------------------------------------------- /terraform/lib/elastic_api/kb_load_detection_rules.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "ELASTIC_HTTP_METHOD=\(.elastic_http_method) ELASTIC_ENDPOINT=\(.kibana_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) SO_FILE=\(.so_file)"')" 4 | 5 | # Define mapping 6 | output=$(curl -s -X PUT -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 7 | -H "kbn-xsrf: true" \ 8 | ${ELASTIC_ENDPOINT}/api/detection_engine/rules/prepackaged | jq '.') 9 | 10 | # Return response 11 | RULES=$( echo $output | jq -r '.rules_installed' ) 12 | 13 | jq -n --arg rules "$RULES" '{"rules" : $rules}' -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/_index.en.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 2" 3 | description = "" 4 | +++ 5 | 6 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 7 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, 8 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo 9 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse 10 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non 11 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-2/_index.fr.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "page 2" 3 | description = "" 4 | +++ 5 | 6 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 7 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, 8 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo 9 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse 10 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non 11 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum. -------------------------------------------------------------------------------- /terraform/lib/elastic_api/es_start_transform.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "TRANSFORM_NAME=\(.transform_name) ELASTIC_ENDPOINT=\(.elastic_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) ELASTIC_JSON_BODY=\(.elastic_json_body)"')" 4 | 5 | # Define mapping 6 | output=$(curl -s -X POST -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 7 | ${ELASTIC_ENDPOINT}/_transform/${TRANSFORM_NAME}/_start | jq '.') 8 | 9 | # Return response 10 | ACKNOWLEDGED=$( echo $output | jq -r '.acknowledged' ) 11 | jq -n --arg acknowledged "$ACKNOWLEDGED" '{"acknowledged" : $acknowledged}' 12 | 13 | 14 | -------------------------------------------------------------------------------- /page/public/03_task1/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Find issues in applications running on AWS on Elastic Observability on AWS Workshop 5 | /03_task1.html 6 | Recent content in Find issues in applications running on AWS on Elastic Observability on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | 11 | -------------------------------------------------------------------------------- /terraform/lib/elastic_api/es_bulk.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "ELASTIC_ENDPOINT=\(.elastic_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) ELASTIC_JSON_BODY=\(.elastic_json_body) ELASTIC_INDEX_NAME=\(.elastic_index_name)"')" 4 | 5 | output=$(curl -s -X POST -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 6 | -H 'Content-Type:application/json' -d "${ELASTIC_JSON_BODY}" \ 7 | ${ELASTIC_ENDPOINT}/${ELASTIC_INDEX_NAME}/_bulk | jq '.') 8 | 9 | ITEMS=$( echo $output | jq -r '.items' ) 10 | ERROR=$( echo $output | jq -r '.error' ) 11 | jq -n --arg items "$ITEMS" --arg error "$ERROR" '{"items" : $items, "error" : $error}' 12 | -------------------------------------------------------------------------------- /terraform/lib/elastic_api/es_create_transform.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "TRANSFORM_NAME=\(.transform_name) ELASTIC_ENDPOINT=\(.elastic_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) ELASTIC_JSON_BODY=\(.elastic_json_body)"')" 4 | 5 | # Define mapping 6 | output=$(curl -s -X PUT -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 7 | -H 'Content-Type:application/json' -d "$ELASTIC_JSON_BODY" \ 8 | ${ELASTIC_ENDPOINT}/_transform/${TRANSFORM_NAME} | jq '.') 9 | 10 | # Return response 11 | ACKNOWLEDGED=$( echo $output | jq -r '.acknowledged' ) 12 | jq -n --arg acknowledged "$ACKNOWLEDGED" '{"acknowledged" : $acknowledged}' 13 | 14 | 15 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | 3 | {{ if eq .Kind "section" }} 4 | {{ .Content }} 5 | {{end}} 6 | 7 | {{ if or (eq .Kind "taxonomy") (eq .Kind "term") }} 8 | 13 | {{end}} 14 | 15 | 21 | 22 | {{ partial "footer.html" . }} -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "exampleSite/public" 3 | command = "hugo -s exampleSite" 4 | 5 | [build.environment] 6 | HUGO_THEME = "repo" 7 | HUGO_THEMESDIR = "/opt/build" 8 | HUGO_VERSION = "0.72.0" 9 | 10 | [context.production.environment] 11 | HUGO_BASEURL = "https://learn.netlify.app/" 12 | 13 | [context.deploy-preview] 14 | command = "hugo -s exampleSite -b $DEPLOY_PRIME_URL" 15 | 16 | [context.deploy-preview.environment] 17 | HUGO_ENABLEGITINFO = "true" 18 | 19 | [context.branch-deplpy] 20 | command = "hugo -s exampleSite -b $DEPLOY_PRIME_URL" 21 | 22 | [context.branch-deploy.environment] 23 | HUGO_ENABLEGITINFO = "true" 24 | -------------------------------------------------------------------------------- /terraform/lib/elastic_api/kb_enable_detection_rules.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "ELASTIC_HTTP_METHOD=\(.elastic_http_method) ELASTIC_ENDPOINT=\(.kibana_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) ELASTIC_JSON_BODY=\(.elastic_json_body)"')" 4 | 5 | # Define mapping 6 | output=$(curl -s -X POST -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 7 | -H "kbn-xsrf: true" -H 'Content-Type:application/json' -d "$ELASTIC_JSON_BODY" \ 8 | ${ELASTIC_ENDPOINT}/api/detection_engine/rules/_bulk_action | jq '.') 9 | 10 | # Return response 11 | SUCCESS=$( echo $output | jq -r '.success' ) 12 | 13 | jq -n --arg success "$SUCCESS" '{"success" : $success}' -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/siteparam.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Site param 3 | description : "Get value of site params variables in your page." 4 | --- 5 | 6 | `siteparam` shortcode is used to help you print values of site params. 7 | 8 | For instance, in this current site, the `editURL` variable is used in `config.toml` 9 | 10 | ```toml 11 | [params] 12 | editURL = "https://github.com/matcornic/hugo-theme-learn/edit/master/exampleSite/content/" 13 | ``` 14 | 15 | Use the `siteparam` shortcode to display its value. 16 | 17 | ``` 18 | `editURL` Value : {{%/* siteparam "editURL" */%}} 19 | ``` 20 | 21 | is displayed as 22 | 23 | `editURL` Value : {{% siteparam "editURL" %}} -------------------------------------------------------------------------------- /terraform/lib/elastic_api/es_create_ilm_policy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "ELASTIC_HTTP_METHOD=\(.elastic_http_method) ELASTIC_ENDPOINT=\(.elastic_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) ELASTIC_JSON_BODY=\(.elastic_json_body)"')" 4 | 5 | # Define mapping 6 | output=$(curl -s -X ${ELASTIC_HTTP_METHOD} -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 7 | -H 'Content-Type:application/json' -d "$ELASTIC_JSON_BODY" \ 8 | ${ELASTIC_ENDPOINT}/_ilm/policy/patent_search_rollover_policy | jq '.') 9 | 10 | # Return response 11 | ACKNOWLEDGED=$( echo $output | jq -r '.acknowledged' ) 12 | jq -n --arg acknowledged "$ACKNOWLEDGED" '{"acknowledged" : $acknowledged}' 13 | -------------------------------------------------------------------------------- /terraform/json_templates/python-integration.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": { 3 | "name": "log", 4 | "version": "1.1.0", 5 | "experimental_data_stream_features": [] 6 | }, 7 | "name": "python-log", 8 | "namespace": "default", 9 | "description": "", 10 | "policy_id": "${policy_id}", 11 | "inputs": { 12 | "logs-logfile": { 13 | "enabled": true, 14 | "streams": { 15 | "log.log": { 16 | "enabled": true, 17 | "vars": { 18 | "paths": [ 19 | "/tmp/service1.log" 20 | ], 21 | "data_stream.dataset": "python", 22 | "custom": "", 23 | "tags": [] 24 | } 25 | } 26 | } 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /terraform/terraform/logs_elb.tf: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------- 2 | # Event trigger 3 | # ------------------------------------------------------------- 4 | 5 | resource "aws_sqs_queue" "elb-events" { 6 | name = "s3-elb-event-notification-queue" 7 | visibility_timeout_seconds = 900 8 | policy = <3. " 5 | weight: 15 6 | --- 7 | 8 | Hugo uses Markdown for its simple content format. However, there are a lot of things that Markdown doesn’t support well. You could use pure HTML to expand possibilities. 9 | 10 | But this happens to be a bad idea. Everyone uses Markdown because it's pure and simple to read even non-rendered. You should avoid HTML to keep it as simple as possible. 11 | 12 | To avoid this limitations, Hugo created [shortcodes](https://gohugo.io/extras/shortcodes/). A shortcode is a simple snippet inside a page. 13 | 14 | **Hugo-theme-learn** provides multiple shortcodes on top of existing ones. 15 | 16 | {{%children style="h2" description="true" %}} 17 | -------------------------------------------------------------------------------- /page/content/08_Conclusion/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Conclusion" 3 | chapter: false 4 | weight: 90 5 | pre: "3. " 6 | --- 7 | 8 | After finishing the workshop, you've learned how to work with a pre-installed Elastic Cluster within the sample AWS application. You've had a look into Logs, Metrics, and APM data which are just three parts of Elastic Observability. Elastic Observability has much more to offer. 9 | 10 | If you would like to continue your journey with Elastic by adding data from your own environments, the best next step is to run our [terraform getting started scripts](https://ela.st/terraform). It works mostly the same as the workshop environment, but simply with your own data. 11 | 12 | If you would like to learn more about Elastic Observability for AWS in general, please continue reading the next chapter. 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Repo to run the aws-workshop 2 | 3 | This shows how this is expected to work. You can find the guide [here](https://elastic.awsworkshop.io/). 4 | ![image](https://user-images.githubusercontent.com/35069463/219047402-55365cd1-5ed2-45be-acde-07c8214ab528.png) 5 | 6 | ### Getting started 7 | 8 | If you like to start it go to Cloud Formation in AWS and upload the cloudformation template within the terraform folder. 9 | The rest should work. Its done, when the Elastic Cluster, of the Elastic Cloud account that provided the API key is fully working. 10 | 11 | ### Clean up resources 12 | 13 | As you can see in the picture this process is creating quite a lot of different resources. In order to clean up the AWS environment you can find a cleanup script in the misc folder. Just enter the region you like to clean up and run. 14 | -------------------------------------------------------------------------------- /terraform/json_templates/cloudwatch-ingest-pipeline.json: -------------------------------------------------------------------------------- 1 | { 2 | "processors": [ 3 | { 4 | "set": { 5 | "field": "event.dataset", 6 | "value": "aws.cloudwatch_logs" 7 | } 8 | }, 9 | { 10 | "json": { 11 | "field": "message", 12 | "target_field": "parsed" 13 | } 14 | }, 15 | { 16 | "set": { 17 | "field": "log.level", 18 | "ignore_empty_value": true, 19 | "ignore_failure": true, 20 | "copy_from": "parsed.log.level" 21 | } 22 | }, 23 | { 24 | "set": { 25 | "field": "message", 26 | "ignore_empty_value": true, 27 | "ignore_failure": true, 28 | "copy_from": "parsed.message" 29 | } 30 | } 31 | ], 32 | "on_failure": [ 33 | { 34 | "drop": {} 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/shortcodes/expand.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 |
3 |
4 | 5 | 6 | {{$expandMessage := T "Expand-title"}} 7 | {{ if .IsNamedParams }} 8 | {{.Get "default" | default $expandMessage}} 9 | {{else}} 10 | {{.Get 0 | default $expandMessage}} 11 | {{end}} 12 | 13 |
14 | 17 |
-------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Button 3 | description : "Nice buttons on your page." 4 | --- 5 | 6 | A button is a just a clickable button with optional icon. 7 | 8 | ``` 9 | {{%/* button href="https://getgrav.org/" */%}}Get Grav{{%/* /button */%}} 10 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" */%}}Get Grav with icon{{%/* /button */%}} 11 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" */%}}Get Grav with icon right{{%/* /button */%}} 12 | ``` 13 | 14 | {{% button href="https://getgrav.org/" %}}Get Grav{{% /button %}} 15 | {{% button href="https://getgrav.org/" icon="fas fa-download" %}}Get Grav with icon{{% /button %}} 16 | {{% button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" %}}Get Grav with icon right{{% /button %}} 17 | -------------------------------------------------------------------------------- /page/content/01_Getting started/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Getting started" 3 | chapter: false 4 | weight: 20 5 | pre: "1. " 6 | --- 7 | 8 | ## Start the Elastic Environment via AWS Marketplace 9 | 10 | Follow the video below to see how to enable Elastic via AWS Marketplace as well as how to get credentials for the Elastic environment. As we will use a CloudFormation script in order to prepare your workshop environment including an example application, you will need to run a different script then the one shown in the video. However, this is still a good starting point if you would like to test it as well within your own AWS environment at a later stage. 11 | 12 | [![Getting started with Elasticsearch on AWS](https://raw.githubusercontent.com/felix-lessoer/elastic-terraform-examples/main/AWS/AWS_thumbnail.PNG)](https://youtu.be/9PpjxYOOr7c "Getting started with AWS") 13 | -------------------------------------------------------------------------------- /terraform/lib/elastic_api/es_create_mapping.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "ELASTIC_HTTP_METHOD=\(.elastic_http_method) ELASTIC_ENDPOINT=\(.elastic_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) ELASTIC_JSON_BODY=\(.elastic_json_body) ELASTIC_INDEX_NAME=\(.elastic_index_name)"')" 4 | 5 | # Create index 6 | # output=$(curl -s -X ${ELASTIC_HTTP_METHOD} -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 7 | # ${ELASTIC_ENDPOINT}/${ELASTIC_INDEX_NAME}) 8 | 9 | # Define mapping 10 | output=$(curl -s -X PUT -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 11 | -H 'Content-Type:application/json' -d "$ELASTIC_JSON_BODY" \ 12 | ${ELASTIC_ENDPOINT}/${ELASTIC_INDEX_NAME} | jq '.') 13 | 14 | # Return response 15 | ACKNOWLEDGED=$( echo $output | jq -r '.acknowledged' ) 16 | jq -n --arg acknowledged "$ACKNOWLEDGED" '{"acknowledged" : $acknowledged}' 17 | -------------------------------------------------------------------------------- /terraform/lib/elastic_api/kb_upload_saved_objects.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "ELASTIC_HTTP_METHOD=\(.elastic_http_method) ELASTIC_ENDPOINT=\(.kibana_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) SO_FILE=\(.so_file)"')" 4 | 5 | # Define mapping 6 | output=$(curl -s -X ${ELASTIC_HTTP_METHOD} -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 7 | -H "kbn-xsrf: true" --form file=@${SO_FILE} \ 8 | ${ELASTIC_ENDPOINT}/api/saved_objects/_import?overwrite=true | jq '.') 9 | 10 | # Return response 11 | SUCCESS=$( echo $output | jq -r '.success' ) 12 | ERROR=$( echo $output | jq -r '.error' ) 13 | MESSAGE=$( echo $output | jq -r '.message' ) 14 | 15 | jq -n --arg success "$SUCCESS" --arg error "$ERROR" --arg message "$MESSAGE" '{"success" : $success, "error": $error, "message": $message}' 16 | #jq -n --arg output "$output" '{"output" : $output}' -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/theme.toml: -------------------------------------------------------------------------------- 1 | # theme.toml template for a Hugo theme 2 | # See https://github.com/spf13/hugoThemes#themetoml for an example 3 | 4 | name = "Learn" 5 | license = "MIT" 6 | licenselink = "https://github.com/matcornic/hugo-theme-learn/blob/master/LICENSE.md" 7 | description = "Documentation theme for Hugo, based on Grav Learn theme" 8 | homepage = "https://github.com/matcornic/hugo-theme-learn/" 9 | repo = "https://github.com/matcornic/hugo-theme-learn" 10 | tags = ["documentation", "grav", "learn", "doc", "search"] 11 | features = ["documentation", "menu", "nested sections", "search", "mermaid"] 12 | min_version = 0.25 13 | 14 | [author] 15 | name = "Mathieu Cornic" 16 | homepage = "https://matcornic.github.io/" 17 | 18 | [original] 19 | name = "Grav Learn" 20 | homepage = "https://learn.getgrav.org/" 21 | repo = "https://github.com/getgrav/grav-learn" 22 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/layouts/shortcodes/ghcontributors.html: -------------------------------------------------------------------------------- 1 | 22 |
23 | {{ $url := .Get 0 }} 24 | {{ range getJSON $url }} 25 |
26 | 27 | 28 | {{.contributions}} commits 29 |
30 | {{ end }} 31 |
-------------------------------------------------------------------------------- /terraform/lib/elastic_api/kb_add_integration_to_policy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "ELASTIC_HTTP_METHOD=\(.elastic_http_method) ELASTIC_ENDPOINT=\(.kibana_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) ELASTIC_JSON_BODY=\(.elastic_json_body)"')" 4 | 5 | # Define mapping 6 | output=$(curl -s -X POST -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 7 | -H "kbn-xsrf: true" -H 'Content-Type:application/json' -d "$ELASTIC_JSON_BODY" \ 8 | ${ELASTIC_ENDPOINT}/api/fleet/package_policies | jq '.') 9 | 10 | # Return response 11 | ID=$( echo $output | jq -r '.item.id' ) 12 | SUCCESS=$( echo $output | jq -r '.success' ) 13 | ERROR=$( echo $output | jq -r '.error' ) 14 | MESSAGE=$( echo $output | jq -r '.message' ) 15 | 16 | jq -n --arg id "$ID" --arg success "$SUCCESS" --arg error "$ERROR" --arg message "$MESSAGE" '{"id": $id, "success" : $success, "error": $error, "message": $message}' -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2016-04-09T16:50:16+02:00 3 | title: Shortcodes 4 | pre: "3. " 5 | weight: 15 6 | --- 7 | 8 | Hugo utilise Markdown pour son format simple. Cependant, il y a beaucoup de chose que Markdown ne supporte pas bien. On pourrait utiliser du HTML pur pour améliorer les capacité du Markdown. 9 | 10 | Mais c'est probablement une mauvaise idée. Tout le monde utilise le Markdown parce que c'est pur et simple à lire même lorsqu'il est affiché en texte brut. Vous devez éviter le HTML autant que possible pour garder le contenu simple. 11 | 12 | Cependant, pour éviter les limitations, Hugo a créé les [shortcodes](https://gohugo.io/extras/shortcodes/). Un shortcode est un bout de code (*snippet*) dans une page. 13 | 14 | **Hugo-theme-learn** fournit de multiple shortcodes en plus de ceux existant. 15 | 16 | {{%children style="h2" description="true" %}} 17 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/tags.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2018-11-29T08:41:44+01:00 3 | title: Tags 4 | weight: 40 5 | tags: ["documentation", "tutorial"] 6 | --- 7 | 8 | *Learn theme* support one default taxonomy of gohugo: the *tag* feature. 9 | 10 | ## Configuration 11 | 12 | Just add tags to any page: 13 | 14 | ```markdown 15 | --- 16 | date: 2018-11-29T08:41:44+01:00 17 | title: Theme tutorial 18 | weight: 15 19 | tags: ["tutorial", "theme"] 20 | --- 21 | ``` 22 | 23 | ## Behavior 24 | 25 | 26 | The tags are displayed at the top of the page, in their insertion order. 27 | 28 | Each tag is a link to a *Taxonomy* page displaying all the articles with the given tag. 29 | 30 | ## List all the tags 31 | 32 | In the `config.toml` file you can add a shortcut to display all the tags 33 | 34 | ```toml 35 | [[menu.shortcuts]] 36 | name = " Tags" 37 | url = "/tags" 38 | weight = 30 39 | ``` -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Button (Bouton) 3 | description : "De beaux boutons sur votre page." 4 | --- 5 | 6 | Le shortcode *button* est simplement un bouton cliquable avec une icône optionnelle. 7 | 8 | ``` 9 | {{%/* button href="https://getgrav.org/" */%}}Téléchargez Grav{{%/* /button */%}} 10 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" */%}}Téléchargez Grav avec icône{{%/* /button */%}} 11 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" */%}}Téléchargez Grav avec icône à droite{{%/* /button */%}} 12 | ``` 13 | 14 | {{% button href="https://getgrav.org/" %}}Téléchargez Grav{{% /button %}} 15 | {{% button href="https://getgrav.org/" icon="fas fa-download" %}}Téléchargez Grav avec icône{{% /button %}} 16 | {{% button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" %}}Téléchargez Grav avec icône à droite{{% /button %}} 17 | -------------------------------------------------------------------------------- /terraform/terraform/logs_s3.tf: -------------------------------------------------------------------------------- 1 | resource "aws_s3_bucket_logging" "elastic" { 2 | bucket = aws_s3_bucket.elastic_bucket.id 3 | 4 | target_bucket = aws_s3_bucket.elastic_bucket.id 5 | target_prefix = "AWSLogs/${data.aws_caller_identity.current.account_id}/s3/" 6 | } 7 | 8 | # ------------------------------------------------------------- 9 | # Event trigger 10 | # ------------------------------------------------------------- 11 | 12 | resource "aws_sqs_queue" "s3-events" { 13 | name = "s3-s3-event-notification-queue" 14 | visibility_timeout_seconds = 900 15 | policy = < 2 | 3 | 4 | 5 | 6 | {{ $assetBusting := not .Site.Params.disableAssetsBusting }} 7 | 8 | 9 | 16 | 17 | -------------------------------------------------------------------------------- /page/content/01_Getting started/page-1-aws-marketplace.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Enable Elastic in AWS Marketplace" 3 | weight: 21 4 | --- 5 | 6 | The first step you need to take is to activate Elastic in your AWS account. The best way to do so is to subscribe to Elastic via AWS Marketplace using [ela.st/aws](https://ela.st/aws) 7 | ![AWS Marketplace](/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service.png) 8 | 9 | During the setup you will need to create an Elastic Cloud Account which automatically starts your 7-day free trial. 10 | ![Create Elastic Cloud Account](/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step2.png) 11 | 12 | You can skip step 3, which is installing the default CloudFormation script. We will do that as workshop preparation in a later stage when we will also install the sample app for you. 13 | Finally click on "Launch product" which will lead you to the Elastic Cloud Configuration portal. 14 | ![Access Elastic Cloud Portal](/images/AWS-Marketplace-Elastic-Cloud-Elasticsearch-Service-step3+4.png) 15 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/tags.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | date: 2018-11-29T08:41:44+01:00 3 | title: Tags 4 | weight: 40 5 | tags: ["documentation", "tutorial"] 6 | --- 7 | 8 | 9 | Le *thème Learn* supporte une des taxonomy par défaut de GoHugo : les tags. 10 | 11 | ## Configuration 12 | 13 | Il suffit d'ajouter un tableau de tags sur la page : 14 | 15 | ```markdown 16 | --- 17 | date: 2018-11-29T08:41:44+01:00 18 | title: Tutoriel pour le thème 19 | weight: 15 20 | tags: ["tutoriel", "theme"] 21 | --- 22 | ``` 23 | 24 | ## Comportement 25 | 26 | Les tags sont affichés en haut de la page, dans l'ordre dans lequel ils ont été saisis. 27 | 28 | Chaque tag est un lien vers une page *Taxonomy*, qui affiche tous les article avec ce tag. 29 | 30 | 31 | ## Liste des tags 32 | 33 | Il est possible de rajouter un raccourci dans le fichier `config.toml` afin d'afficher une page listant tous les tags 34 | 35 | ```toml 36 | [[menu.shortcuts]] 37 | name = " Tags" 38 | url = "/tags" 39 | weight = 30 40 | ``` -------------------------------------------------------------------------------- /terraform/terraform/ami_picker.tf: -------------------------------------------------------------------------------- 1 | locals { 2 | map = { 3 | af-south-1: "ami-022666956ad401a1" 4 | ap-northeast-1: "ami-015f1a68ce825a8d2" 5 | ap-northeast-2: "ami-0be9734c9e68b99f4" 6 | ap-northeast-3: "ami-01cb3e73f8ef13fdc" 7 | ap-south-1: "ami-00aaac1f2ef4ce965" 8 | ap-southeast-1: "ami-0012ffabeb7413479" 9 | ap-southeast-2: "ami-03ec1fe05b3849c74" 10 | ca-central-1: "ami-04c56d394d31cdeac" 11 | eu-central-1: "ami-0980c5102b5ef10cc" 12 | me-south-1: "ami-03cc0b5db8321f2e5" 13 | ap-east-1: "ami-0c7e5903bee96ef81" 14 | eu-north-1: "ami-0663a4867a210287a" 15 | eu-south-1: "ami-035e213233577516f" 16 | eu-west-1: "ami-0213344887e47003a" 17 | eu-west-2: "ami-0add0a5a0cf9afc6c" 18 | eu-west-3: "ami-01019e7343a5f361d" 19 | sa-east-1: "ami-0312c74c38dc7bae6" 20 | us-east-1: "ami-0db6c6238a40c0681" 21 | us-east-2: "ami-03b6c8bd55e00d5ed" 22 | us-west-1: "ami-0f5868930cb63c89c" 23 | us-west-2: "ami-038a0ccaaedae6406" 24 | } 25 | 26 | ami = lookup(local.map, var.aws_region) 27 | } -------------------------------------------------------------------------------- /page/content/01_Getting started/page-1-cloud-formation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Run the Cloud Formation script" 3 | weight: 23 4 | --- 5 | 6 | Now we have everything in place in order to create your environment using CloudFormation. 7 | Just click on the following button and enter the API key that you have created within your Elastic Cloud via AWS Marketplace environment (step 4) 8 | 9 | {{% button href="https://eu-central-1.console.aws.amazon.com/cloudformation/home?region=eu-central-1#/stacks/create/review?templateURL=https://s3.eu-central-1.amazonaws.com/cf-templates-1co02imbb4wen-eu-central-1/cloudformation.yaml&stackName=myElasticWorkshopEnvironment" icon="fas fa-wrench" %}}Create your environment{{% /button %}} 10 | 11 | Add your Elastic API Key to the template: 12 | ![Enter Elastic API Key](/images/CloudFormation-Stack.png) 13 | 14 | Acknowledge the creation of resources: 15 | ![acknowledge](/images/acknowledge.png) 16 | 17 | And finally click on create stack. Afterwards we will create the environment for you. This can take some time, so please be patient. 18 | 19 | 20 | -------------------------------------------------------------------------------- /page/public/css/auto-complete.css: -------------------------------------------------------------------------------- 1 | .autocomplete-suggestions { 2 | text-align: left; 3 | cursor: default; 4 | border: 1px solid #ccc; 5 | border-top: 0; 6 | background: #fff; 7 | box-shadow: -1px 1px 3px rgba(0,0,0,.1); 8 | 9 | /* core styles should not be changed */ 10 | position: absolute; 11 | display: none; 12 | z-index: 9999; 13 | max-height: 254px; 14 | overflow: hidden; 15 | overflow-y: auto; 16 | box-sizing: border-box; 17 | 18 | } 19 | .autocomplete-suggestion { 20 | position: relative; 21 | cursor: pointer; 22 | padding: 7px; 23 | line-height: 23px; 24 | white-space: nowrap; 25 | overflow: hidden; 26 | text-overflow: ellipsis; 27 | color: #333; 28 | } 29 | 30 | .autocomplete-suggestion b { 31 | font-weight: normal; 32 | color: #1f8dd6; 33 | } 34 | 35 | .autocomplete-suggestion.selected { 36 | background: #333; 37 | color: #fff; 38 | } 39 | 40 | .autocomplete-suggestion:hover { 41 | background: #444; 42 | color: #fff; 43 | } 44 | 45 | .autocomplete-suggestion > .context { 46 | font-size: 12px; 47 | } 48 | -------------------------------------------------------------------------------- /terraform/lib/elastic_api/kb_create_agent_policy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval "$(jq -r '@sh "ELASTIC_HTTP_METHOD=\(.elastic_http_method) ELASTIC_ENDPOINT=\(.kibana_endpoint) ELASTIC_USERNAME=\(.elastic_username) ELASTIC_PASSWORD=\(.elastic_password) ELASTIC_JSON_BODY=\(.elastic_json_body)"')" 4 | 5 | # Define mapping 6 | output=$(curl -s -X POST -u "$ELASTIC_USERNAME:$ELASTIC_PASSWORD" \ 7 | -H "kbn-xsrf: true" -H 'Content-Type:application/json' -d "$ELASTIC_JSON_BODY" \ 8 | ${ELASTIC_ENDPOINT}/api/fleet/agent_policies?sys_monitoring=true | jq '.') 9 | 10 | # Return response 11 | ID=$( echo $output | jq -r '.item.id' ) 12 | SUCCESS=$( echo $output | jq -r '.success' ) 13 | ERROR=$( echo $output | jq -r '.error' ) 14 | MESSAGE=$( echo $output | jq -r '.message' ) 15 | 16 | if [ "${ERROR}" = "Conflict" ] ;then 17 | ##Regex to extract agent ID from the error message 18 | ID=$( echo $MESSAGE | grep -P "'[0-9a-z\-]+'" -o | grep -P "[0-9a-z\-]+" -o ) 19 | fi 20 | 21 | jq -n --arg id "$ID" --arg success "$SUCCESS" --arg error "$ERROR" --arg message "$MESSAGE" '{"id": $id, "success" : $success, "error": $error, "message": $message}' -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notice 3 | description : "Disclaimers to help you structure your page" 4 | --- 5 | 6 | The notice shortcode shows 4 types of disclaimers to help you structure your page. 7 | 8 | ### Note 9 | 10 | ``` 11 | {{%/* notice note */%}} 12 | A notice disclaimer 13 | {{%/* /notice */%}} 14 | ``` 15 | 16 | renders as 17 | 18 | {{% notice note %}} 19 | A notice disclaimer 20 | {{% /notice %}} 21 | 22 | ### Info 23 | 24 | ``` 25 | {{%/* notice info */%}} 26 | An information disclaimer 27 | {{%/* /notice */%}} 28 | ``` 29 | 30 | renders as 31 | 32 | {{% notice info %}} 33 | An information disclaimer 34 | {{% /notice %}} 35 | 36 | ### Tip 37 | 38 | ``` 39 | {{%/* notice tip */%}} 40 | A tip disclaimer 41 | {{%/* /notice */%}} 42 | ``` 43 | 44 | renders as 45 | 46 | {{% notice tip %}} 47 | A tip disclaimer 48 | {{% /notice %}} 49 | 50 | ### Warning 51 | 52 | ``` 53 | {{%/* notice warning */%}} 54 | A warning disclaimer 55 | {{%/* /notice */%}} 56 | ``` 57 | 58 | renders as 59 | 60 | {{% notice warning %}} 61 | A warning disclaimer 62 | {{% /notice %}} 63 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/css/auto-complete.css: -------------------------------------------------------------------------------- 1 | .autocomplete-suggestions { 2 | text-align: left; 3 | cursor: default; 4 | border: 1px solid #ccc; 5 | border-top: 0; 6 | background: #fff; 7 | box-shadow: -1px 1px 3px rgba(0,0,0,.1); 8 | 9 | /* core styles should not be changed */ 10 | position: absolute; 11 | display: none; 12 | z-index: 9999; 13 | max-height: 254px; 14 | overflow: hidden; 15 | overflow-y: auto; 16 | box-sizing: border-box; 17 | 18 | } 19 | .autocomplete-suggestion { 20 | position: relative; 21 | cursor: pointer; 22 | padding: 7px; 23 | line-height: 23px; 24 | white-space: nowrap; 25 | overflow: hidden; 26 | text-overflow: ellipsis; 27 | color: #333; 28 | } 29 | 30 | .autocomplete-suggestion b { 31 | font-weight: normal; 32 | color: #1f8dd6; 33 | } 34 | 35 | .autocomplete-suggestion.selected { 36 | background: #333; 37 | color: #fff; 38 | } 39 | 40 | .autocomplete-suggestion:hover { 41 | background: #444; 42 | color: #fff; 43 | } 44 | 45 | .autocomplete-suggestion > .context { 46 | font-size: 12px; 47 | } 48 | -------------------------------------------------------------------------------- /aws-lambda/lambda-application/handler.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const request = require('request'); 4 | 5 | module.exports.consumer = (event, context, callback) => { 6 | 7 | console.log(`Event: ${JSON.stringify(event)}`) 8 | 9 | const response = { 10 | statusCode: 200, 11 | body: JSON.stringify({ 12 | message: `Hello, the current time is ${new Date().toTimeString()}.`, 13 | }), 14 | }; 15 | 16 | callback(null, response); 17 | 18 | }; 19 | 20 | 21 | module.exports.producer = (event, context, callback) => { 22 | 23 | console.log(`Event: ${JSON.stringify(event)}`) 24 | 25 | let options = { 26 | url: process.env.CONSUMER_API, 27 | headers: {} 28 | } 29 | 30 | request.get( options, (err, res, body) => { 31 | 32 | if (err) { 33 | return console.log(err); 34 | } 35 | console.log(`Status: ${res.statusCode}`); 36 | console.log(body); 37 | 38 | const response_final = { 39 | statusCode: 200, 40 | body: JSON.stringify({ 41 | message: `The response from the producer is ${body}.`, 42 | }), 43 | }; 44 | 45 | callback(null, response_final); 46 | 47 | }); 48 | 49 | }; -------------------------------------------------------------------------------- /page/content/99_Observability/page-1-compliance.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Observe vulnerabilities and compliance" 3 | weight: 91 4 | --- 5 | ## Observing vulnerabilities and compliance 6 | Operating your services within AWS enables you to use the wide range of AWS-specific offerings in your application. Because of the complexity, the many different configuration options, and the shared responsibilities between AWS and your company, it's also possible to operate with less secure setups. 7 | 8 | In order to prevent less secure setups, Elastic also provides support to you by observing the configurations of your services in use. 9 | ![Elastic Endpoint integration](/images/endpoint-integration.png) 10 | To observe and prevent vulnerabilities you can use the Elastic Endpoint Integration that is part of the Elastic Agent and use this to prevent any kind of malware or ransomware attacks to your used EC2 instances. As with all other integrations, the activation only needs a few clicks and is complete after a few minutes. 11 | 12 | To observe compliance and configuration issues Elastic also provides Cloud Posture management in order to execute automatic audits and benchmarks against your environment. 13 | -------------------------------------------------------------------------------- /page/content/06_Task4/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Anomaly Detection" 3 | weight: 70 4 | pre: "2.d " 5 | --- 6 | ## Task 4 7 | 8 | In the fourth and last task, you will need to find the reason for some strange data within the last month. Try to find the anomaly! 9 | 10 | ![Start Task 4](/images/task4-start.png) 11 | 12 | {{%expand "Hint | Only use this if you have no idea how to proceed." %}} 13 | ### Hint 14 | Within the Machine Learning menu you can create an anomaly detection job. 15 | However, the easier way to do this is to navigate to the Lambda metric dashboard. Choose one of the visualizations and create the anomaly detection job from there. 16 | Make sure you include all available data for the last few months. 17 | 18 | ![Solution Task 4](/images/task4-solution.png) 19 | 20 | {{% /expand%}} 21 | 22 | {{%expand "Solution | Open here if you think you found the issue and want to check your result." %}} 23 | ### Solution 24 | 25 | You will know that you are right when you've found an anomaly ~30 days ago. 26 | 27 | {{% /expand%}} 28 | 29 | ### Additional task 30 | 31 | If you have time left, you can try to create an alert based on the anomaly detection job now. 32 | 33 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 MATHIEU CORNIC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /aws-lambda/lambda-application/serverless.yml: -------------------------------------------------------------------------------- 1 | service: sample-app 2 | 3 | frameworkVersion: '3' 4 | 5 | 6 | provider: 7 | name: aws 8 | runtime: nodejs14.x 9 | stage: dev 10 | lambdaHashingVersion: '20201221' 11 | region: ${file(../env.json):aws-region} 12 | layers: 13 | - arn:aws:lambda:${aws:region}:267093732750:layer:elastic-apm-extension-ver-0-0-5-x86_64:1 14 | - arn:aws:lambda:${aws:region}:267093732750:layer:elastic-apm-node-ver-3-31-0:1 15 | environment: 16 | NODE_OPTIONS: -r elastic-apm-node/start 17 | ELASTIC_APM_LAMBDA_APM_SERVER: ${file(../env.json):apm-server-url} 18 | ELASTIC_APM_SECRET_TOKEN: ${file(../env.json):apm-server-token} 19 | #ELASTIC_APM_SERVICE_NAME: composite-service 20 | 21 | functions: 22 | 23 | consumer: 24 | handler: handler.consumer 25 | events: 26 | - http: 27 | path: ping 28 | method: get 29 | 30 | producer: 31 | handler: handler.producer 32 | environment: 33 | CONSUMER_API: !Sub https://${ApiGatewayRestApi}.execute-api.${aws:region}.amazonaws.com/${self:provider.stage}/ping 34 | events: 35 | - http: 36 | method: post 37 | path: produce 38 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Notice 3 | description : "Message pour vous aider à structurer votre contenu" 4 | --- 5 | 6 | Le shortcode *Notice* permet d'afficher 4 types de message pour vous aider à structurer votre contenu. 7 | 8 | ### Note 9 | 10 | ``` 11 | {{%/* notice note */%}} 12 | Une notice de type *note* 13 | {{%/* /notice */%}} 14 | ``` 15 | 16 | s'affiche comme 17 | 18 | {{% notice note %}} 19 | Une notice de type *note* 20 | {{% /notice %}} 21 | 22 | ### Info 23 | 24 | ``` 25 | {{%/* notice info */%}} 26 | Une notice de type *info* 27 | {{%/* /notice */%}} 28 | ``` 29 | 30 | s'affiche comme 31 | 32 | {{% notice info %}} 33 | Une notice de type *info* 34 | {{% /notice %}} 35 | 36 | ### Tip 37 | 38 | ``` 39 | {{%/* notice tip */%}} 40 | Une notice de type *tip* 41 | {{%/* /notice */%}} 42 | ``` 43 | 44 | s'affiche comme 45 | 46 | {{% notice tip %}} 47 | Une notice de type *tip* 48 | {{% /notice %}} 49 | 50 | ### Warning 51 | 52 | ``` 53 | {{%/* notice warning */%}} 54 | Une notice de type *warning* 55 | {{%/* /notice */%}} 56 | ``` 57 | 58 | s'affiche comme 59 | 60 | {{% notice warning %}} 61 | Une notice de type *warning* 62 | {{% /notice %}} -------------------------------------------------------------------------------- /terraform/json_templates/service_transform.json: -------------------------------------------------------------------------------- 1 | { 2 | "source": { 3 | "index": [ 4 | "traces-apm*", 5 | "apm-*", 6 | "logs-apm*", 7 | "apm-*", 8 | "metrics-apm*", 9 | "apm-*" 10 | ] 11 | }, 12 | "pivot": { 13 | "group_by": { 14 | "service.name": { 15 | "terms": { 16 | "field": "service.name" 17 | } 18 | } 19 | }, 20 | "aggregations": { 21 | "unique_tx": { 22 | "cardinality": { 23 | "field": "transaction.id" 24 | } 25 | }, 26 | "total_tx": { 27 | "value_count": { 28 | "field": "transaction.id" 29 | } 30 | }, 31 | "duration.percentiles": { 32 | "percentiles": { 33 | "field": "transaction.duration.us", 34 | "percents": [ 35 | 50, 36 | 75, 37 | 95 38 | ] 39 | } 40 | }, 41 | "total_errors": { 42 | "cardinality": { 43 | "field": "error.id" 44 | } 45 | } 46 | } 47 | }, 48 | "dest": { 49 | "index": "service-status" 50 | }, 51 | "sync": { 52 | "time": { 53 | "field": "@timestamp" 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Grav 4 | Copyright (c) 2016 MATHIEU CORNIC 5 | Copyright (c) 2017 Valere JEANTET 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of 8 | this software and associated documentation files (the "Software"), to deal in 9 | the Software without restriction, including without limitation the rights to 10 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 11 | the Software, and to permit persons to whom the Software is furnished to do so, 12 | subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 19 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 20 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 21 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/layouts/partials/menu-footer.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | Download 4 | 5 | 6 | Star 7 | 8 | 9 | Fork 10 | 11 |

Built with from Grav and Hugo

12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /page/public/css/tags.css: -------------------------------------------------------------------------------- 1 | /* Tags */ 2 | 3 | #head-tags{ 4 | margin-left:1em; 5 | margin-top:1em; 6 | } 7 | 8 | #body .tags a.tag-link { 9 | display: inline-block; 10 | line-height: 2em; 11 | font-size: 0.8em; 12 | position: relative; 13 | margin: 0 16px 8px 0; 14 | padding: 0 10px 0 12px; 15 | background: #8451a1; 16 | 17 | -webkit-border-bottom-right-radius: 3px; 18 | border-bottom-right-radius: 3px; 19 | -webkit-border-top-right-radius: 3px; 20 | border-top-right-radius: 3px; 21 | 22 | -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.2); 23 | box-shadow: 0 1px 2px rgba(0,0,0,0.2); 24 | color: #fff; 25 | } 26 | 27 | #body .tags a.tag-link:before { 28 | content: ""; 29 | position: absolute; 30 | top:0; 31 | left: -1em; 32 | width: 0; 33 | height: 0; 34 | border-color: transparent #8451a1 transparent transparent; 35 | border-style: solid; 36 | border-width: 1em 1em 1em 0; 37 | } 38 | 39 | #body .tags a.tag-link:after { 40 | content: ""; 41 | position: absolute; 42 | top: 10px; 43 | left: 1px; 44 | width: 5px; 45 | height: 5px; 46 | -webkit-border-radius: 50%; 47 | border-radius: 100%; 48 | background: #fff; 49 | } 50 | -------------------------------------------------------------------------------- /page/webspec.yml: -------------------------------------------------------------------------------- 1 | version: 0.2 2 | 3 | phases: 4 | install: 5 | runtime-versions: 6 | docker: 18 7 | dotnet: 2.2 8 | python: 3.7 9 | ruby: 2.6 10 | pre_build: 11 | commands: 12 | - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7) 13 | - IMAGE_TAG=${COMMIT_HASH:=latest} 14 | - echo Initializing Git Repo 15 | - git init 16 | - git remote add origin $FULL_REPO_URL 17 | - git fetch 18 | - git checkout -f "$CODEBUILD_RESOLVED_SOURCE_VERSION" 19 | - git submodule init 20 | - git submodule update --recursive 21 | - gem install asciidoctor 22 | - echo Install Hugo 23 | - wget https://github.com/gohugoio/hugo/releases/download/v0.71.0/hugo_extended_0.71.0_Linux-64bit.tar.gz -O hugo_extended_0.71.0_Linux-64bit.tar.gz 24 | - HUGO_TAR="$(find . -name "*Linux-64bit.tar.gz")" 25 | - tar -xzf $HUGO_TAR 26 | - chmod +x hugo 27 | 28 | build: 29 | commands: 30 | - echo Build Website 31 | - ./hugo -D -d public 32 | - echo Deploy Copy Website to S3 Bucket 33 | - aws s3 sync public/ s3://${WEB_SITE_BUCKET}/ --delete 34 | - aws cloudfront create-invalidation --distribution-id ${CLOUDFRONT_DISTRO_ID} --paths /\* 35 | 36 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/shortcodes/attachments.html: -------------------------------------------------------------------------------- 1 | {{ $_hugo_config := `{ "version": 1 }` }} 2 |
3 | 7 | {{if eq .Page.File.BaseFileName "index"}} 8 | {{$.Scratch.Add "filesName" "files"}} 9 | {{else}} 10 | {{$.Scratch.Add "filesName" (printf "%s.files" .Page.File.BaseFileName)}} 11 | {{end}} 12 |
13 | {{ range (readDir (printf "./content/%s%s" .Page.File.Dir ($.Scratch.Get "filesName")) ) }} 14 | {{ $fileDir := replace $.Page.File.Dir "\\" "/" }} 15 | {{if ($.Get "pattern")}} 16 | {{if (findRE ($.Get "pattern") .Name)}} 17 |
  • 18 | 19 | {{.Name}} 20 | 21 | ({{div .Size 1024 }} ko) 22 |
  • 23 | {{end}} 24 | {{else}} 25 |
  • 26 | 27 | {{.Name}} 28 | 29 | ({{div .Size 1024 }} ko) 30 |
  • 31 | {{end}} 32 | {{end}} 33 |
    34 | {{.Inner}} 35 |
    36 | 37 | -------------------------------------------------------------------------------- /page/content/04_Task2/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Analyze performance issues" 3 | weight: 50 4 | pre: "2.b " 5 | --- 6 | ## Task 2 7 | 8 | In the second task, you will need to find the reason for some poorly performing transactions. The performance issue becomes visible after the first task is fixed. So it may take a bit of time until you can clearly see it in the charts. It's also okay to reduce the time window of the Kibana charts to only get and see the data after the fix of task 1. 9 | 10 | You will know that you’ve fixed the issue when there is no transaction that takes longer than a second. 11 | ![Elastic task 2](/images/task2-start.png) 12 | 13 | {{%expand "Hint | Only use this if you have no idea how to proceed." %}} 14 | 15 | In order to find the issue, you need to navigate to the APM Service of the Python App. 16 | The Python App only has one trace to analyze. Navigate into that trace and perform the Latency correlation. Make sure you include enough data. The best way would be to have 15 minutes of data after you fixed the issue in Task 1. However, if you are faster, you can use the time picker in Kibana to only use more recent data. 17 | 18 | When there is enough data, you will find the concrete next step to do in order to fix the performance issue. 19 | 20 | {{% /expand%}} 21 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/css/tags.css: -------------------------------------------------------------------------------- 1 | /* Tags */ 2 | 3 | #head-tags{ 4 | margin-left:1em; 5 | margin-top:1em; 6 | } 7 | 8 | #body .tags a.tag-link { 9 | display: inline-block; 10 | line-height: 2em; 11 | font-size: 0.8em; 12 | position: relative; 13 | margin: 0 16px 8px 0; 14 | padding: 0 10px 0 12px; 15 | background: #8451a1; 16 | 17 | -webkit-border-bottom-right-radius: 3px; 18 | border-bottom-right-radius: 3px; 19 | -webkit-border-top-right-radius: 3px; 20 | border-top-right-radius: 3px; 21 | 22 | -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.2); 23 | box-shadow: 0 1px 2px rgba(0,0,0,0.2); 24 | color: #fff; 25 | } 26 | 27 | #body .tags a.tag-link:before { 28 | content: ""; 29 | position: absolute; 30 | top:0; 31 | left: -1em; 32 | width: 0; 33 | height: 0; 34 | border-color: transparent #8451a1 transparent transparent; 35 | border-style: solid; 36 | border-width: 1em 1em 1em 0; 37 | } 38 | 39 | #body .tags a.tag-link:after { 40 | content: ""; 41 | position: absolute; 42 | top: 10px; 43 | left: 1px; 44 | width: 5px; 45 | height: 5px; 46 | -webkit-border-radius: 50%; 47 | border-radius: 100%; 48 | background: #fff; 49 | } 50 | -------------------------------------------------------------------------------- /page/public/02_demo/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Root Cause Analysis on Elastic Observability on AWS Workshop 5 | /02_demo.html 6 | Recent content in Root Cause Analysis on Elastic Observability on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | The environment 11 | /02_demo/page-1-environment.html 12 | Mon, 01 Jan 0001 00:00:00 +0000 13 | 14 | /02_demo/page-1-environment.html 15 | Architecture We’ve prepared an AWS + Elastic environment for you. Within the AWS environment there is a simple python application deployed on EC2. This application is accessing DynamoDB and uses Lambda functions to enrich an object with more information. All the monitoring information including metrics and logs from the entire system are collected in Elastic. This is done by using one Elastic Agent at the EC2 instance and the Elastic Serverless forwarder for the logs. 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /python-app/loadgen.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import time 3 | import logging 4 | import random 5 | import threading 6 | 7 | def generate_random_ip(): 8 | # Generate a random IP address in the form xxx.xxx.xxx.xxx 9 | # where xxx is a number between 0 and 255 10 | return ".".join([str(random.randint(0, 255)) for _ in range(4)]) 11 | 12 | def execute_request(data, headers): 13 | logging.warning("starting!") 14 | response = requests.post("http://localhost:5002/add-item", json=data, headers=headers) 15 | logging.warning(response) 16 | 17 | n = 0 18 | 19 | while True: 20 | # Make a POST request to the specified URL 21 | print(n) 22 | n = n+1 23 | number = "%05d" % random.randint(0,10) 24 | data = {"item": { "name": "test" + str(number)}, "id": 1 } 25 | headers = {'X-Real-IP': generate_random_ip()} 26 | 27 | x = threading.Thread(target=execute_request, args=(data,headers)) 28 | x.start() 29 | 30 | # create spike every N seconds for specific country 31 | if(n > 300): 32 | print("spike starting") 33 | n = 0 34 | headers = {'X-Real-IP': "213.30.114.42"} 35 | data = {"item": { "name": "hack0r", "id": n }} 36 | for x in range(100): 37 | x = threading.Thread(target=execute_request, args=(data,headers)) 38 | x.start() 39 | print("spike done") 40 | time.sleep(1) -------------------------------------------------------------------------------- /page/content/05_Task3/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "AIOps Log Spike analysis" 3 | weight: 60 4 | pre: "2.c " 5 | --- 6 | ## Task 3 7 | 8 | In the third task, you will need to find the reason for some anomalous log spikes. Every now and then the application is logging much more than usual. From a technical perspective there is no obvious reason for it (e.g. no cron job running). 9 | 10 | ![Start Task 3](/images/task3-start.png) 11 | 12 | {{%expand "Hint | Only use this if you have no idea how to proceed." %}} 13 | ### Hint 14 | 15 | Within the Machine Learning menu in Kibana you can find "Explain Log Rate Spikes". Use this with the Python Logs saved search. Make sure that you set Deviation and Baseline based on your needs. 16 | 17 | {{% /expand%}} 18 | 19 | {{%expand "Solution | Open here if you think you found the issue and want to check your result." %}} 20 | ### Solution 21 | 22 | The expected finding is the user named hack0r who tries to get enrichment data from the data base. 23 | ![Solution Task 3](/images/task3-solution.png) 24 | 25 | After finding the result, it would be a good idea to create a case about it. IT Security will then take care of it from that point. 26 | You can do this under Observability -> Cases. 27 | 28 | {{% /expand%}} 29 | 30 | ### After task 3 31 | When you've found the issue, think about what you should do with that information to make sure it's handled appropriately. 32 | 33 | -------------------------------------------------------------------------------- /terraform/README.md: -------------------------------------------------------------------------------- 1 | # AWS environment 2 | 3 | ```json 4 | { 5 | "aws_region" : "eu-west-2", 6 | "aws_access_key" : "", 7 | "aws_secret_key" : "" 8 | } 9 | ``` 10 | 11 | List of other optional parameters that can be added to terraform.tfvars.json 12 | | Parameter Name | Default value | Example | Description | 13 | | ------------- | ------------- | ------------- | ------------- | 14 | | elastic_version | latest | 8.4.1 | Used to define the Elastic Search version | 15 | | elastic_region | aws-eu-west-2 | aws-eu-west-2 | Used to set the Elastic Cloud region for the AWS deployment | 16 | | elastic_deployment_name | AWS Observe and Protect | AWS Observe and Protect | Used to define the name for the Elastic deployment | 17 | 18 | 19 | #### Create AWS Access credentials 20 | 21 | 1. Visit the [IAM Management Console](https://us-east-1.console.aws.amazon.com/iam/home) in AWS 22 | 2. Navigate to the user you want to use for the setup 23 | 3. Click on "Security credentials" 24 | 4. Click on "Create access key" and save the credentials in your `terraform.tfvars.json` file 25 | 26 | Hint: The credentials you choose here will also be used to authenticate the Elastic Agent against your AWS Environment. In production ready setups you might want to change that. Elastic also offers other authentication mechanisms for the Elastic Agent. This terraform script does not ATM. 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /page/public/00_introduction/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Introduction on Elastic Observability on AWS Workshop 5 | /00_introduction.html 6 | Recent content in Introduction on Elastic Observability on AWS Workshop 7 | Hugo -- gohugo.io 8 | en-US 9 | 10 | What is Elastic? 11 | /00_introduction/page-1-elastic.html 12 | Mon, 01 Jan 0001 00:00:00 +0000 13 | 14 | /00_introduction/page-1-elastic.html 15 | At Elastic, we see endless possibilities in a world of endless data. And we use the power of search to help people and organizations turn that possibility into results. 16 | As the leading platform for search-powered solutions, we help everyone — organizations, their employees, and their customers — accelerate the results that matter. 17 | With solutions in Enterprise Search, Observability, and Security, we help people find what they need faster, keep mission-critical applications running smoothly, and protect against cyber threats. 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /page/pipeline/webhosting/README.md: -------------------------------------------------------------------------------- 1 | ## Webhosting and Pipeline Setup 2 | 3 | **Purpose:** Instructions for hosting the website and creating a pipeline that automatically builds new static html files and uploads them to the appropriate S3 Bucket. 4 | 5 | ### 1. Edit and deploy the CloudFront site in cloudfront-s3-website.yaml. 6 | 7 | You should only need to change the parameter for WorkshopHostname. Once that is complete run a command similar to the following but change the stackname 8 | 9 | > Stack takes about 20 minutes 10 | ``` 11 | ### DO NOT FORGET TO CHANGE THE STACK NAME 12 | aws cloudformation create-stack --stack-name MY-Workshop --template-body file://cloudfront-s3-website.yaml --enable-termination-protection 13 | ``` 14 | 15 | ### 2. Edit and deploy the pipeline in pipeline.yaml. 16 | 17 | In this one you will probably want to change the first 5 parameters. ProjectName should match whatever you put for WorkshopHostname in the cloudfront-s3-website.yaml. Set the `CloudFrontDistroId` to the distribution ID generated from the first stack. 18 | 19 | > Stack completes in about 1-2 minutes 20 | ``` 21 | ### DO NOT FORGET TO CHANGE THE STACK NAME 22 | aws cloudformation create-stack --stack-name MY-Website-Pipeline --template-body file://pipeline.yaml --capabilities CAPABILITY_NAMED_IAM --enable-termination-protection 23 | ``` 24 | 25 | If you check the Build Pipeline and Build logs you should see files successfully copied to your S3 bucket. -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Archetypes 3 | weight: 10 4 | --- 5 | 6 | Using the command: `hugo new [relative new content path]`, you can start a content file with the date and title automatically set. While this is a welcome feature, active writers need more: [archetypes](https://gohugo.io/content/archetypes/). 7 | 8 | It is pre-configured skeleton pages with default front matter. Please refer to the documentation for types of page to understand the differences. 9 | 10 | ## Chapter {#archetypes-chapter} 11 | 12 | To create a Chapter page, run the following commands 13 | 14 | ``` 15 | hugo new --kind chapter /_index.md 16 | ``` 17 | 18 | It will create a page with predefined Front-Matter: 19 | 20 | ```markdown 21 | +++ 22 | title = "{{ replace .Name "-" " " | title }}" 23 | date = {{ .Date }} 24 | weight = 5 25 | chapter = true 26 | pre = "X. " 27 | +++ 28 | 29 | ### Chapter X 30 | 31 | # Some Chapter title 32 | 33 | Lorem Ipsum. 34 | ``` 35 | 36 | ## Default 37 | 38 | To create a default page, run either one of the following commands 39 | 40 | ``` 41 | # Either 42 | hugo new //_index.md 43 | # Or 44 | hugo new /.md 45 | ``` 46 | 47 | It will create a page with predefined Front-Matter: 48 | 49 | ```markdown 50 | +++ 51 | title = "{{ replace .Name "-" " " | title }}" 52 | date = {{ .Date }} 53 | weight = 5 54 | +++ 55 | 56 | Lorem Ipsum. 57 | ``` 58 | -------------------------------------------------------------------------------- /page/content/03_Task1/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Find issues in applications running on AWS" 3 | weight: 40 4 | pre: "2.a " 5 | --- 6 | ## Task 1 7 | 8 | In the first task, you're asked to find the root cause of an issue within our sample application. You can see that there is an issue because of the existence of error messages. 9 | 10 | You can find error messages within the logs and also by looking at the APM data. Both ways will lead to the expected results. Choose the one that is more preferable for you. 11 | 12 | You will know that you’ve fixed the issue when there is no new error message coming in. 13 | ![Elastic environment](/images/task1-solution.png) 14 | 15 | ## After Task 1 16 | 17 | You have now seen how a dashboard could be used to dive into the data and perform a root cause analysis for some simple issues. Elastic offers different kinds of visualizations. Another very handy way to visualize your data is using Canvas. In contrast to the dashboard you used to solve task 1, the Canvas dashboard is more graphical and less interactive. However, it also has some unique capabilties like attaching metric data next to your example architecture diagrams. This can help a lot in understanding where the issue is coming from. 18 | We've prepared a Canvas Dashboard in your environment that visualizes the different ways log data is flowing into your cluster. Find the Canvas board in your environment and double check that all the data flows are working fine. 19 | 20 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/icons.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Icons and logos 3 | weight: 27 4 | --- 5 | 6 | The Learn theme for Hugo loads the [**Font Awesome**](https://fontawesome.com) library, allowing you to easily display any icon or logo available in the Font Awesome free collection. 7 | 8 | ## Finding an icon 9 | 10 | Browse through the available icons in the [Font Awesome Gallery](https://fontawesome.com/icons?d=gallery&m=free). Notice that the **free** filter is enabled, as only the free icons are available by default. 11 | 12 | Once on the Font Awesome page for a specific icon, for example the page for the [heart](https://fontawesome.com/icons/heart?style=solid), copy the HTML reference and paste into the markdown content. 13 | 14 | The HTML to include the heart icon is: 15 | 16 | ``` 17 | 18 | ``` 19 | 20 | ## Including in markdown 21 | 22 | Paste the `` HTML into markup and Font Awesome will load the relevant icon. 23 | 24 | ``` 25 | Built with from Grav and Hugo 26 | ``` 27 | 28 | Which appears as 29 | 30 | Built with from Grav and Hugo 31 | 32 | ## Customising icons 33 | 34 | Font Awesome provides many ways to modify the icon 35 | 36 | * Change colour (by default the icon will inherit the parent colour) 37 | * Increase or decrease size 38 | * Rotate 39 | * Combine with other icons 40 | 41 | Check the full documentation on [web fonts with CSS](https://fontawesome.com/how-to-use/web-fonts-with-css) for more. 42 | -------------------------------------------------------------------------------- /terraform/terraform/logs_cloudtrail.tf: -------------------------------------------------------------------------------- 1 | data "aws_caller_identity" "current" {} 2 | 3 | resource "aws_cloudtrail" "management" { 4 | name = "tf-trail-elastic" 5 | s3_bucket_name = aws_s3_bucket.elastic_bucket.id 6 | include_global_service_events = true 7 | is_multi_region_trail = true 8 | enable_logging = true 9 | 10 | event_selector { 11 | read_write_type = "All" 12 | include_management_events = true 13 | 14 | data_resource { 15 | type = "AWS::Lambda::Function" 16 | values = ["arn:aws:lambda"] 17 | } 18 | 19 | data_resource { 20 | type = "AWS::S3::Object" 21 | values = ["arn:aws:s3"] 22 | } 23 | } 24 | 25 | depends_on = [aws_s3_bucket_policy.cloudtrail] 26 | } 27 | 28 | # ------------------------------------------------------------- 29 | # Event trigger 30 | # ------------------------------------------------------------- 31 | 32 | resource "aws_sqs_queue" "cloudtrail-events" { 33 | name = "s3-cloudtrail-event-notification-queue" 34 | visibility_timeout_seconds = 900 35 | policy = < 2 | 4 | 5 | / 6 | 7 | /00_introduction.html 8 | 9 | /00_introduction/page-1-elastic.html 10 | 11 | /01_getting-started.html 12 | 13 | /01_getting-started/page-1-aws-marketplace.html 14 | 15 | /01_getting-started/page-1-elastic-key.html 16 | 17 | /01_getting-started/page-1-cloud-formation.html 18 | 19 | /02_demo.html 20 | 21 | /02_demo/page-1-environment.html 22 | 23 | /03_task1.html 24 | 25 | /04_task2.html 26 | 27 | /05_task3.html 28 | 29 | /06_task4.html 30 | 31 | /08_conclusion.html 32 | 33 | /99_observability.html 34 | 35 | /99_observability/page-1-conpliance.html 36 | 37 | /99_observability/page-1-example-app.html 38 | 39 | /99_observability/page-1-k8s.html 40 | 41 | /99_observability/page-1-platform.html 42 | 43 | /categories.html 44 | 45 | /tags.html 46 | 47 | 48 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ partial "header.html" . }} 2 | 3 | navigation 4 | 5 | 6 | {{if .Site.Home.Content }} 7 | {{.Site.Home.Content}} 8 | {{else}} 9 | {{if eq .Site.Language.Lang "fr"}} 10 |

    Personaliser la page d'accueil

    11 |

    12 | Le site fonctionne. Ne pas oublier de personaliser cette page avec votre propre contenu. 3 manières de faire : 13 |

    14 |
      15 |
    • 1. Créer un fichier _index.md dans le dossier content et le remplir de Markdown
    • 16 |
    • 2. Créer un fichier index.html dans le dossier static et le remplir de code HTML
    • 17 |
    • 3. Configurer le serveur http pour rediriger automatiquement la homepage vers la page de votre choix dans le site
    • 18 |
    19 | {{else}} 20 |

    Customize your own home page

    21 |

    22 | The site is working. Don't forget to customize this homepage with your own. You typically have 3 choices : 23 |

    24 |
      25 |
    • 1. Create an _index.md document in content folder and fill it with Markdown content
    • 26 |
    • 2. Create an index.html file in the static folder and fill the file with HTML content
    • 27 |
    • 3. Configure your server to automatically redirect home page to one your documentation page
    • 28 |
    29 | {{end}} 30 | {{ end }} 31 | {{ partial "footer.html" . }} 32 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Archétypes 3 | weight: 10 4 | --- 5 | 6 | En utilisant la commande: `hugo new [chemin vers nouveau contenu]`, vous pouvez créer un nouveau fichier avec la date et le title automatiquement initialisé. Même si c'est une fonctionnalité intéressante, elle reste limitée pour les auteurs actifs qui ont besoin de mieux : les [archetypes](https://gohugo.io/content/archetypes/). 7 | 8 | Les archétypes sont des squelettes de pages préconfigurées avec un Front Matter par défaut. Merci de vous référer à la documentation pour connaitre les différents types de page. 9 | 10 | ## Chapitre {#archetypes-chapter} 11 | 12 | Pour créer un chapitre, lancez les commandes suivantes 13 | 14 | ``` 15 | hugo new --kind chapter /_index.md 16 | ``` 17 | 18 | Cela crééra une page avec le Front Matter suivant: 19 | 20 | ```markdown 21 | +++ 22 | title = "{{ replace .Name "-" " " | title }}" 23 | date = {{ .Date }} 24 | weight = 5 25 | chapter = true 26 | pre = "X. " 27 | +++ 28 | 29 | ### Chapter X 30 | 31 | # Some Chapter title 32 | 33 | Lorem Ipsum. 34 | ``` 35 | 36 | ## Défaut 37 | 38 | Pour créer une page classique, lancer l'une des deux commandes suivantes 39 | 40 | ``` 41 | # Soit 42 | hugo new //_index.md 43 | # Ou 44 | hugo new /.md 45 | ``` 46 | 47 | Cela crééra une page avec le Front Matter suivant: 48 | 49 | ```markdown 50 | +++ 51 | title = "{{ replace .Name "-" " " | title }}" 52 | date = {{ .Date }} 53 | weight = 5 54 | +++ 55 | 56 | Lorem Ipsum. 57 | ``` -------------------------------------------------------------------------------- /page/content/02_Demo/page-1-environment.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "The environment" 3 | weight: 31 4 | --- 5 | ## Architecture 6 | 7 | We’ve prepared an AWS + Elastic environment for you. Within the AWS environment there is a simple python application deployed on EC2. This application accesses DynamoDB and uses Lambda functions to enrich an object with more information. All the monitoring information including metrics and logs from the entire system are collected in Elastic. This is done by using one Elastic Agent at the EC2 instance and the Elastic Serverless forwarder for the logs. While the Elastic Agent would also be able to collect the different log types, this architecture has the advantage of running log monitoring on different hardware. 8 | 9 | The architecture of the sample app looks like this. For better load distribution we have two EC2 instances running. One is called Elastic-Agent and one is called Elastic-App. 10 | ![Elastic environment](/images/aws_workshop_arch.png) 11 | 12 | While running the workshop you have access to your Elastic Cluster and to the EC2 instances that are running the application. In your Elastic Cluster you can find a dashboard called **Workshop Dashboard**. Use this dashboard as a starting point for all your tasks. You can solve all the tasks by using these components. You don’t need anything else. 13 | Your task is to find the issues using the Elastic Cluster and to fix the issues within the EC2 environment(s). 14 | 15 | The code that is running the application is downloaded from this [GitHub Repo](https://github.com/elastic/aws-workshop) to the EC2 environment(s). If you like 16 | -------------------------------------------------------------------------------- /terraform/json_templates/python-index-template.json: -------------------------------------------------------------------------------- 1 | { 2 | "priority": 200, 3 | "template": { 4 | "settings": { 5 | "index": { 6 | "default_pipeline": "logs-log.log-1.1.0" 7 | } 8 | }, 9 | "mappings": { 10 | "_meta": { 11 | "package": { 12 | "name": "log" 13 | }, 14 | "managed_by": "fleet", 15 | "managed": true 16 | }, 17 | "properties": { 18 | "log": { 19 | "type": "object", 20 | "properties": { 21 | "file": { 22 | "type": "object", 23 | "properties": { 24 | "path": { 25 | "type": "keyword" 26 | } 27 | } 28 | }, 29 | "offset": { 30 | "coerce": true, 31 | "index": true, 32 | "ignore_malformed": false, 33 | "store": false, 34 | "type": "long", 35 | "doc_values": true 36 | }, 37 | "level": { 38 | "type": "keyword" 39 | } 40 | } 41 | }, 42 | "client.ip": { 43 | "type": "ip" 44 | } 45 | } 46 | } 47 | }, 48 | "index_patterns": [ 49 | "logs-python-default" 50 | ], 51 | "data_stream": { 52 | "hidden": false, 53 | "allow_custom_routing": false 54 | }, 55 | "composed_of": [ 56 | "logs-log.log@package", 57 | "logs-log.log@custom", 58 | ".fleet_globals-1", 59 | ".fleet_agent_id_verification-1" 60 | ], 61 | "_meta": { 62 | "package": { 63 | "name": "log" 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/credits.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Crédits 3 | disableToc: true 4 | --- 5 | 6 | ## Contributeurs 7 | 8 | Merci à eux de rendre le monde Open Source meilleur ! 9 | 10 | {{% ghcontributors "https://api.github.com/repos/matcornic/hugo-theme-learn/contributors?per_page=100" %}} 11 | 12 | Et un grand merci à [@vjeantet](https://github.com/vjeantet) pour son travail sur [docdock](https://github.com/vjeantet/hugo-theme-docdock), un fork de _hugo-theme-learn_. La v2.0.0 du thème est en grande partie inspirée de son travail. 13 | 14 | ## Packages et librairies 15 | * [mermaid](https://knsv.github.io/mermaid) - géneration de diagrames et graphiques à partir de texte similaire à Markdown 16 | * [font awesome](http://fontawesome.io/) - Le framework de polices iconiques 17 | * [jQuery](https://jquery.com) - La plus connue des librairies Javascript 18 | * [lunr](https://lunrjs.com) - Lunr fournit des fonctions de recherche sans service externe 19 | * [horsey](https://bevacqua.github.io/horsey/) - Autocomplétion de composants (utiliser pour les suggestions de recherche) 20 | * [clipboard.js](https://zenorocha.github.io/clipboard.js) - Copier le texte dans le presse-papier 21 | * [highlight.js](https://highlightjs.org) - Mise en valeur de syntaxes 22 | * [modernizr](https://modernizr.com) - Une boite à outil Javascript qui permet aux développeurs d'utiliser les dernières fonctionnalités de CSS et HTML5, même sur de vieux navigateurs. 23 | 24 | ## Outils 25 | 26 | * [Netlify](https://www.netlify.com) - Déploiement continue et hébergement de cette documentation 27 | * [Hugo](https://gohugo.io/) 28 | 29 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/credits.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Credits 3 | disableToc: true 4 | --- 5 | 6 | ## Contributors 7 | 8 | Thanks to them for making Open Source Software a better place ! 9 | 10 | {{% ghcontributors "https://api.github.com/repos/matcornic/hugo-theme-learn/contributors?per_page=100" %}} 11 | 12 | And a special thanks to [@vjeantet](https://github.com/vjeantet) for his work on [docdock](https://github.com/vjeantet/hugo-theme-docdock), a fork of hugo-theme-learn. v2.0.0 of this theme is inspired by his work. 13 | 14 | ## Packages and libraries 15 | * [mermaid](https://knsv.github.io/mermaid) - generation of diagram and flowchart from text in a similar manner as markdown 16 | * [font awesome](http://fontawesome.io/) - the iconic font and CSS framework 17 | * [jQuery](https://jquery.com) - The Write Less, Do More, JavaScript Library 18 | * [lunr](https://lunrjs.com) - Lunr enables you to provide a great search experience without the need for external, server-side, search services... 19 | * [horsey](https://bevacqua.github.io/horsey/) - Progressive and customizable autocomplete component 20 | * [clipboard.js](https://zenorocha.github.io/clipboard.js) - copy text to clipboard 21 | * [highlight.js](https://highlightjs.org) - Javascript syntax highlighter 22 | * [modernizr](https://modernizr.com) - A JavaScript toolkit that allows web developers to use new CSS3 and HTML5 features while maintaining a fine level of control over browsers that don't support 23 | 24 | ## Tooling 25 | 26 | * [Netlify](https://www.netlify.com) - Continuous deployement and hosting of this documentation 27 | * [Hugo](https://gohugo.io/) 28 | 29 | -------------------------------------------------------------------------------- /page/content/02_Demo/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Root Cause Analysis" 3 | chapter: true 4 | weight: 30 5 | pre: "2. " 6 | --- 7 | 8 | [Monitoring the AWS environment](https://www.elastic.co/observability/aws-monitoring) is a very common use case for Elastic. You can download the complete [ebook](https://www.elastic.co/aws/the-elastic-observability-guide-for-aws) about that topic. 9 | 10 | ![AWS overview](/images/aws-overview.png) 11 | 12 | Elastic observes cross-VPC, cross-region, cross-AZ, cross-Account. No matter how you organize your environment, Elastic will fit into it. Collect everything in a single Elastic environment and authorize only the relevant team(s) to it. Even if you are responsible for observing multiple different cloud providers or hybrid environments, Elastic can help you get better insights into what is happening in one single tool. 13 | 14 | Elastic supports collecting data via different ways. Using the Elastic Agent, but [agentless](https://serverlessrepo.aws.amazon.com/applications/eu-central-1/267093732750/elastic-serverless-forwarder) and native integrations are also available. In the introduction, we already learned about the Elastic Agent and how it can be used. We will continue using the agent to observe the AWS platform and the apps you are running in it. 15 | 16 | However, if you prefer not to use the Elastic Agent, you can collect the same data using the [Elastic serverless forwarder](https://serverlessrepo.aws.amazon.com/applications/eu-central-1/267093732750/elastic-serverless-forwarder) which is a Lambda function that is able to collect the same data without the need to deploy an agent. 17 | 18 | ![AWS serverless overview](/images/aws-serverless-overview.png) 19 | -------------------------------------------------------------------------------- /page/content/99_Observability/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Observability" 3 | chapter: true 4 | weight: 90 5 | pre: "99. " 6 | --- 7 | 8 | [Monitoring the AWS environment](https://www.elastic.co/observability/aws-monitoring) is a very common use case for Elastic. You can download the complete [ebook](https://www.elastic.co/aws/the-elastic-observability-guide-for-aws) about this topic. 9 | 10 | ![AWS overview](/images/aws-overview.png) 11 | 12 | Elastic observes cross-VPC, cross-region, cross-AZ, cross-Account. No matter how you organize your environment, Elastic will fit into it. Collect everything in a single Elastic environment and authorize only the relevant team(s) for it. Even if you are responsible for observing multiple different cloud providers or hybrid environments, Elastic can help you get better insights into what is happening in one single tool. 13 | 14 | Elastic supports collecting data via different ways. Using the Elastic Agent, but also [agentless](https://serverlessrepo.aws.amazon.com/applications/eu-central-1/267093732750/elastic-serverless-forwarder) and native integrations are available. In the introduction, we already learned about the Elastic Agent and how it can get used. We will continue using the agent to observe the AWS platform and the apps you are running in it. 15 | 16 | However, if you prefer not using the Elastic Agent, you can collect the same data using the [Elastic serverless forwarder](https://serverlessrepo.aws.amazon.com/applications/eu-central-1/267093732750/elastic-serverless-forwarder) which is a Lambda function that is able to collect the same data without the need to deploy an agent. 17 | 18 | ![AWS serverless overview](/images/aws-serverless-overview.png) 19 | -------------------------------------------------------------------------------- /terraform/terraform/service-data.tf: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------- 2 | # Load Index Mapping 3 | # ------------------------------------------------------------- 4 | 5 | data "external" "elastic_create_services_index" { 6 | query = { 7 | 8 | elastic_endpoint = ec_deployment.elastic_deployment.elasticsearch[0].https_endpoint 9 | elastic_username = ec_deployment.elastic_deployment.elasticsearch_username 10 | elastic_password = ec_deployment.elastic_deployment.elasticsearch_password 11 | elastic_index_name = "services" 12 | elastic_json_body = templatefile("${path.module}/../json_templates/services-index.json",{}) 13 | } 14 | program = ["sh", "${path.module}/../lib/elastic_api/es_create_mapping.sh" ] 15 | depends_on = [ec_deployment.elastic_deployment] 16 | } 17 | 18 | # ----------------------------------------------------------- -- 19 | # Load Data 20 | # ------------------------------------------------------------- 21 | 22 | data "external" "elastic_fill_services_index" { 23 | query = { 24 | elastic_endpoint = ec_deployment.elastic_deployment.elasticsearch[0].https_endpoint 25 | elastic_username = ec_deployment.elastic_deployment.elasticsearch_username 26 | elastic_password = ec_deployment.elastic_deployment.elasticsearch_password 27 | elastic_index_name = "services" 28 | elastic_json_body = templatefile("${path.module}/../json_templates/services-data.ndjson",{}) 29 | } 30 | program = ["sh", "${path.module}/../lib/elastic_api/es_bulk.sh" ] 31 | depends_on = [data.external.elastic_create_services_index] 32 | } 33 | 34 | -------------------------------------------------------------------------------- /terraform/terraform/logs-cloudwatch.tf: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------- 2 | # Get all Log Groups 3 | # ------------------------------------------------------------- 4 | 5 | # TODO: Only load necessary log groups 6 | data "aws_cloudwatch_log_groups" "all" { 7 | log_group_name_prefix = "/aws/lambda/sample-app-dev" 8 | } 9 | 10 | # ------------------------------------------------------------- 11 | # Data Collection 12 | # -- For Cloudwatch we use Elastic Agent to collect data from each log group 13 | # ------------------------------------------------------------- 14 | 15 | # data "external" "elastic_add_cw_integrations" { 16 | # for_each=data.aws_cloudwatch_log_groups.all.arns 17 | # query = { 18 | # kibana_endpoint = ec_deployment.elastic_deployment.kibana[0].https_endpoint 19 | # elastic_username = ec_deployment.elastic_deployment.elasticsearch_username 20 | # elastic_password = ec_deployment.elastic_deployment.elasticsearch_password 21 | # elastic_json_body = templatefile("${path.module}/../json_templates/aws_cw_integration.json", 22 | # { 23 | # "name_suffix": each.key, 24 | # //"log_group_name": each.value.log_group_names, 25 | # "log_group_arn": each.value, 26 | # "policy_id": data.external.elastic_create_policy.result.id, 27 | # "access_key": var.aws_access_key, 28 | # "access_secret": var.aws_secret_key, 29 | # } 30 | # ) 31 | # } 32 | # program = ["sh", "${path.module}/../lib/elastic_api/kb_add_integration_to_policy.sh" ] 33 | # depends_on = [data.external.elastic_create_policy, data.aws_cloudwatch_log_groups.all] 34 | # } 35 | 36 | # ------------------------------------------------------------- 37 | # Data Collection 38 | # -- using the serverless forwarder 39 | # ------------------------------------------------------------- 40 | 41 | -------------------------------------------------------------------------------- /page/public/css/featherlight.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Featherlight - ultra slim jQuery lightbox 3 | * Version 1.7.13 - http://noelboss.github.io/featherlight/ 4 | * 5 | * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com) 6 | * MIT Licensed. 7 | **/ 8 | html.with-featherlight{overflow:hidden}.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight link.featherlight-inner,.featherlight script.featherlight-inner,.featherlight style.featherlight-inner{display:none}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font-family:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000;border:0;padding:0}.featherlight .featherlight-close-icon::-moz-focus-inner{border:0;padding:0}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0;-webkit-overflow-scrolling:touch}.featherlight iframe{border:0}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:0;margin-right:0;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}@media print{html.with-featherlight>*>:not(.featherlight){display:none}} -------------------------------------------------------------------------------- /page/public/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 404 Page not found 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 37 | 38 | 39 | 40 | 41 | 42 |
    43 |
    44 |
    45 |
    46 |

    Error

    47 |

    48 |

    49 |

    Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

    50 |

    51 |

    Go to homepage

    52 |

    Page not found!

    53 |
    54 |
    55 | 56 |
    57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/css/featherlight.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Featherlight - ultra slim jQuery lightbox 3 | * Version 1.7.13 - http://noelboss.github.io/featherlight/ 4 | * 5 | * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com) 6 | * MIT Licensed. 7 | **/ 8 | html.with-featherlight{overflow:hidden}.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight link.featherlight-inner,.featherlight script.featherlight-inner,.featherlight style.featherlight-inner{display:none}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font-family:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000;border:0;padding:0}.featherlight .featherlight-close-icon::-moz-focus-inner{border:0;padding:0}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0;-webkit-overflow-scrolling:touch}.featherlight iframe{border:0}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:0;margin-right:0;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}@media print{html.with-featherlight>*>:not(.featherlight){display:none}} -------------------------------------------------------------------------------- /terraform/terraform/config.tftpl: -------------------------------------------------------------------------------- 1 | inputs: 2 | %{ for values in s3-sqs-objs ~} 3 | - type: "s3-sqs" 4 | id: "${values.arn}" 5 | outputs: 6 | - type: "elasticsearch" 7 | args: 8 | elasticsearch_url: "${elasticsearch_url}" 9 | username: "${elasticsearch_user}" 10 | password: "${elasticsearch_password}" 11 | es_datastream_name: "${values.datastream}" 12 | batch_max_actions: 500 13 | batch_max_bytes: 10485760 14 | %{ endfor ~} 15 | # - type: "sqs" 16 | # id: "arn:aws:sqs:%REGION%:%ACCOUNT%:%QUEUENAME%" 17 | # outputs: 18 | # - type: "elasticsearch" 19 | # args: 20 | # elasticsearch_url: "${elasticsearch_url}" 21 | # username: "${elasticsearch_user}" 22 | # password: "${elasticsearch_password}" 23 | # es_datastream_name: "logs-generic-default" 24 | # batch_max_actions: 500 25 | # batch_max_bytes: 10485760 26 | # - type: "kinesis-data-stream" 27 | # id: "arn:aws:kinesis:%REGION%:%ACCOUNT%:stream/%STREAMNAME%" 28 | # outputs: 29 | # - type: "elasticsearch" 30 | # args: 31 | # elasticsearch_url: "${elasticsearch_url}" 32 | # username: "${elasticsearch_user}" 33 | # password: "${elasticsearch_password}" 34 | # es_datastream_name: "logs-generic-default" 35 | # batch_max_actions: 500 36 | # batch_max_bytes: 10485760 37 | %{ for arn in cw-logs-objs ~} 38 | - type: "cloudwatch-logs" 39 | id: "${arn}:*" 40 | outputs: 41 | - type: "elasticsearch" 42 | args: 43 | elasticsearch_url: "${elasticsearch_url}" 44 | username: "${elasticsearch_user}" 45 | password: "${elasticsearch_password}" 46 | es_datastream_name: "logs-aws.cloudwatch_logs-esf" 47 | batch_max_actions: 500 48 | batch_max_bytes: 10485760 49 | %{ endfor ~} -------------------------------------------------------------------------------- /page/public/css/hybrid.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid) 4 | 5 | */ 6 | 7 | /*background color*/ 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #1d1f21; 13 | } 14 | 15 | /*selection color*/ 16 | .hljs::selection, 17 | .hljs span::selection { 18 | background: #373b41; 19 | } 20 | 21 | .hljs::-moz-selection, 22 | .hljs span::-moz-selection { 23 | background: #373b41; 24 | } 25 | 26 | /*foreground color*/ 27 | .hljs { 28 | color: #c5c8c6; 29 | } 30 | 31 | /*color: fg_yellow*/ 32 | .hljs-title, 33 | .hljs-name { 34 | color: #f0c674; 35 | } 36 | 37 | /*color: fg_comment*/ 38 | .hljs-comment, 39 | .hljs-meta, 40 | .hljs-meta .hljs-keyword { 41 | color: #707880; 42 | } 43 | 44 | /*color: fg_red*/ 45 | .hljs-number, 46 | .hljs-symbol, 47 | .hljs-literal, 48 | .hljs-deletion, 49 | .hljs-link { 50 | color: #cc6666 51 | } 52 | 53 | /*color: fg_green*/ 54 | .hljs-string, 55 | .hljs-doctag, 56 | .hljs-addition, 57 | .hljs-regexp, 58 | .hljs-selector-attr, 59 | .hljs-selector-pseudo { 60 | color: #b5bd68; 61 | } 62 | 63 | /*color: fg_purple*/ 64 | .hljs-attribute, 65 | .hljs-code, 66 | .hljs-selector-id { 67 | color: #b294bb; 68 | } 69 | 70 | /*color: fg_blue*/ 71 | .hljs-keyword, 72 | .hljs-selector-tag, 73 | .hljs-bullet, 74 | .hljs-tag { 75 | color: #81a2be; 76 | } 77 | 78 | /*color: fg_aqua*/ 79 | .hljs-subst, 80 | .hljs-variable, 81 | .hljs-template-tag, 82 | .hljs-template-variable { 83 | color: #8abeb7; 84 | } 85 | 86 | /*color: fg_orange*/ 87 | .hljs-type, 88 | .hljs-built_in, 89 | .hljs-builtin-name, 90 | .hljs-quote, 91 | .hljs-section, 92 | .hljs-selector-class { 93 | color: #de935f; 94 | } 95 | 96 | .hljs-emphasis { 97 | font-style: italic; 98 | } 99 | 100 | .hljs-strong { 101 | font-weight: bold; 102 | } 103 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/css/hybrid.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid) 4 | 5 | */ 6 | 7 | /*background color*/ 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #1d1f21; 13 | } 14 | 15 | /*selection color*/ 16 | .hljs::selection, 17 | .hljs span::selection { 18 | background: #373b41; 19 | } 20 | 21 | .hljs::-moz-selection, 22 | .hljs span::-moz-selection { 23 | background: #373b41; 24 | } 25 | 26 | /*foreground color*/ 27 | .hljs { 28 | color: #c5c8c6; 29 | } 30 | 31 | /*color: fg_yellow*/ 32 | .hljs-title, 33 | .hljs-name { 34 | color: #f0c674; 35 | } 36 | 37 | /*color: fg_comment*/ 38 | .hljs-comment, 39 | .hljs-meta, 40 | .hljs-meta .hljs-keyword { 41 | color: #707880; 42 | } 43 | 44 | /*color: fg_red*/ 45 | .hljs-number, 46 | .hljs-symbol, 47 | .hljs-literal, 48 | .hljs-deletion, 49 | .hljs-link { 50 | color: #cc6666 51 | } 52 | 53 | /*color: fg_green*/ 54 | .hljs-string, 55 | .hljs-doctag, 56 | .hljs-addition, 57 | .hljs-regexp, 58 | .hljs-selector-attr, 59 | .hljs-selector-pseudo { 60 | color: #b5bd68; 61 | } 62 | 63 | /*color: fg_purple*/ 64 | .hljs-attribute, 65 | .hljs-code, 66 | .hljs-selector-id { 67 | color: #b294bb; 68 | } 69 | 70 | /*color: fg_blue*/ 71 | .hljs-keyword, 72 | .hljs-selector-tag, 73 | .hljs-bullet, 74 | .hljs-tag { 75 | color: #81a2be; 76 | } 77 | 78 | /*color: fg_aqua*/ 79 | .hljs-subst, 80 | .hljs-variable, 81 | .hljs-template-tag, 82 | .hljs-template-variable { 83 | color: #8abeb7; 84 | } 85 | 86 | /*color: fg_orange*/ 87 | .hljs-type, 88 | .hljs-built_in, 89 | .hljs-builtin-name, 90 | .hljs-quote, 91 | .hljs-section, 92 | .hljs-selector-class { 93 | color: #de935f; 94 | } 95 | 96 | .hljs-emphasis { 97 | font-style: italic; 98 | } 99 | 100 | .hljs-strong { 101 | font-weight: bold; 102 | } 103 | -------------------------------------------------------------------------------- /page/public/css/atom-one-dark-reasonable.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Atom One Dark With support for ReasonML by Gidi Morris, based off work by Daniel Gamage 4 | 5 | Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax 6 | 7 | */ 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | line-height: 1.3em; 13 | color: #abb2bf; 14 | background: #282c34; 15 | border-radius: 5px; 16 | } 17 | .hljs-keyword, .hljs-operator { 18 | color: #F92672; 19 | } 20 | .hljs-pattern-match { 21 | color: #F92672; 22 | } 23 | .hljs-pattern-match .hljs-constructor { 24 | color: #61aeee; 25 | } 26 | .hljs-function { 27 | color: #61aeee; 28 | } 29 | .hljs-function .hljs-params { 30 | color: #A6E22E; 31 | } 32 | .hljs-function .hljs-params .hljs-typing { 33 | color: #FD971F; 34 | } 35 | .hljs-module-access .hljs-module { 36 | color: #7e57c2; 37 | } 38 | .hljs-constructor { 39 | color: #e2b93d; 40 | } 41 | .hljs-constructor .hljs-string { 42 | color: #9CCC65; 43 | } 44 | .hljs-comment, .hljs-quote { 45 | color: #b18eb1; 46 | font-style: italic; 47 | } 48 | .hljs-doctag, .hljs-formula { 49 | color: #c678dd; 50 | } 51 | .hljs-section, .hljs-name, .hljs-selector-tag, .hljs-deletion, .hljs-subst { 52 | color: #e06c75; 53 | } 54 | .hljs-literal { 55 | color: #56b6c2; 56 | } 57 | .hljs-string, .hljs-regexp, .hljs-addition, .hljs-attribute, .hljs-meta-string { 58 | color: #98c379; 59 | } 60 | .hljs-built_in, .hljs-class .hljs-title { 61 | color: #e6c07b; 62 | } 63 | .hljs-attr, .hljs-variable, .hljs-template-variable, .hljs-type, .hljs-selector-class, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-number { 64 | color: #d19a66; 65 | } 66 | .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-meta, .hljs-selector-id, .hljs-title { 67 | color: #61aeee; 68 | } 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | .hljs-link { 76 | text-decoration: underline; 77 | } 78 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : Children 3 | description : List the child pages of a page 4 | --- 5 | 6 | Use the children shortcode to list the child pages of a page and the further descendants (children's children). By default, the shortcode displays links to the child pages. 7 | 8 | ## Usage 9 | 10 | | Parameter | Default | Description | 11 | |:--|:--|:--| 12 | | page | _current_ | Specify the page name (section name) to display children for | 13 | | style | "li" | Choose the style used to display descendants. It could be any HTML tag name | 14 | | showhidden | "false" | When true, child pages hidden from the menu will be displayed | 15 | | description | "false" | Allows you to include a short text under each page in the list. When no description exists for the page, children shortcode takes the first 70 words of your content. [Read more info about summaries on gohugo.io](https://gohugo.io/content/summaries/) | 16 | | depth | 1 | Enter a number to specify the depth of descendants to display. For example, if the value is 2, the shortcode will display 2 levels of child pages. **Tips:** set 999 to get all descendants | 17 | | sort | none | Sort children by **Weight** - to sort on menu order, **Name** - to sort alphabetically on menu label, **Identifier** - to sort alphabetically on identifier set in frontmatter, and **URL** - to sort by URL | 18 | 19 | ## Demo 20 | 21 | {{%/* children */%}} 22 | 23 | {{% children %}} 24 | 25 | {{%/* children description="true" */%}} 26 | 27 | {{%children description="true" %}} 28 | 29 | {{%/* children depth="3" showhidden="true" */%}} 30 | 31 | {{% children depth="3" showhidden="true" %}} 32 | 33 | {{%/* children style="h2" depth="3" description="true" */%}} 34 | 35 | {{% children style="h2" depth="3" description="true" %}} 36 | 37 | {{%/* children style="div" depth="999" */%}} 38 | 39 | {{% children style="div" depth="999" %}} 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /terraform/terraform/variables.tf: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------- 2 | # Elastic configuration 3 | # ------------------------------------------------------------- 4 | variable "elastic_version" { 5 | type = string 6 | default = "8.5.3" 7 | } 8 | 9 | variable "elastic_region" { 10 | type = string 11 | default = "eu-west-2" 12 | } 13 | 14 | variable "elastic_deployment_name" { 15 | type = string 16 | default = "AWS Workshop" 17 | } 18 | 19 | variable "elastic_deployment_template_id" { 20 | type = string 21 | default = "aws-general-purpose" 22 | } 23 | 24 | # ------------------------------------------------------------- 25 | # AWS configuration 26 | # ------------------------------------------------------------- 27 | 28 | variable "aws_region" { 29 | type = string 30 | default = "eu-west-1" 31 | } 32 | 33 | variable "aws_access_key" { 34 | type = string 35 | } 36 | 37 | variable "aws_secret_key" { 38 | type = string 39 | } 40 | 41 | variable "bucket_name" { 42 | type = string 43 | default = "elastic-sar-bucket" 44 | } 45 | 46 | variable "mapped_elastic_region" { 47 | type = map(string) 48 | default = { 49 | "af-south-1" = "aws-af-south-1" 50 | "ap-east-1" = "aws-ap-east-1" 51 | "ap-northeast-1" = "ap-northeast-1" 52 | "ap-northeast-2" = "aws-ap-northeast-2" 53 | "ap-south-1" = "aws-ap-south-1" 54 | "ap-southeast-1" = "ap-southeast-1" 55 | "ap-southeast-2" = "ap-southeast-2" 56 | "eu-central-1" = "aws-eu-central-1" 57 | "eu-south-1" = "aws-eu-south-1" 58 | "eu-west-1" = "eu-west-1" 59 | "eu-west-2" = "aws-eu-west-2" 60 | "eu-west-3" = "aws-eu-west-3" 61 | "me-south-1" = "aws-me-south-1" 62 | "sa-east-1" = "sa-east-1" 63 | "us-east-1" = "us-east-1" 64 | "us-east-2" = "aws-us-east-2" 65 | "us-west-1" = "us-west-1" 66 | "us-west-2" = "us-west-2" 67 | "ca-central-1" = "aws-ca-central-1" 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/static/css/atom-one-dark-reasonable.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Atom One Dark With support for ReasonML by Gidi Morris, based off work by Daniel Gamage 4 | 5 | Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax 6 | 7 | */ 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | line-height: 1.3em; 13 | color: #abb2bf; 14 | background: #282c34; 15 | border-radius: 5px; 16 | } 17 | .hljs-keyword, .hljs-operator { 18 | color: #F92672; 19 | } 20 | .hljs-pattern-match { 21 | color: #F92672; 22 | } 23 | .hljs-pattern-match .hljs-constructor { 24 | color: #61aeee; 25 | } 26 | .hljs-function { 27 | color: #61aeee; 28 | } 29 | .hljs-function .hljs-params { 30 | color: #A6E22E; 31 | } 32 | .hljs-function .hljs-params .hljs-typing { 33 | color: #FD971F; 34 | } 35 | .hljs-module-access .hljs-module { 36 | color: #7e57c2; 37 | } 38 | .hljs-constructor { 39 | color: #e2b93d; 40 | } 41 | .hljs-constructor .hljs-string { 42 | color: #9CCC65; 43 | } 44 | .hljs-comment, .hljs-quote { 45 | color: #b18eb1; 46 | font-style: italic; 47 | } 48 | .hljs-doctag, .hljs-formula { 49 | color: #c678dd; 50 | } 51 | .hljs-section, .hljs-name, .hljs-selector-tag, .hljs-deletion, .hljs-subst { 52 | color: #e06c75; 53 | } 54 | .hljs-literal { 55 | color: #56b6c2; 56 | } 57 | .hljs-string, .hljs-regexp, .hljs-addition, .hljs-attribute, .hljs-meta-string { 58 | color: #98c379; 59 | } 60 | .hljs-built_in, .hljs-class .hljs-title { 61 | color: #e6c07b; 62 | } 63 | .hljs-attr, .hljs-variable, .hljs-template-variable, .hljs-type, .hljs-selector-class, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-number { 64 | color: #d19a66; 65 | } 66 | .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-meta, .hljs-selector-id, .hljs-title { 67 | color: #61aeee; 68 | } 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | .hljs-link { 76 | text-decoration: underline; 77 | } 78 | -------------------------------------------------------------------------------- /page/content/00_Introduction/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Introduction" 3 | chapter: false 4 | weight: 1 5 | --- 6 | 7 | In this workshop you will learn how to use Elastic in your AWS environment. We will create the full environment for you including an example application. Your task will be to identify issues within this application by using Elastic, to solve these issues, and finally to get an idea about usage. 8 | 9 | ## Workshop Agenda 10 | - Deploy the Elastic environment from AWS Marketplace 11 | - Familiarize yourself with the environment in AWS and in Elastic 12 | - Identify root causes for application-specific issues within the application 13 | - Apply Machine Learning to the data in order to identify hidden patterns 14 | 15 | ## Learning Objectives 16 | - Learn how to start quickly and easily with the Elastic Stack in AWS 17 | - Learn how to solve challenging issues within applications running on AWS 18 | - Learn how to incorporate Machine Learning capabilities for your analysis (AIOps) 19 | 20 | 21 | ## Who should attend 22 | This workshop is targeted towards roles in the following areas: 23 | 24 | *Application Development:* Develop software, apps and services, and are responsible for creating observable code, and helping debug and fix code-level issues in dev & prod. 25 | 26 | *DevOps / SRE / Operations / Application Support:* Responsible for maintaining service availability, performance, and reliability SLAs, and resolving issues when they occur. 27 | 28 | ## Background knowledge for the Workshop 29 | 30 | We start from scratch, so no prior knowledge is needed to complete the workshop. However, having some fundamental Elastic knowledge can help to finish it more efficiently while learning some tips and tricks at the same time. 31 | 32 | ## Expected time 33 | We’ve planned this workshop to be finished within 1-2 hours. You can pause at any time and continue working. However, the trial period for your Elastic Cluster within the AWS Marketplace is 7 days. After that period, your trial will automatically transform into a paid subscription if you do not delete the environment. 34 | -------------------------------------------------------------------------------- /page/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.fr.md: -------------------------------------------------------------------------------- 1 | --- 2 | title : Children (Pages filles) 3 | description : Liste les pages filles de la page 4 | --- 5 | 6 | Utilisez le shortcode *children* pour lister les pages filles de la page et tous ses déscendants (pages filles de pages filles). Par défaut, le shortcode affiche des liens vers les pages filles. 7 | 8 | ## Utilisation 9 | 10 | | Paramètre | Défaut | Description | 11 | |:--|:--|:--| 12 | | page | _current_ | Spécifie le nom de la page (nom de la section) à afficher | 13 | | style | "li" | Choisi le style à utiliser pour afficher les descendants. Cela peut être n'importe quel balise HTML | 14 | | showhidden | "false" | Quand *true*, pages filles cachées dans le menu seront affichées quand même | 15 | | description | "false" | Permet d'inclure le texte de la description de la page sous chaque entré de la liste.
    quand aucune description existe pour la page, le shortcode prend les 70 premiers mots du contenu. [plus d'infos sur gohugo.io](https://gohugo.io/content/summaries/) | 16 | | depth | 1 | Nombre de descendants à afficher. Par exemple, si la valeur est 2, le shortcode va afficher 2 niveaux de pages filels.
    **Astuce:** Utilisez 999 pour avoir tous les descendants| 17 | | sort | | Tri les pages filles par
  • Weight - Poids
  • Name - Nom
  • Identifier - Trier alphabétiquement par identifiant configuré dans le front matter
  • URL - URL
  • | 18 | 19 | ## Démo 20 | 21 | {{%/* children */%}} 22 | 23 | {{% children %}} 24 | 25 | {{%/* children description="true" */%}} 26 | 27 | {{%children description="true" %}} 28 | 29 | {{%/* children depth="3" showhidden="true" */%}} 30 | 31 | {{% children depth="3" showhidden="true" %}} 32 | 33 | {{%/* children style="h2" depth="3" description="true" */%}} 34 | 35 | {{% children style="h2" depth="3" description="true" %}} 36 | 37 | {{%/* children style="div" depth="999" */%}} 38 | 39 | {{% children style="div" depth="999" %}} 40 | 41 | 42 | 43 | 44 | 45 | 46 | --------------------------------------------------------------------------------