Web Development · WDC-97

Elasticsearch and Kibana with .NET

Elasticsearch and Kibana with .NET is a course in using Elasticsearch for search and log storage in .NET applications, from index and mapping design, Query DSL and ES|QL to connecting ASP.NET Core with the official client, shipping logs with Serilog and analysing them in Kibana dashboards and alerts. It suits .NET developers, system administrators, DevOps teams and DBAs.

Updated
From 11,250 THB / person 12,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration18 hours · 3 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

Elasticsearch is a distributed search and analytics engine widely used both for search inside applications and for storing system logs so they can be investigated later, while Kibana is the interface for exploring that data and building charts and dashboards. Yet many .NET teams still rely on the NEST library or older sinks that are no longer developed, configure indices by trial and error, and keep logs until the disk fills up with no lifecycle management at all.

This course shows learners how to use Elastic Stack 9 with .NET 10 the current way. It starts by installing Elasticsearch and Kibana with Docker with security switched on, explains indices, mappings and analysers, and covers Query DSL, aggregations and ES|QL. Learners then connect ASP.NET Core through the official Elastic.Clients.Elasticsearch client, build a search Web API, keep data in sync with the main database and try semantic search. The final day sends application logs with Serilog into data streams, manages retention with ILM and analyses the logs in Kibana with Discover, dashboards and alerts. It closes with a workshop that builds search and log monitoring for a .NET application. (3 days, 6 hours per day, 18 hours in total, Intermediate level.)

What you’ll gain

  • Understand the architecture of Elasticsearch and Kibana, including clusters, nodes, indices and shards
  • Install Elastic Stack 9 with Docker, with security enabled by default
  • Design mappings and analysers that fit the data, including Thai text
  • Search and summarise data with Query DSL, aggregations and ES|QL
  • Connect .NET 10 applications to Elasticsearch with Elastic.Clients.Elasticsearch
  • Build a search Web API and keep data in sync with the main database
  • Send logs from ASP.NET Core with Serilog into data streams and manage retention with ILM
  • Analyse logs and build dashboards and alerts in Kibana

Who this course is for

  • .NET developers who want to add search or log storage to their applications
  • System administrators and DevOps teams who monitor application logs
  • Database administrators (DBAs) who look after search data alongside the main database
  • Teams still on NEST or an older Serilog sink who want to move to current practice
  • Anyone who wants to go beyond ASP.NET Core development into search and data analysis

Prerequisites

  • Able to write C# and have built an application or Web API with ASP.NET Core
  • Understanding of JSON and calling HTTP APIs
  • Basic command-line and Docker skills
  • A laptop with at least 16 GB of RAM that can run the .NET 10 SDK, Docker Desktop and VS Code or Visual Studio 2026

Curriculum

Course Details

This course is the 2026 edition that replaces the previous Elasticsearch and Kibana with .NET course. It has been rewritten from scratch for Elastic Stack 9 and .NET 10. It runs for 3 days, 6 hours per day (18 hours in total, 09:00-16:00), as lectures with labs built on a single sample product catalogue application throughout. Intermediate level. It uses the official Elastic.Clients.Elasticsearch client instead of NEST, Elastic.Serilog.Sinks

instead of Serilog.Sinks.Elasticsearch, and stores logs in data streams with ILM, and it adds ES|QL and semantic search. Every lab runs on the learner's own machine with Docker under the free Basic licence, except semantic search and some alert types, which need a trial licence or an Elastic Cloud trial in the learner's own account. Learners take home a lab guide, source code for every lab and docker-compose files.

Day 1 Elasticsearch Foundations and Search

Section 1: Lab: Elastic Stack 9 and Installing with Docker

  • Elasticsearch use cases: in-app search, log analytics and observability
  • Architecture: clusters, nodes, indices, shards, replicas and the inverted index
  • Install Elasticsearch and Kibana 9 with Docker Compose, with security and TLS
  • The elastic and kibana_system users, and creating API keys for applications
  • Lab: open Kibana and run your first commands in the Dev Tools console

Section 2: Documents, Indices and the REST API

  • Create, read, update and delete documents through the REST API
  • The Bulk API for loading large amounts of data
  • Refresh, near real-time search and their effect on writes
  • Preventing lost updates with optimistic concurrency
  • Lab: load thousands of sample products with the Bulk API

Section 3: Mappings and Text Analysis

  • Dynamic versus explicit mappings, and the cost of letting Elasticsearch guess
  • The text, keyword, date and numeric types, and multi-fields
  • Analysers, tokenisers and filters, including an analyser for Thai
  • Index templates and component templates
  • Lab: design a product mapping and reindex from the old index

Section 4: Lab: Searching with Query DSL

  • match, multi_match, term and range queries
  • bool queries: must, should, filter and must_not
  • Relevance scoring with BM25 and weighting fields with boosts
  • Highlighting, sorting and paging with search_after
  • Lab: search products by keyword with price and category filters

Section 5: Aggregations and ES|QL

  • Bucket aggregations: terms, range and date_histogram
  • Metric aggregations: avg, sum, cardinality and percentiles
  • ES|QL, the piped query language: FROM, WHERE, STATS and SORT
  • Choosing between Query DSL and ES|QL for the task at hand
  • Lab: summarise monthly sales and best-selling products with ES|QL
Day 2 Connecting Elasticsearch to .NET Applications

Section 6: Lab: Getting Started with Elastic.Clients.Elasticsearch

  • Install the official version 9 client and understand version compatibility with Elasticsearch
  • Configure ElasticsearchClientSettings, API keys and certificates
  • Register the client as a singleton through dependency injection
  • What changes when moving from NEST and the version 8 client
  • Lab: index and read documents from C# classes (POCOs)

Section 7: Lab: A Web API for Managing Data

  • Build an ASP.NET Core Web API on .NET 10 with an OpenAPI document
  • Endpoints for index, get, update and delete
  • Bulk indexing from data in the main database
  • Checking responses and handling errors from Elasticsearch
  • Lab: an API that manages a product catalogue in Elasticsearch

Section 8: Searching from .NET Applications

  • Write searches with the fluent API and object initialisers
  • Combine full-text queries with filters coming from the user interface
  • Facets from aggregations, and paging results
  • Autocomplete with search_as_you_type
  • Lab: a product search API with facets and suggestions as you type

Section 9: Keeping Data in Sync and Reindexing

  • Sync patterns: dual writes, the outbox pattern and background jobs
  • A .NET BackgroundService that sends changed data
  • Index aliases for changing mappings without downtime
  • The Reindex API and checking that no data is missing
  • Lab: change a mapping through an alias while the API stays online

Section 10: Semantic Search and Hybrid Search

  • How keyword search differs from semantic search
  • The semantic_text field and inference endpoints
  • Hybrid search that combines BM25 and semantic results with RRF
  • Searching with the MATCH function in ES|QL
  • Lab: search products by the meaning of the query (uses a trial licence)
Day 3 Logging and Analysis with Kibana

Section 11: Lab: Sending Logs from ASP.NET Core with Serilog

  • Structured logging with ILogger and Serilog.AspNetCore
  • Elastic.Serilog.Sinks in place of the older sink, and the ECS format
  • Configure it safely in Program.cs and appsettings.json
  • Add context such as the request ID and user with enrichers
  • Lab: send the Web API's logs and request logs to Elasticsearch

Section 12: Data Streams, ILM and Index Care

  • Data streams for time series data instead of daily indices
  • Index Lifecycle Management: rollover and deleting old data
  • Index Management in Kibana and checking cluster health
  • Snapshot and restore basics
  • Lab: keep logs for 30 days and delete them automatically

Section 13: Lab: Investigating Logs with Kibana Discover

  • Create a data view and choose a time range
  • Search with KQL and filters
  • Use ES|QL in Discover to summarise data and find the cause of problems
  • Save searches and share them with the team
  • Lab: trace the cause of HTTP 500 errors in the Web API logs

Section 14: Dashboards, Alerts and OpenTelemetry

  • Build charts with Lens: histograms, line charts, heat maps and pie charts
  • Combine charts into an application monitoring dashboard
  • Basic alerting rules for unusual increases in errors
  • An overview of OpenTelemetry and EDOT .NET for traces and metrics
  • Lab: a dashboard that tracks the health of the Web API

Section 15: Workshop: Search and Log Monitoring for a .NET Application

  • Brief: an organisation's search system with complete logging
  • Design the mapping, the search API and data synchronisation
  • Ship logs into a data stream and build the team's dashboard
  • Present the work and wrap up with a go-live checklist

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

What is Elasticsearch and how does it differ from a normal database?

Elasticsearch is a distributed search and analytics engine that stores JSON documents in indices and builds an inverted index in advance, so it can run relevance-ranked full-text searches and summarise large volumes of data quickly with aggregations or ES|QL. Data is spread across nodes with shards and replicas, which makes scaling straightforward. It is not designed to replace a relational database for transactions, so the two are often used together, with Elasticsearch handling search and logs.

How do you send logs from ASP.NET Core to Elasticsearch?

A common approach is Serilog. Install Serilog.AspNetCore and Elastic.Serilog.Sinks, Elastic's official sink that replaces the older Serilog.Sinks.Elasticsearch, then configure it in Program.cs or appsettings.json with the Elasticsearch URL and an API key. Write logs through ILogger as usual, and each entry is sent in ECS format to a data stream whose retention can be managed with ILM. Finally, create a data view in Kibana to search the logs and chart them.

How do you run Elasticsearch and Kibana with Docker Compose?

Write a docker-compose.yml with an elasticsearch service that exposes port 9200 with discovery.type set to single-node for development, and a kibana service on port 5601 that points at it. Both must run the same version. Since version 8, security and TLS are enabled by default, so set the passwords for the elastic and kibana_system users properly. Run docker compose up -d and open Kibana at localhost:5601. For a quick trial, Elastic also provides a start-local script.

Who is the Elasticsearch and Kibana with .NET course for, and what should I know beforehand?

It suits .NET developers, system administrators, DevOps teams and DBAs who need to add search, or to store, search and analyse application logs. You should be able to write C# and have built an application or Web API with ASP.NET Core, understand JSON and HTTP APIs, and have basic command-line and Docker skills.

What will I be able to do after the Elasticsearch and Kibana with .NET course?

You will be able to install Elasticsearch and Kibana securely with Docker, design mappings and analysers, write Query DSL, aggregations and ES|QL, connect .NET 10 applications with Elastic.Clients.Elasticsearch, build a Web API for search and data sync, send ASP.NET Core logs with Serilog into data streams with ILM, and analyse logs in Kibana with Discover, dashboards and alerts. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.

Can the Elasticsearch and Kibana with .NET course be run in-house for our team?

Yes. It can be run in-house for your team, with examples adapted to your own work, such as using the log format from .NET applications your team runs, or a focus on moving from NEST to the current client. You can request a quotation from this page, or contact us on LINE @itgenius or by phone on 02-570-8449.