<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-CH">
	<id>https://wiki-docker.iway.ch/kb/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrew.willi</id>
	<title>iWay Knowledge Base - Benutzerbeiträge [de-ch]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-docker.iway.ch/kb/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrew.willi"/>
	<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/wiki/Spezial:Beitr%C3%A4ge/Andrew.willi"/>
	<updated>2026-05-12T15:21:02Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5185</id>
		<title>Opensearch</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5185"/>
		<updated>2026-02-05T08:28:03Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;databox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Anwendung:&lt;br /&gt;
|OpenSearch&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Status:&lt;br /&gt;
|&#039;&#039;&#039;Entwurf&#039;&#039;&#039;/ freigegeben&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ziel==&lt;br /&gt;
Diese Anleitung richtet automatisches Index-Lifecycle-Management ein:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Rollover&#039;&#039;&#039;: Neuen Index erstellen wenn Bedingungen erfüllt sind (Alter + Dokumentenanzahl)&lt;br /&gt;
*&#039;&#039;&#039;Löschen&#039;&#039;&#039;: Alte Indizes nach einer Aufbewahrungsfrist entfernen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
provisioning_v2-000001 → Rollover → provisioning_v2-000002 → Rollover → ...&lt;br /&gt;
                            ↓ (3h später)&lt;br /&gt;
                         LÖSCHEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen und Vorbereitung==&lt;br /&gt;
*Zugang zu OpenSearch Cluster (Admin-Rechte)&lt;br /&gt;
*OpenSearch Dashboard oder API-Zugang (z.B. via curl oder Dev Tools)&lt;br /&gt;
*Python-Anwendung mit &amp;lt;code&amp;gt;opensearch-logger&amp;lt;/code&amp;gt; Bibliothek&lt;br /&gt;
&lt;br /&gt;
==Vorgang 1: Index-Lifecycle einrichten==&lt;br /&gt;
Erstellung der ISM-Policy, Index-Template und des initialen Index für automatisches Rollover und Löschen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|ISM-Policy erstellen&lt;br /&gt;
|Definiert Rollover- und Lösch-Bedingungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Index-Template erstellen&lt;br /&gt;
|Stellt korrekte Einstellungen für neue Indizes sicher&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Initialen Index erstellen&lt;br /&gt;
|Erster Index mit korrekter Benennung&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |4&lt;br /&gt;
|Write-Alias hinzufügen&lt;br /&gt;
|Alias für Schreiboperationen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |5&lt;br /&gt;
|Rollover-Alias am Index setzen&lt;br /&gt;
|Index mit Alias verknüpfen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |6&lt;br /&gt;
|Policy an Index anhängen&lt;br /&gt;
|Lifecycle-Management aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&#039;&#039;&#039;Note: Unter Management/Dev tools kann man die Befehle einfügen und ausführen&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie die &#039;&#039;&#039;ISM-Policy&#039;&#039;&#039; (JSON editor oder Visual editor):[[Datei:ISM-Policy Dashboard.png|none|1210x1210px]]&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&#039;&#039;&#039;Bedingungen:&#039;&#039;&#039;&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_index_age: 1h&amp;lt;/code&amp;gt; - Index muss ≥1 Stunde alt sein&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_rollover_age: 3h&amp;lt;/code&amp;gt; - Löschen 3 Stunden nach Rollover&lt;br /&gt;
#:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Rollover-Bedingungen sind &#039;&#039;&#039;keine&#039;&#039;&#039; UND Bedingung. Wenn man zum Beispiel &amp;lt;code&amp;gt;min&#039;&#039;index&#039;&#039;age&amp;lt;/code&amp;gt;  und &amp;lt;code&amp;gt;min_&amp;lt;u&amp;gt;&#039;&#039;doc_&#039;&#039;count&amp;lt;/u&amp;gt;&amp;lt;/code&amp;gt;  und eines davon die Bedingung erfüllt, wird das Rollover ausgeführt&amp;lt;br /&amp;gt; &lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie das &#039;&#039;&#039;Index-Template&#039;&#039;&#039;:[[Datei:Index-Template.png|none|976x976px]]&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie den &#039;&#039;&#039;initialen Index (Visual editor wurde nicht mehr genutzt, weil es mühsam ist)&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:Der Index muss mit einer Nummer enden (z.B. -000001).&lt;br /&gt;
#&#039;&#039;&#039;Fügen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Write-Alias&#039;&#039;&#039; hinzu:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Setzen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Rollover-Alias&#039;&#039;&#039; am Index:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Hängen&#039;&#039;&#039; Sie die &#039;&#039;&#039;Policy&#039;&#039;&#039; an den Index an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &#039;&#039;&#039;Alle Befehle in Reihenfolge&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
// 1. Policy erstellen&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 2. Template erstellen&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 3. Initialen Index erstellen&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&lt;br /&gt;
// 4. Write-Alias hinzufügen&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 5. Rollover-Alias am Index setzen&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 6. Policy anhängen&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 2: Anwendung konfigurieren==&lt;br /&gt;
Konfiguration der Python-Anwendung zur Verwendung des Alias anstelle von datumsbasierten Indizes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Logging-Konfiguration anpassen&lt;br /&gt;
|index_rotate auf NEVER setzen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Anwendung neu starten&lt;br /&gt;
|Änderungen aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Passen&#039;&#039;&#039; Sie die &#039;&#039;&#039;settings.py&#039;&#039;&#039; an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&#039;opensearch&#039;: {&lt;br /&gt;
    &amp;quot;level&amp;quot;: &#039;DEBUG&#039;,&lt;br /&gt;
    &amp;quot;class&amp;quot;: &#039;opensearch_logger.OpenSearchHandler&#039;,&lt;br /&gt;
    &amp;quot;index_name&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,      # Schreibe zum Alias&lt;br /&gt;
    &amp;quot;index_rotate&amp;quot;: &amp;quot;NEVER&amp;quot;,               # Datums-Suffix deaktivieren&lt;br /&gt;
    &amp;quot;hosts&amp;quot;: [{&amp;quot;host&amp;quot;: OPENSEARCH_LOGGING_SERVER, &amp;quot;port&amp;quot;: 9200}],&lt;br /&gt;
    &amp;quot;http_auth&amp;quot;: (&amp;quot;admin&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
    &amp;quot;http_compress&amp;quot;: True,&lt;br /&gt;
    &amp;quot;filters&amp;quot;: [&#039;correlation_id&#039;],&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Starten&#039;&#039;&#039; Sie die &#039;&#039;&#039;Anwendung neu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 3: Überprüfung und Fehlerbehebung==&lt;br /&gt;
Befehle zur Überprüfung des Status und zur Fehlerbehebung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Indizes prüfen&lt;br /&gt;
|Alle provisioning Indizes anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Alias prüfen&lt;br /&gt;
|Alias-Konfiguration verifizieren&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Policy-Status prüfen&lt;br /&gt;
|ISM-Status aller Indizes anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Überprüfungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Alle Indizes anzeigen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _cat/indices/provisioning_v2-*?v&amp;amp;h=index,docs.count,creation.date.string&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Alias-Konfiguration prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _alias/provisioning_v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy-Status prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _plugins/_ism/explain/provisioning_v2-*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fehlerbehebungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Bei Rollover-Fehler manuell wiederholen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/retry/provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy an Index anhängen&#039;&#039;&#039; (falls nicht angehängt):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Aktualisierte Policy auf bestehende Indizes anwenden&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/change_policy/provisioning_v2-*&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Manueller Rollover erzwingen&#039;&#039;&#039; (umgeht Bedingungen):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST provisioning_v2/_rollover&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Index Pattern erstellen ===&lt;br /&gt;
Dashboards Management -&amp;gt; Index pattern -&amp;gt; Create index pattern&lt;br /&gt;
&lt;br /&gt;
[[Datei:Index_pattern_OpenSearch_Dashboards.png|alternativtext=Index Pattern erstellen|rahmenlos|1083x1083px]]&lt;br /&gt;
&lt;br /&gt;
==Häufige Fehler==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
!Fehler&lt;br /&gt;
!Ursache&lt;br /&gt;
!Lösung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Missing rollover_alias index setting&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index weiss nicht welchen Alias verwenden&lt;br /&gt;
|&amp;lt;code&amp;gt;PUT index/_settings&amp;lt;/code&amp;gt; mit rollover_alias&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;duplicated alias in index template&amp;lt;/code&amp;gt;&lt;br /&gt;
|Template hat &amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; Abschnitt&lt;br /&gt;
|&amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; aus Template entfernen&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Conditions not met&amp;lt;/code&amp;gt;&lt;br /&gt;
|min_doc_count UND min_index_age nicht beide erfüllt&lt;br /&gt;
|Warten, oder Schwellwerte zum Testen senken&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;alias name conflicts with index&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index und Alias haben gleichen Namen&lt;br /&gt;
|Index löschen oder anderen Alias-Namen verwenden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Lifecycle-Ablauf==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. App schreibt zum Alias &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
           ↓&lt;br /&gt;
2. Alias zeigt auf aktuellen Index (z.B. -000001)&lt;br /&gt;
           ↓&lt;br /&gt;
3. Wenn ≥5 Dokumente UND ≥1h alt → ROLLOVER&lt;br /&gt;
           ↓&lt;br /&gt;
4. Neuer Index erstellt (-000002), Alias wird verschoben&lt;br /&gt;
           ↓&lt;br /&gt;
5. Alter Index wartet im &amp;quot;rollover&amp;quot; Zustand&lt;br /&gt;
           ↓&lt;br /&gt;
6. Nach 3h seit Rollover → ÜBERGANG zu delete&lt;br /&gt;
           ↓&lt;br /&gt;
7. Index wird GELÖSCHT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Kategorie:Opensearch]]&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5184</id>
		<title>Opensearch</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5184"/>
		<updated>2026-02-05T08:23:41Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;databox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Anwendung:&lt;br /&gt;
|OpenSearch&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Status:&lt;br /&gt;
|&#039;&#039;&#039;Entwurf&#039;&#039;&#039;/ freigegeben&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ziel==&lt;br /&gt;
Diese Anleitung richtet automatisches Index-Lifecycle-Management ein:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Rollover&#039;&#039;&#039;: Neuen Index erstellen wenn Bedingungen erfüllt sind (Alter + Dokumentenanzahl)&lt;br /&gt;
*&#039;&#039;&#039;Löschen&#039;&#039;&#039;: Alte Indizes nach einer Aufbewahrungsfrist entfernen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
provisioning_v2-000001 → Rollover → provisioning_v2-000002 → Rollover → ...&lt;br /&gt;
                            ↓ (3h später)&lt;br /&gt;
                         LÖSCHEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen und Vorbereitung==&lt;br /&gt;
*Zugang zu OpenSearch Cluster (Admin-Rechte)&lt;br /&gt;
*OpenSearch Dashboard oder API-Zugang (z.B. via curl oder Dev Tools)&lt;br /&gt;
*Python-Anwendung mit &amp;lt;code&amp;gt;opensearch-logger&amp;lt;/code&amp;gt; Bibliothek&lt;br /&gt;
&lt;br /&gt;
==Vorgang 1: Index-Lifecycle einrichten==&lt;br /&gt;
Erstellung der ISM-Policy, Index-Template und des initialen Index für automatisches Rollover und Löschen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|ISM-Policy erstellen&lt;br /&gt;
|Definiert Rollover- und Lösch-Bedingungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Index-Template erstellen&lt;br /&gt;
|Stellt korrekte Einstellungen für neue Indizes sicher&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Initialen Index erstellen&lt;br /&gt;
|Erster Index mit korrekter Benennung&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |4&lt;br /&gt;
|Write-Alias hinzufügen&lt;br /&gt;
|Alias für Schreiboperationen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |5&lt;br /&gt;
|Rollover-Alias am Index setzen&lt;br /&gt;
|Index mit Alias verknüpfen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |6&lt;br /&gt;
|Policy an Index anhängen&lt;br /&gt;
|Lifecycle-Management aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&#039;&#039;&#039;Note: Unter Management/Dev tools kann man die Befehle einfügen und ausführen&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie die &#039;&#039;&#039;ISM-Policy&#039;&#039;&#039; (JSON editor oder Visual editor):[[Datei:ISM-Policy Dashboard.png|none|1210x1210px]]&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&#039;&#039;&#039;Bedingungen:&#039;&#039;&#039;&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_index_age: 1h&amp;lt;/code&amp;gt; - Index muss ≥1 Stunde alt sein&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_rollover_age: 3h&amp;lt;/code&amp;gt; - Löschen 3 Stunden nach Rollover&lt;br /&gt;
#:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Rollover-Bedingungen sind &#039;&#039;&#039;keine&#039;&#039;&#039; UND Bedingung. Wenn man zum Beispiel &amp;lt;code&amp;gt;min&#039;&#039;index&#039;&#039;age&amp;lt;/code&amp;gt;  und &amp;lt;code&amp;gt;min_&amp;lt;u&amp;gt;&#039;&#039;doc_&#039;&#039;count&amp;lt;/u&amp;gt;&amp;lt;/code&amp;gt;  und eines davon die Bedingung erfüllt, wird das Rollover ausgeführt&amp;lt;br /&amp;gt; &lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie das &#039;&#039;&#039;Index-Template&#039;&#039;&#039;:[[Datei:Index-Template.png|none|976x976px]]&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie den &#039;&#039;&#039;initialen Index (Visual editor wurde nicht mehr genutzt, weil es mühsam ist)&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:Der Index muss mit einer Nummer enden (z.B. -000001).&lt;br /&gt;
#&#039;&#039;&#039;Fügen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Write-Alias&#039;&#039;&#039; hinzu:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Setzen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Rollover-Alias&#039;&#039;&#039; am Index:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Hängen&#039;&#039;&#039; Sie die &#039;&#039;&#039;Policy&#039;&#039;&#039; an den Index an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &#039;&#039;&#039;Alle Befehle in Reihenfolge&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
// 1. Policy erstellen&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 2. Template erstellen&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 3. Initialen Index erstellen&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&lt;br /&gt;
// 4. Write-Alias hinzufügen&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 5. Rollover-Alias am Index setzen&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 6. Policy anhängen&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 2: Anwendung konfigurieren==&lt;br /&gt;
Konfiguration der Python-Anwendung zur Verwendung des Alias anstelle von datumsbasierten Indizes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Logging-Konfiguration anpassen&lt;br /&gt;
|index_rotate auf NEVER setzen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Anwendung neu starten&lt;br /&gt;
|Änderungen aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Passen&#039;&#039;&#039; Sie die &#039;&#039;&#039;settings.py&#039;&#039;&#039; an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&#039;opensearch&#039;: {&lt;br /&gt;
    &amp;quot;level&amp;quot;: &#039;DEBUG&#039;,&lt;br /&gt;
    &amp;quot;class&amp;quot;: &#039;opensearch_logger.OpenSearchHandler&#039;,&lt;br /&gt;
    &amp;quot;index_name&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,      # Schreibe zum Alias&lt;br /&gt;
    &amp;quot;index_rotate&amp;quot;: &amp;quot;NEVER&amp;quot;,               # Datums-Suffix deaktivieren&lt;br /&gt;
    &amp;quot;hosts&amp;quot;: [{&amp;quot;host&amp;quot;: OPENSEARCH_LOGGING_SERVER, &amp;quot;port&amp;quot;: 9200}],&lt;br /&gt;
    &amp;quot;http_auth&amp;quot;: (&amp;quot;admin&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
    &amp;quot;http_compress&amp;quot;: True,&lt;br /&gt;
    &amp;quot;filters&amp;quot;: [&#039;correlation_id&#039;],&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Starten&#039;&#039;&#039; Sie die &#039;&#039;&#039;Anwendung neu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 3: Überprüfung und Fehlerbehebung==&lt;br /&gt;
Befehle zur Überprüfung des Status und zur Fehlerbehebung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Indizes prüfen&lt;br /&gt;
|Alle provisioning Indizes anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Alias prüfen&lt;br /&gt;
|Alias-Konfiguration verifizieren&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Policy-Status prüfen&lt;br /&gt;
|ISM-Status aller Indizes anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Überprüfungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Alle Indizes anzeigen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _cat/indices/provisioning_v2-*?v&amp;amp;h=index,docs.count,creation.date.string&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Alias-Konfiguration prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _alias/provisioning_v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy-Status prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _plugins/_ism/explain/provisioning_v2-*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fehlerbehebungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Bei Rollover-Fehler manuell wiederholen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/retry/provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy an Index anhängen&#039;&#039;&#039; (falls nicht angehängt):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Aktualisierte Policy auf bestehende Indizes anwenden&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/change_policy/provisioning_v2-*&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Manueller Rollover erzwingen&#039;&#039;&#039; (umgeht Bedingungen):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST provisioning_v2/_rollover&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Index Pattern erstellen ===&lt;br /&gt;
Dashboards Management -&amp;gt; Index pattern -&amp;gt; Create index pattern&lt;br /&gt;
&lt;br /&gt;
[[Datei:Index_pattern_OpenSearch_Dashboards.png|alternativtext=Index Pattern erstellen|rahmenlos|1083x1083px]]&lt;br /&gt;
&lt;br /&gt;
==Häufige Fehler==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
!Fehler&lt;br /&gt;
!Ursache&lt;br /&gt;
!Lösung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Missing rollover_alias index setting&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index weiss nicht welchen Alias verwenden&lt;br /&gt;
|&amp;lt;code&amp;gt;PUT index/_settings&amp;lt;/code&amp;gt; mit rollover_alias&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;duplicated alias in index template&amp;lt;/code&amp;gt;&lt;br /&gt;
|Template hat &amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; Abschnitt&lt;br /&gt;
|&amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; aus Template entfernen&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Conditions not met&amp;lt;/code&amp;gt;&lt;br /&gt;
|min_doc_count UND min_index_age nicht beide erfüllt&lt;br /&gt;
|Warten, oder Schwellwerte zum Testen senken&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;alias name conflicts with index&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index und Alias haben gleichen Namen&lt;br /&gt;
|Index löschen oder anderen Alias-Namen verwenden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Lifecycle-Ablauf==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. App schreibt zum Alias &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
           ↓&lt;br /&gt;
2. Alias zeigt auf aktuellen Index (z.B. -000001)&lt;br /&gt;
           ↓&lt;br /&gt;
3. Wenn ≥5 Dokumente UND ≥1h alt → ROLLOVER&lt;br /&gt;
           ↓&lt;br /&gt;
4. Neuer Index erstellt (-000002), Alias wird verschoben&lt;br /&gt;
           ↓&lt;br /&gt;
5. Alter Index wartet im &amp;quot;rollover&amp;quot; Zustand&lt;br /&gt;
           ↓&lt;br /&gt;
6. Nach 3h seit Rollover → ÜBERGANG zu delete&lt;br /&gt;
           ↓&lt;br /&gt;
7. Index wird GELÖSCHT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5183</id>
		<title>Opensearch</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5183"/>
		<updated>2026-02-05T08:22:18Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;databox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Anwendung:&lt;br /&gt;
|OpenSearch&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Status:&lt;br /&gt;
|&#039;&#039;&#039;Entwurf&#039;&#039;&#039;/ freigegeben&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ziel==&lt;br /&gt;
Diese Anleitung richtet automatisches Index-Lifecycle-Management ein:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Rollover&#039;&#039;&#039;: Neuen Index erstellen wenn Bedingungen erfüllt sind (Alter + Dokumentenanzahl)&lt;br /&gt;
*&#039;&#039;&#039;Löschen&#039;&#039;&#039;: Alte Indizes nach einer Aufbewahrungsfrist entfernen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
provisioning_v2-000001 → Rollover → provisioning_v2-000002 → Rollover → ...&lt;br /&gt;
                            ↓ (3h später)&lt;br /&gt;
                         LÖSCHEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen und Vorbereitung==&lt;br /&gt;
*Zugang zu OpenSearch Cluster (Admin-Rechte)&lt;br /&gt;
*OpenSearch Dashboard oder API-Zugang (z.B. via curl oder Dev Tools)&lt;br /&gt;
*Python-Anwendung mit &amp;lt;code&amp;gt;opensearch-logger&amp;lt;/code&amp;gt; Bibliothek&lt;br /&gt;
&lt;br /&gt;
==Vorgang 1: Index-Lifecycle einrichten==&lt;br /&gt;
Erstellung der ISM-Policy, Index-Template und des initialen Index für automatisches Rollover und Löschen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|ISM-Policy erstellen&lt;br /&gt;
|Definiert Rollover- und Lösch-Bedingungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Index-Template erstellen&lt;br /&gt;
|Stellt korrekte Einstellungen für neue Indizes sicher&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Initialen Index erstellen&lt;br /&gt;
|Erster Index mit korrekter Benennung&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |4&lt;br /&gt;
|Write-Alias hinzufügen&lt;br /&gt;
|Alias für Schreiboperationen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |5&lt;br /&gt;
|Rollover-Alias am Index setzen&lt;br /&gt;
|Index mit Alias verknüpfen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |6&lt;br /&gt;
|Policy an Index anhängen&lt;br /&gt;
|Lifecycle-Management aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&#039;&#039;&#039;Note: Unter Management/Dev tools kann man die Befehle einfügen und ausführen&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie die &#039;&#039;&#039;ISM-Policy&#039;&#039;&#039; (JSON editor oder Visual editor):[[Datei:ISM-Policy Dashboard.png|none|1210x1210px]]&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&#039;&#039;&#039;Bedingungen:&#039;&#039;&#039;&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_index_age: 1h&amp;lt;/code&amp;gt; - Index muss ≥1 Stunde alt sein&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_rollover_age: 3h&amp;lt;/code&amp;gt; - Löschen 3 Stunden nach Rollover&lt;br /&gt;
#:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Rollover-Bedingungen sind &#039;&#039;&#039;keine&#039;&#039;&#039; UND Bedingung. Wenn man zum Beispiel &amp;lt;code&amp;gt;min&#039;&#039;index&#039;&#039;age&amp;lt;/code&amp;gt;  und &amp;lt;code&amp;gt;min_&amp;lt;u&amp;gt;&#039;&#039;doc_&#039;&#039;count&amp;lt;/u&amp;gt;&amp;lt;/code&amp;gt;  und eines davon die Bedingung erfüllt, wird das Rollover ausgeführt&amp;lt;br /&amp;gt; &lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie das &#039;&#039;&#039;Index-Template&#039;&#039;&#039;:[[Datei:Index-Template.png|none|976x976px]]&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie den &#039;&#039;&#039;initialen Index (Visual editor wurde nicht mehr genutzt, weil es mühsam ist)&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:Der Index muss mit einer Nummer enden (z.B. -000001).&lt;br /&gt;
#&#039;&#039;&#039;Fügen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Write-Alias&#039;&#039;&#039; hinzu:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Setzen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Rollover-Alias&#039;&#039;&#039; am Index:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Hängen&#039;&#039;&#039; Sie die &#039;&#039;&#039;Policy&#039;&#039;&#039; an den Index an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &#039;&#039;&#039;Alle Befehle in Reihenfolge&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
// 1. Policy erstellen&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 2. Template erstellen&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 3. Initialen Index erstellen&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&lt;br /&gt;
// 4. Write-Alias hinzufügen&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 5. Rollover-Alias am Index setzen&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 6. Policy anhängen&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 2: Anwendung konfigurieren==&lt;br /&gt;
Konfiguration der Python-Anwendung zur Verwendung des Alias anstelle von datumsbasierten Indizes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Logging-Konfiguration anpassen&lt;br /&gt;
|index_rotate auf NEVER setzen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Anwendung neu starten&lt;br /&gt;
|Änderungen aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Passen&#039;&#039;&#039; Sie die &#039;&#039;&#039;settings.py&#039;&#039;&#039; an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&#039;opensearch&#039;: {&lt;br /&gt;
    &amp;quot;level&amp;quot;: &#039;DEBUG&#039;,&lt;br /&gt;
    &amp;quot;class&amp;quot;: &#039;opensearch_logger.OpenSearchHandler&#039;,&lt;br /&gt;
    &amp;quot;index_name&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,      # Schreibe zum Alias&lt;br /&gt;
    &amp;quot;index_rotate&amp;quot;: &amp;quot;NEVER&amp;quot;,               # Datums-Suffix deaktivieren&lt;br /&gt;
    &amp;quot;hosts&amp;quot;: [{&amp;quot;host&amp;quot;: OPENSEARCH_LOGGING_SERVER, &amp;quot;port&amp;quot;: 9200}],&lt;br /&gt;
    &amp;quot;http_auth&amp;quot;: (&amp;quot;admin&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
    &amp;quot;http_compress&amp;quot;: True,&lt;br /&gt;
    &amp;quot;filters&amp;quot;: [&#039;correlation_id&#039;],&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Starten&#039;&#039;&#039; Sie die &#039;&#039;&#039;Anwendung neu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 3: Überprüfung und Fehlerbehebung==&lt;br /&gt;
Befehle zur Überprüfung des Status und zur Fehlerbehebung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Indizes prüfen&lt;br /&gt;
|Alle provisioning Indizes anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Alias prüfen&lt;br /&gt;
|Alias-Konfiguration verifizieren&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Policy-Status prüfen&lt;br /&gt;
|ISM-Status aller Indizes anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Überprüfungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Alle Indizes anzeigen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _cat/indices/provisioning_v2-*?v&amp;amp;h=index,docs.count,creation.date.string&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Alias-Konfiguration prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _alias/provisioning_v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy-Status prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _plugins/_ism/explain/provisioning_v2-*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fehlerbehebungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Bei Rollover-Fehler manuell wiederholen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/retry/provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy an Index anhängen&#039;&#039;&#039; (falls nicht angehängt):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Aktualisierte Policy auf bestehende Indizes anwenden&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/change_policy/provisioning_v2-*&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Manueller Rollover erzwingen&#039;&#039;&#039; (umgeht Bedingungen):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST provisioning_v2/_rollover&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Index Pattern erstellen ===&lt;br /&gt;
Dashboards Management -&amp;gt; Index pattern -&amp;gt; Create index pattern&lt;br /&gt;
&lt;br /&gt;
[[Datei:Index pattern OpenSearch Dashboards.png|links|rahmenlos|1083x1083px|Index Pattern erstellen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Häufige Fehler==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
!Fehler&lt;br /&gt;
!Ursache&lt;br /&gt;
!Lösung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Missing rollover_alias index setting&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index weiss nicht welchen Alias verwenden&lt;br /&gt;
|&amp;lt;code&amp;gt;PUT index/_settings&amp;lt;/code&amp;gt; mit rollover_alias&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;duplicated alias in index template&amp;lt;/code&amp;gt;&lt;br /&gt;
|Template hat &amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; Abschnitt&lt;br /&gt;
|&amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; aus Template entfernen&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Conditions not met&amp;lt;/code&amp;gt;&lt;br /&gt;
|min_doc_count UND min_index_age nicht beide erfüllt&lt;br /&gt;
|Warten, oder Schwellwerte zum Testen senken&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;alias name conflicts with index&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index und Alias haben gleichen Namen&lt;br /&gt;
|Index löschen oder anderen Alias-Namen verwenden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Lifecycle-Ablauf==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. App schreibt zum Alias &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
           ↓&lt;br /&gt;
2. Alias zeigt auf aktuellen Index (z.B. -000001)&lt;br /&gt;
           ↓&lt;br /&gt;
3. Wenn ≥5 Dokumente UND ≥1h alt → ROLLOVER&lt;br /&gt;
           ↓&lt;br /&gt;
4. Neuer Index erstellt (-000002), Alias wird verschoben&lt;br /&gt;
           ↓&lt;br /&gt;
5. Alter Index wartet im &amp;quot;rollover&amp;quot; Zustand&lt;br /&gt;
           ↓&lt;br /&gt;
6. Nach 3h seit Rollover → ÜBERGANG zu delete&lt;br /&gt;
           ↓&lt;br /&gt;
7. Index wird GELÖSCHT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Datei:Index_pattern_OpenSearch_Dashboards.png&amp;diff=5182</id>
		<title>Datei:Index pattern OpenSearch Dashboards.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Datei:Index_pattern_OpenSearch_Dashboards.png&amp;diff=5182"/>
		<updated>2026-02-05T08:21:04Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5171</id>
		<title>Opensearch</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5171"/>
		<updated>2026-01-29T15:02:29Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;databox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Anwendung:&lt;br /&gt;
|OpenSearch&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Status:&lt;br /&gt;
|&#039;&#039;&#039;Entwurf&#039;&#039;&#039;/ freigegeben&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ziel==&lt;br /&gt;
Diese Anleitung richtet automatisches Index-Lifecycle-Management ein:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Rollover&#039;&#039;&#039;: Neuen Index erstellen wenn Bedingungen erfüllt sind (Alter + Dokumentenanzahl)&lt;br /&gt;
*&#039;&#039;&#039;Löschen&#039;&#039;&#039;: Alte Indizes nach einer Aufbewahrungsfrist entfernen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
provisioning_v2-000001 → Rollover → provisioning_v2-000002 → Rollover → ...&lt;br /&gt;
                            ↓ (3h später)&lt;br /&gt;
                         LÖSCHEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen und Vorbereitung==&lt;br /&gt;
*Zugang zu OpenSearch Cluster (Admin-Rechte)&lt;br /&gt;
*OpenSearch Dashboard oder API-Zugang (z.B. via curl oder Dev Tools)&lt;br /&gt;
*Python-Anwendung mit &amp;lt;code&amp;gt;opensearch-logger&amp;lt;/code&amp;gt; Bibliothek&lt;br /&gt;
&lt;br /&gt;
==Vorgang 1: Index-Lifecycle einrichten==&lt;br /&gt;
Erstellung der ISM-Policy, Index-Template und des initialen Index für automatisches Rollover und Löschen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|ISM-Policy erstellen&lt;br /&gt;
|Definiert Rollover- und Lösch-Bedingungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Index-Template erstellen&lt;br /&gt;
|Stellt korrekte Einstellungen für neue Indizes sicher&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Initialen Index erstellen&lt;br /&gt;
|Erster Index mit korrekter Benennung&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |4&lt;br /&gt;
|Write-Alias hinzufügen&lt;br /&gt;
|Alias für Schreiboperationen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |5&lt;br /&gt;
|Rollover-Alias am Index setzen&lt;br /&gt;
|Index mit Alias verknüpfen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |6&lt;br /&gt;
|Policy an Index anhängen&lt;br /&gt;
|Lifecycle-Management aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&#039;&#039;&#039;Note: Unter Management/Dev tools kann man die Befehle einfügen und ausführen&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie die &#039;&#039;&#039;ISM-Policy&#039;&#039;&#039; (JSON editor oder Visual editor):[[Datei:ISM-Policy Dashboard.png|none|1210x1210px]]&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&#039;&#039;&#039;Bedingungen:&#039;&#039;&#039;&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_index_age: 1h&amp;lt;/code&amp;gt; - Index muss ≥1 Stunde alt sein&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_rollover_age: 3h&amp;lt;/code&amp;gt; - Löschen 3 Stunden nach Rollover&lt;br /&gt;
#:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Rollover-Bedingungen sind &#039;&#039;&#039;keine&#039;&#039;&#039; UND Bedingung. Wenn man zum Beispiel &amp;lt;code&amp;gt;min&#039;&#039;index&#039;&#039;age&amp;lt;/code&amp;gt;  und &amp;lt;code&amp;gt;min_&amp;lt;u&amp;gt;&#039;&#039;doc_&#039;&#039;count&amp;lt;/u&amp;gt;&amp;lt;/code&amp;gt;  und eines davon die Bedingung erfüllt, wird das Rollover ausgeführt&amp;lt;br /&amp;gt; &lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie das &#039;&#039;&#039;Index-Template&#039;&#039;&#039;:[[Datei:Index-Template.png|none|976x976px]]&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie den &#039;&#039;&#039;initialen Index (Visual editor wurde nicht mehr genutzt, weil es mühsam ist)&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:Der Index muss mit einer Nummer enden (z.B. -000001).&lt;br /&gt;
#&#039;&#039;&#039;Fügen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Write-Alias&#039;&#039;&#039; hinzu:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Setzen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Rollover-Alias&#039;&#039;&#039; am Index:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Hängen&#039;&#039;&#039; Sie die &#039;&#039;&#039;Policy&#039;&#039;&#039; an den Index an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &#039;&#039;&#039;Alle Befehle in Reihenfolge&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
// 1. Policy erstellen&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 2. Template erstellen&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 3. Initialen Index erstellen&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&lt;br /&gt;
// 4. Write-Alias hinzufügen&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 5. Rollover-Alias am Index setzen&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 6. Policy anhängen&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 2: Anwendung konfigurieren==&lt;br /&gt;
Konfiguration der Python-Anwendung zur Verwendung des Alias anstelle von datumsbasierten Indizes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Logging-Konfiguration anpassen&lt;br /&gt;
|index_rotate auf NEVER setzen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Anwendung neu starten&lt;br /&gt;
|Änderungen aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Passen&#039;&#039;&#039; Sie die &#039;&#039;&#039;settings.py&#039;&#039;&#039; an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&#039;opensearch&#039;: {&lt;br /&gt;
    &amp;quot;level&amp;quot;: &#039;DEBUG&#039;,&lt;br /&gt;
    &amp;quot;class&amp;quot;: &#039;opensearch_logger.OpenSearchHandler&#039;,&lt;br /&gt;
    &amp;quot;index_name&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,      # Schreibe zum Alias&lt;br /&gt;
    &amp;quot;index_rotate&amp;quot;: &amp;quot;NEVER&amp;quot;,               # Datums-Suffix deaktivieren&lt;br /&gt;
    &amp;quot;hosts&amp;quot;: [{&amp;quot;host&amp;quot;: OPENSEARCH_LOGGING_SERVER, &amp;quot;port&amp;quot;: 9200}],&lt;br /&gt;
    &amp;quot;http_auth&amp;quot;: (&amp;quot;admin&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
    &amp;quot;http_compress&amp;quot;: True,&lt;br /&gt;
    &amp;quot;filters&amp;quot;: [&#039;correlation_id&#039;],&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Starten&#039;&#039;&#039; Sie die &#039;&#039;&#039;Anwendung neu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 3: Überprüfung und Fehlerbehebung==&lt;br /&gt;
Befehle zur Überprüfung des Status und zur Fehlerbehebung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Indizes prüfen&lt;br /&gt;
|Alle provisioning Indizes anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Alias prüfen&lt;br /&gt;
|Alias-Konfiguration verifizieren&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Policy-Status prüfen&lt;br /&gt;
|ISM-Status aller Indizes anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Überprüfungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Alle Indizes anzeigen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _cat/indices/provisioning_v2-*?v&amp;amp;h=index,docs.count,creation.date.string&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Alias-Konfiguration prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _alias/provisioning_v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy-Status prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _plugins/_ism/explain/provisioning_v2-*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fehlerbehebungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Bei Rollover-Fehler manuell wiederholen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/retry/provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy an Index anhängen&#039;&#039;&#039; (falls nicht angehängt):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Aktualisierte Policy auf bestehende Indizes anwenden&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/change_policy/provisioning_v2-*&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Manueller Rollover erzwingen&#039;&#039;&#039; (umgeht Bedingungen):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST provisioning_v2/_rollover&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Häufige Fehler==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
!Fehler&lt;br /&gt;
!Ursache&lt;br /&gt;
!Lösung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Missing rollover_alias index setting&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index weiss nicht welchen Alias verwenden&lt;br /&gt;
|&amp;lt;code&amp;gt;PUT index/_settings&amp;lt;/code&amp;gt; mit rollover_alias&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;duplicated alias in index template&amp;lt;/code&amp;gt;&lt;br /&gt;
|Template hat &amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; Abschnitt&lt;br /&gt;
|&amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; aus Template entfernen&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Conditions not met&amp;lt;/code&amp;gt;&lt;br /&gt;
|min_doc_count UND min_index_age nicht beide erfüllt&lt;br /&gt;
|Warten, oder Schwellwerte zum Testen senken&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;alias name conflicts with index&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index und Alias haben gleichen Namen&lt;br /&gt;
|Index löschen oder anderen Alias-Namen verwenden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Lifecycle-Ablauf==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. App schreibt zum Alias &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
           ↓&lt;br /&gt;
2. Alias zeigt auf aktuellen Index (z.B. -000001)&lt;br /&gt;
           ↓&lt;br /&gt;
3. Wenn ≥5 Dokumente UND ≥1h alt → ROLLOVER&lt;br /&gt;
           ↓&lt;br /&gt;
4. Neuer Index erstellt (-000002), Alias wird verschoben&lt;br /&gt;
           ↓&lt;br /&gt;
5. Alter Index wartet im &amp;quot;rollover&amp;quot; Zustand&lt;br /&gt;
           ↓&lt;br /&gt;
6. Nach 3h seit Rollover → ÜBERGANG zu delete&lt;br /&gt;
           ↓&lt;br /&gt;
7. Index wird GELÖSCHT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5170</id>
		<title>Opensearch</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5170"/>
		<updated>2026-01-28T13:44:59Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;databox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Anwendung:&lt;br /&gt;
|OpenSearch&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Status:&lt;br /&gt;
|&#039;&#039;&#039;Entwurf&#039;&#039;&#039;/ freigegeben&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ziel==&lt;br /&gt;
Diese Anleitung richtet automatisches Index-Lifecycle-Management ein:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Rollover&#039;&#039;&#039;: Neuen Index erstellen wenn Bedingungen erfüllt sind (Alter + Dokumentenanzahl)&lt;br /&gt;
*&#039;&#039;&#039;Löschen&#039;&#039;&#039;: Alte Indizes nach einer Aufbewahrungsfrist entfernen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
provisioning_v2-000001 → Rollover → provisioning_v2-000002 → Rollover → ...&lt;br /&gt;
                            ↓ (3h später)&lt;br /&gt;
                         LÖSCHEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen und Vorbereitung==&lt;br /&gt;
*Zugang zu OpenSearch Cluster (Admin-Rechte)&lt;br /&gt;
*OpenSearch Dashboard oder API-Zugang (z.B. via curl oder Dev Tools)&lt;br /&gt;
*Python-Anwendung mit &amp;lt;code&amp;gt;opensearch-logger&amp;lt;/code&amp;gt; Bibliothek&lt;br /&gt;
&lt;br /&gt;
==Vorgang 1: Index-Lifecycle einrichten==&lt;br /&gt;
Erstellung der ISM-Policy, Index-Template und des initialen Index für automatisches Rollover und Löschen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|ISM-Policy erstellen&lt;br /&gt;
|Definiert Rollover- und Lösch-Bedingungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Index-Template erstellen&lt;br /&gt;
|Stellt korrekte Einstellungen für neue Indizes sicher&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Initialen Index erstellen&lt;br /&gt;
|Erster Index mit korrekter Benennung&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |4&lt;br /&gt;
|Write-Alias hinzufügen&lt;br /&gt;
|Alias für Schreiboperationen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |5&lt;br /&gt;
|Rollover-Alias am Index setzen&lt;br /&gt;
|Index mit Alias verknüpfen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |6&lt;br /&gt;
|Policy an Index anhängen&lt;br /&gt;
|Lifecycle-Management aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&#039;&#039;&#039;Note: Unter Management/Dev tools kann man die Befehle einfügen und ausführen&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie die &#039;&#039;&#039;ISM-Policy&#039;&#039;&#039; (JSON editor oder Visual editor):[[Datei:ISM-Policy Dashboard.png|none|1210x1210px]]&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_doc_count&amp;quot;: 5,&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&#039;&#039;&#039;Bedingungen:&#039;&#039;&#039;&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_doc_count: 5&amp;lt;/code&amp;gt; - Muss ≥5 Dokumente haben&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_index_age: 1h&amp;lt;/code&amp;gt; - Index muss ≥1 Stunde alt sein&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_rollover_age: 3h&amp;lt;/code&amp;gt; - Löschen 3 Stunden nach Rollover&lt;br /&gt;
#:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Rollover-Bedingungen sind &#039;&#039;&#039;UND&#039;&#039;&#039; — beide müssen erfüllt sein. &amp;lt;br /&amp;gt; &lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie das &#039;&#039;&#039;Index-Template&#039;&#039;&#039;:[[Datei:Index-Template.png|none|976x976px]]&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie den &#039;&#039;&#039;initialen Index (Visual editor wurde nicht mehr genutzt, weil es mühsam ist)&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:Der Index muss mit einer Nummer enden (z.B. -000001).&lt;br /&gt;
#&#039;&#039;&#039;Fügen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Write-Alias&#039;&#039;&#039; hinzu:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Setzen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Rollover-Alias&#039;&#039;&#039; am Index:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Hängen&#039;&#039;&#039; Sie die &#039;&#039;&#039;Policy&#039;&#039;&#039; an den Index an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &#039;&#039;&#039;Alle Befehle in Reihenfolge&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
// 1. Policy erstellen&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_doc_count&amp;quot;: 5,&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 2. Template erstellen&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 3. Initialen Index erstellen&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&lt;br /&gt;
// 4. Write-Alias hinzufügen&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 5. Rollover-Alias am Index setzen&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 6. Policy anhängen&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 2: Anwendung konfigurieren==&lt;br /&gt;
Konfiguration der Python-Anwendung zur Verwendung des Alias anstelle von datumsbasierten Indizes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Logging-Konfiguration anpassen&lt;br /&gt;
|index_rotate auf NEVER setzen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Anwendung neu starten&lt;br /&gt;
|Änderungen aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Passen&#039;&#039;&#039; Sie die &#039;&#039;&#039;settings.py&#039;&#039;&#039; an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&#039;opensearch&#039;: {&lt;br /&gt;
    &amp;quot;level&amp;quot;: &#039;DEBUG&#039;,&lt;br /&gt;
    &amp;quot;class&amp;quot;: &#039;opensearch_logger.OpenSearchHandler&#039;,&lt;br /&gt;
    &amp;quot;index_name&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,      # Schreibe zum Alias&lt;br /&gt;
    &amp;quot;index_rotate&amp;quot;: &amp;quot;NEVER&amp;quot;,               # Datums-Suffix deaktivieren&lt;br /&gt;
    &amp;quot;hosts&amp;quot;: [{&amp;quot;host&amp;quot;: OPENSEARCH_LOGGING_SERVER, &amp;quot;port&amp;quot;: 9200}],&lt;br /&gt;
    &amp;quot;http_auth&amp;quot;: (&amp;quot;admin&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
    &amp;quot;http_compress&amp;quot;: True,&lt;br /&gt;
    &amp;quot;filters&amp;quot;: [&#039;correlation_id&#039;],&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Starten&#039;&#039;&#039; Sie die &#039;&#039;&#039;Anwendung neu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 3: Überprüfung und Fehlerbehebung==&lt;br /&gt;
Befehle zur Überprüfung des Status und zur Fehlerbehebung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Indizes prüfen&lt;br /&gt;
|Alle provisioning Indizes anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Alias prüfen&lt;br /&gt;
|Alias-Konfiguration verifizieren&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Policy-Status prüfen&lt;br /&gt;
|ISM-Status aller Indizes anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Überprüfungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Alle Indizes anzeigen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _cat/indices/provisioning_v2-*?v&amp;amp;h=index,docs.count,creation.date.string&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Alias-Konfiguration prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _alias/provisioning_v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy-Status prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _plugins/_ism/explain/provisioning_v2-*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fehlerbehebungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Bei Rollover-Fehler manuell wiederholen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/retry/provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy an Index anhängen&#039;&#039;&#039; (falls nicht angehängt):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Aktualisierte Policy auf bestehende Indizes anwenden&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/change_policy/provisioning_v2-*&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Manueller Rollover erzwingen&#039;&#039;&#039; (umgeht Bedingungen):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST provisioning_v2/_rollover&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Häufige Fehler==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
!Fehler&lt;br /&gt;
!Ursache&lt;br /&gt;
!Lösung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Missing rollover_alias index setting&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index weiss nicht welchen Alias verwenden&lt;br /&gt;
|&amp;lt;code&amp;gt;PUT index/_settings&amp;lt;/code&amp;gt; mit rollover_alias&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;duplicated alias in index template&amp;lt;/code&amp;gt;&lt;br /&gt;
|Template hat &amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; Abschnitt&lt;br /&gt;
|&amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; aus Template entfernen&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Conditions not met&amp;lt;/code&amp;gt;&lt;br /&gt;
|min_doc_count UND min_index_age nicht beide erfüllt&lt;br /&gt;
|Warten, oder Schwellwerte zum Testen senken&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;alias name conflicts with index&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index und Alias haben gleichen Namen&lt;br /&gt;
|Index löschen oder anderen Alias-Namen verwenden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Lifecycle-Ablauf==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. App schreibt zum Alias &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
           ↓&lt;br /&gt;
2. Alias zeigt auf aktuellen Index (z.B. -000001)&lt;br /&gt;
           ↓&lt;br /&gt;
3. Wenn ≥5 Dokumente UND ≥1h alt → ROLLOVER&lt;br /&gt;
           ↓&lt;br /&gt;
4. Neuer Index erstellt (-000002), Alias wird verschoben&lt;br /&gt;
           ↓&lt;br /&gt;
5. Alter Index wartet im &amp;quot;rollover&amp;quot; Zustand&lt;br /&gt;
           ↓&lt;br /&gt;
6. Nach 3h seit Rollover → ÜBERGANG zu delete&lt;br /&gt;
           ↓&lt;br /&gt;
7. Index wird GELÖSCHT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5169</id>
		<title>Opensearch</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5169"/>
		<updated>2026-01-28T13:38:52Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;databox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Anwendung:&lt;br /&gt;
|OpenSearch&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Status:&lt;br /&gt;
|&#039;&#039;&#039;Entwurf&#039;&#039;&#039;/ freigegeben&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ziel==&lt;br /&gt;
Diese Anleitung richtet automatisches Index-Lifecycle-Management ein:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Rollover&#039;&#039;&#039;: Neuen Index erstellen wenn Bedingungen erfüllt sind (Alter + Dokumentenanzahl)&lt;br /&gt;
*&#039;&#039;&#039;Löschen&#039;&#039;&#039;: Alte Indizes nach einer Aufbewahrungsfrist entfernen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
provisioning_v2-000001 → Rollover → provisioning_v2-000002 → Rollover → ...&lt;br /&gt;
                            ↓ (3h später)&lt;br /&gt;
                         LÖSCHEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen und Vorbereitung==&lt;br /&gt;
*Zugang zu OpenSearch Cluster (Admin-Rechte)&lt;br /&gt;
*OpenSearch Dashboard oder API-Zugang (z.B. via curl oder Dev Tools)&lt;br /&gt;
*Python-Anwendung mit &amp;lt;code&amp;gt;opensearch-logger&amp;lt;/code&amp;gt; Bibliothek&lt;br /&gt;
&lt;br /&gt;
==Vorgang 1: Index-Lifecycle einrichten==&lt;br /&gt;
Erstellung der ISM-Policy, Index-Template und des initialen Index für automatisches Rollover und Löschen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|ISM-Policy erstellen&lt;br /&gt;
|Definiert Rollover- und Lösch-Bedingungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Index-Template erstellen&lt;br /&gt;
|Stellt korrekte Einstellungen für neue Indizes sicher&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Initialen Index erstellen&lt;br /&gt;
|Erster Index mit korrekter Benennung&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |4&lt;br /&gt;
|Write-Alias hinzufügen&lt;br /&gt;
|Alias für Schreiboperationen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |5&lt;br /&gt;
|Rollover-Alias am Index setzen&lt;br /&gt;
|Index mit Alias verknüpfen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |6&lt;br /&gt;
|Policy an Index anhängen&lt;br /&gt;
|Lifecycle-Management aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&#039;&#039;&#039;Note: Unter Management/Dev tools kann man die Befehle einfügen und ausführen&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie die &#039;&#039;&#039;ISM-Policy&#039;&#039;&#039; (JSON editor oder Visual editor):[[Datei:ISM-Policy Dashboard.png|mini|1210x1210px]]&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_doc_count&amp;quot;: 5,&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&#039;&#039;&#039;Bedingungen:&#039;&#039;&#039;&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_doc_count: 5&amp;lt;/code&amp;gt; - Muss ≥5 Dokumente haben&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_index_age: 1h&amp;lt;/code&amp;gt; - Index muss ≥1 Stunde alt sein&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_rollover_age: 3h&amp;lt;/code&amp;gt; - Löschen 3 Stunden nach Rollover&lt;br /&gt;
#:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Rollover-Bedingungen sind &#039;&#039;&#039;UND&#039;&#039;&#039; — beide müssen erfüllt sein. &amp;lt;br /&amp;gt; &amp;amp;#xAD;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie das &#039;&#039;&#039;Index-Template&#039;&#039;&#039;:[[Datei:Index-Template.png|mini|976x976px]]&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#: &amp;amp;#xAD;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie den &#039;&#039;&#039;initialen Index (Visual editor wurde nicht mehr genutzt, weil es mühsam ist)&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:Der Index muss mit einer Nummer enden (z.B. -000001).&lt;br /&gt;
#&#039;&#039;&#039;Fügen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Write-Alias&#039;&#039;&#039; hinzu:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Setzen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Rollover-Alias&#039;&#039;&#039; am Index:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Hängen&#039;&#039;&#039; Sie die &#039;&#039;&#039;Policy&#039;&#039;&#039; an den Index an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &#039;&#039;&#039;Alle Befehle in Reihenfolge&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
// 1. Policy erstellen&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_doc_count&amp;quot;: 5,&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 2. Template erstellen&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 3. Initialen Index erstellen&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&lt;br /&gt;
// 4. Write-Alias hinzufügen&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 5. Rollover-Alias am Index setzen&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 6. Policy anhängen&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 2: Anwendung konfigurieren==&lt;br /&gt;
Konfiguration der Python-Anwendung zur Verwendung des Alias anstelle von datumsbasierten Indizes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Logging-Konfiguration anpassen&lt;br /&gt;
|index_rotate auf NEVER setzen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Anwendung neu starten&lt;br /&gt;
|Änderungen aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Passen&#039;&#039;&#039; Sie die &#039;&#039;&#039;settings.py&#039;&#039;&#039; an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&#039;opensearch&#039;: {&lt;br /&gt;
    &amp;quot;level&amp;quot;: &#039;DEBUG&#039;,&lt;br /&gt;
    &amp;quot;class&amp;quot;: &#039;opensearch_logger.OpenSearchHandler&#039;,&lt;br /&gt;
    &amp;quot;index_name&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,      # Schreibe zum Alias&lt;br /&gt;
    &amp;quot;index_rotate&amp;quot;: &amp;quot;NEVER&amp;quot;,               # Datums-Suffix deaktivieren&lt;br /&gt;
    &amp;quot;hosts&amp;quot;: [{&amp;quot;host&amp;quot;: OPENSEARCH_LOGGING_SERVER, &amp;quot;port&amp;quot;: 9200}],&lt;br /&gt;
    &amp;quot;http_auth&amp;quot;: (&amp;quot;admin&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
    &amp;quot;http_compress&amp;quot;: True,&lt;br /&gt;
    &amp;quot;filters&amp;quot;: [&#039;correlation_id&#039;],&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Starten&#039;&#039;&#039; Sie die &#039;&#039;&#039;Anwendung neu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 3: Überprüfung und Fehlerbehebung==&lt;br /&gt;
Befehle zur Überprüfung des Status und zur Fehlerbehebung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Indizes prüfen&lt;br /&gt;
|Alle provisioning Indizes anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Alias prüfen&lt;br /&gt;
|Alias-Konfiguration verifizieren&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Policy-Status prüfen&lt;br /&gt;
|ISM-Status aller Indizes anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Überprüfungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Alle Indizes anzeigen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _cat/indices/provisioning_v2-*?v&amp;amp;h=index,docs.count,creation.date.string&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Alias-Konfiguration prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _alias/provisioning_v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy-Status prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _plugins/_ism/explain/provisioning_v2-*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fehlerbehebungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Bei Rollover-Fehler manuell wiederholen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/retry/provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy an Index anhängen&#039;&#039;&#039; (falls nicht angehängt):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Aktualisierte Policy auf bestehende Indizes anwenden&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/change_policy/provisioning_v2-*&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Manueller Rollover erzwingen&#039;&#039;&#039; (umgeht Bedingungen):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST provisioning_v2/_rollover&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Häufige Fehler==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
!Fehler&lt;br /&gt;
!Ursache&lt;br /&gt;
!Lösung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Missing rollover_alias index setting&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index weiss nicht welchen Alias verwenden&lt;br /&gt;
|&amp;lt;code&amp;gt;PUT index/_settings&amp;lt;/code&amp;gt; mit rollover_alias&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;duplicated alias in index template&amp;lt;/code&amp;gt;&lt;br /&gt;
|Template hat &amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; Abschnitt&lt;br /&gt;
|&amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; aus Template entfernen&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Conditions not met&amp;lt;/code&amp;gt;&lt;br /&gt;
|min_doc_count UND min_index_age nicht beide erfüllt&lt;br /&gt;
|Warten, oder Schwellwerte zum Testen senken&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;alias name conflicts with index&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index und Alias haben gleichen Namen&lt;br /&gt;
|Index löschen oder anderen Alias-Namen verwenden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Lifecycle-Ablauf==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. App schreibt zum Alias &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
           ↓&lt;br /&gt;
2. Alias zeigt auf aktuellen Index (z.B. -000001)&lt;br /&gt;
           ↓&lt;br /&gt;
3. Wenn ≥5 Dokumente UND ≥1h alt → ROLLOVER&lt;br /&gt;
           ↓&lt;br /&gt;
4. Neuer Index erstellt (-000002), Alias wird verschoben&lt;br /&gt;
           ↓&lt;br /&gt;
5. Alter Index wartet im &amp;quot;rollover&amp;quot; Zustand&lt;br /&gt;
           ↓&lt;br /&gt;
6. Nach 3h seit Rollover → ÜBERGANG zu delete&lt;br /&gt;
           ↓&lt;br /&gt;
7. Index wird GELÖSCHT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5168</id>
		<title>Opensearch</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5168"/>
		<updated>2026-01-28T13:37:42Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;databox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Anwendung:&lt;br /&gt;
|OpenSearch&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Status:&lt;br /&gt;
|&#039;&#039;&#039;Entwurf&#039;&#039;&#039;/ freigegeben&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ziel==&lt;br /&gt;
Diese Anleitung richtet automatisches Index-Lifecycle-Management ein:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Rollover&#039;&#039;&#039;: Neuen Index erstellen wenn Bedingungen erfüllt sind (Alter + Dokumentenanzahl)&lt;br /&gt;
*&#039;&#039;&#039;Löschen&#039;&#039;&#039;: Alte Indizes nach einer Aufbewahrungsfrist entfernen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
provisioning_v2-000001 → Rollover → provisioning_v2-000002 → Rollover → ...&lt;br /&gt;
                            ↓ (3h später)&lt;br /&gt;
                         LÖSCHEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen und Vorbereitung==&lt;br /&gt;
*Zugang zu OpenSearch Cluster (Admin-Rechte)&lt;br /&gt;
*OpenSearch Dashboard oder API-Zugang (z.B. via curl oder Dev Tools)&lt;br /&gt;
*Python-Anwendung mit &amp;lt;code&amp;gt;opensearch-logger&amp;lt;/code&amp;gt; Bibliothek&lt;br /&gt;
&lt;br /&gt;
==Vorgang 1: Index-Lifecycle einrichten==&lt;br /&gt;
Erstellung der ISM-Policy, Index-Template und des initialen Index für automatisches Rollover und Löschen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|ISM-Policy erstellen&lt;br /&gt;
|Definiert Rollover- und Lösch-Bedingungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Index-Template erstellen&lt;br /&gt;
|Stellt korrekte Einstellungen für neue Indizes sicher&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Initialen Index erstellen&lt;br /&gt;
|Erster Index mit korrekter Benennung&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |4&lt;br /&gt;
|Write-Alias hinzufügen&lt;br /&gt;
|Alias für Schreiboperationen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |5&lt;br /&gt;
|Rollover-Alias am Index setzen&lt;br /&gt;
|Index mit Alias verknüpfen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |6&lt;br /&gt;
|Policy an Index anhängen&lt;br /&gt;
|Lifecycle-Management aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&#039;&#039;&#039;Note: Unter Management/Dev tools kann man die Befehle einfügen und ausführen&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie die &#039;&#039;&#039;ISM-Policy&#039;&#039;&#039; (JSON editor oder Visual editor):[[Datei:ISM-Policy Dashboard.png|mini|1210x1210px]]&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_doc_count&amp;quot;: 5,&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&#039;&#039;&#039;Bedingungen:&#039;&#039;&#039;&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_doc_count: 5&amp;lt;/code&amp;gt; - Muss ≥5 Dokumente haben&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_index_age: 1h&amp;lt;/code&amp;gt; - Index muss ≥1 Stunde alt sein&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_rollover_age: 3h&amp;lt;/code&amp;gt; - Löschen 3 Stunden nach Rollover&lt;br /&gt;
#:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Rollover-Bedingungen sind &#039;&#039;&#039;UND&#039;&#039;&#039; — beide müssen erfüllt sein. &amp;lt;br /&amp;gt; &amp;amp;#xAD;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie das &#039;&#039;&#039;Index-Template&#039;&#039;&#039;:[[Datei:Index-Template.png|mini|976x976px]]&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie den &#039;&#039;&#039;initialen Index (Visual editor wurde nicht mehr genutzt, weil es mühsam ist)&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:Der Index muss mit einer Nummer enden (z.B. -000001).&lt;br /&gt;
#&#039;&#039;&#039;Fügen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Write-Alias&#039;&#039;&#039; hinzu:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Setzen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Rollover-Alias&#039;&#039;&#039; am Index:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Hängen&#039;&#039;&#039; Sie die &#039;&#039;&#039;Policy&#039;&#039;&#039; an den Index an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &#039;&#039;&#039;Alle Befehle in Reihenfolge&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
// 1. Policy erstellen&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_doc_count&amp;quot;: 5,&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 2. Template erstellen&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 3. Initialen Index erstellen&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&lt;br /&gt;
// 4. Write-Alias hinzufügen&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 5. Rollover-Alias am Index setzen&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 6. Policy anhängen&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 2: Anwendung konfigurieren==&lt;br /&gt;
Konfiguration der Python-Anwendung zur Verwendung des Alias anstelle von datumsbasierten Indizes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Logging-Konfiguration anpassen&lt;br /&gt;
|index_rotate auf NEVER setzen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Anwendung neu starten&lt;br /&gt;
|Änderungen aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Passen&#039;&#039;&#039; Sie die &#039;&#039;&#039;settings.py&#039;&#039;&#039; an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&#039;opensearch&#039;: {&lt;br /&gt;
    &amp;quot;level&amp;quot;: &#039;DEBUG&#039;,&lt;br /&gt;
    &amp;quot;class&amp;quot;: &#039;opensearch_logger.OpenSearchHandler&#039;,&lt;br /&gt;
    &amp;quot;index_name&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,      # Schreibe zum Alias&lt;br /&gt;
    &amp;quot;index_rotate&amp;quot;: &amp;quot;NEVER&amp;quot;,               # Datums-Suffix deaktivieren&lt;br /&gt;
    &amp;quot;hosts&amp;quot;: [{&amp;quot;host&amp;quot;: OPENSEARCH_LOGGING_SERVER, &amp;quot;port&amp;quot;: 9200}],&lt;br /&gt;
    &amp;quot;http_auth&amp;quot;: (&amp;quot;admin&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
    &amp;quot;http_compress&amp;quot;: True,&lt;br /&gt;
    &amp;quot;filters&amp;quot;: [&#039;correlation_id&#039;],&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Starten&#039;&#039;&#039; Sie die &#039;&#039;&#039;Anwendung neu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 3: Überprüfung und Fehlerbehebung==&lt;br /&gt;
Befehle zur Überprüfung des Status und zur Fehlerbehebung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Indizes prüfen&lt;br /&gt;
|Alle provisioning Indizes anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Alias prüfen&lt;br /&gt;
|Alias-Konfiguration verifizieren&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Policy-Status prüfen&lt;br /&gt;
|ISM-Status aller Indizes anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Überprüfungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Alle Indizes anzeigen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _cat/indices/provisioning_v2-*?v&amp;amp;h=index,docs.count,creation.date.string&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Alias-Konfiguration prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _alias/provisioning_v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy-Status prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _plugins/_ism/explain/provisioning_v2-*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fehlerbehebungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Bei Rollover-Fehler manuell wiederholen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/retry/provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy an Index anhängen&#039;&#039;&#039; (falls nicht angehängt):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Aktualisierte Policy auf bestehende Indizes anwenden&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/change_policy/provisioning_v2-*&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Manueller Rollover erzwingen&#039;&#039;&#039; (umgeht Bedingungen):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST provisioning_v2/_rollover&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Häufige Fehler==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
!Fehler&lt;br /&gt;
!Ursache&lt;br /&gt;
!Lösung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Missing rollover_alias index setting&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index weiss nicht welchen Alias verwenden&lt;br /&gt;
|&amp;lt;code&amp;gt;PUT index/_settings&amp;lt;/code&amp;gt; mit rollover_alias&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;duplicated alias in index template&amp;lt;/code&amp;gt;&lt;br /&gt;
|Template hat &amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; Abschnitt&lt;br /&gt;
|&amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; aus Template entfernen&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Conditions not met&amp;lt;/code&amp;gt;&lt;br /&gt;
|min_doc_count UND min_index_age nicht beide erfüllt&lt;br /&gt;
|Warten, oder Schwellwerte zum Testen senken&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;alias name conflicts with index&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index und Alias haben gleichen Namen&lt;br /&gt;
|Index löschen oder anderen Alias-Namen verwenden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Lifecycle-Ablauf==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. App schreibt zum Alias &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
           ↓&lt;br /&gt;
2. Alias zeigt auf aktuellen Index (z.B. -000001)&lt;br /&gt;
           ↓&lt;br /&gt;
3. Wenn ≥5 Dokumente UND ≥1h alt → ROLLOVER&lt;br /&gt;
           ↓&lt;br /&gt;
4. Neuer Index erstellt (-000002), Alias wird verschoben&lt;br /&gt;
           ↓&lt;br /&gt;
5. Alter Index wartet im &amp;quot;rollover&amp;quot; Zustand&lt;br /&gt;
           ↓&lt;br /&gt;
6. Nach 3h seit Rollover → ÜBERGANG zu delete&lt;br /&gt;
           ↓&lt;br /&gt;
7. Index wird GELÖSCHT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5167</id>
		<title>Opensearch</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Opensearch&amp;diff=5167"/>
		<updated>2026-01-28T13:33:32Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: automatisches Index-Lifecycle-Management für OpenSearch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;databox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Anwendung:&lt;br /&gt;
|OpenSearch&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tbl&amp;quot;&amp;gt;&lt;br /&gt;
{| &lt;br /&gt;
|-&lt;br /&gt;
!Status:&lt;br /&gt;
|&#039;&#039;&#039;Entwurf&#039;&#039;&#039;/ freigegeben&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ziel==&lt;br /&gt;
Diese Anleitung richtet automatisches Index-Lifecycle-Management ein:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Rollover&#039;&#039;&#039;: Neuen Index erstellen wenn Bedingungen erfüllt sind (Alter + Dokumentenanzahl)&lt;br /&gt;
*&#039;&#039;&#039;Löschen&#039;&#039;&#039;: Alte Indizes nach einer Aufbewahrungsfrist entfernen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
provisioning_v2-000001 → Rollover → provisioning_v2-000002 → Rollover → ...&lt;br /&gt;
                            ↓ (3h später)&lt;br /&gt;
                         LÖSCHEN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen und Vorbereitung==&lt;br /&gt;
*Zugang zu OpenSearch Cluster (Admin-Rechte)&lt;br /&gt;
*OpenSearch Dashboard oder API-Zugang (z.B. via curl oder Dev Tools)&lt;br /&gt;
*Python-Anwendung mit &amp;lt;code&amp;gt;opensearch-logger&amp;lt;/code&amp;gt; Bibliothek&lt;br /&gt;
&lt;br /&gt;
==Vorgang 1: Index-Lifecycle einrichten==&lt;br /&gt;
Erstellung der ISM-Policy, Index-Template und des initialen Index für automatisches Rollover und Löschen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|ISM-Policy erstellen&lt;br /&gt;
|Definiert Rollover- und Lösch-Bedingungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Index-Template erstellen&lt;br /&gt;
|Stellt korrekte Einstellungen für neue Indizes sicher&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Initialen Index erstellen&lt;br /&gt;
|Erster Index mit korrekter Benennung&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |4&lt;br /&gt;
|Write-Alias hinzufügen&lt;br /&gt;
|Alias für Schreiboperationen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |5&lt;br /&gt;
|Rollover-Alias am Index setzen&lt;br /&gt;
|Index mit Alias verknüpfen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |6&lt;br /&gt;
|Policy an Index anhängen&lt;br /&gt;
|Lifecycle-Management aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&#039;&#039;&#039;Note: Unter Management/Dev tools kann man die Befehle einfügen und ausführen&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie die &#039;&#039;&#039;ISM-Policy&#039;&#039;&#039; (JSON editor oder Visual editor):&lt;br /&gt;
#:&lt;br /&gt;
#:[[Datei:ISM-Policy Dashboard.png|mini|1210x1210px]]&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_doc_count&amp;quot;: 5,&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&#039;&#039;&#039;Bedingungen:&#039;&#039;&#039;&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_doc_count: 5&amp;lt;/code&amp;gt; - Muss ≥5 Dokumente haben&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_index_age: 1h&amp;lt;/code&amp;gt; - Index muss ≥1 Stunde alt sein&lt;br /&gt;
#:*&amp;lt;code&amp;gt;min_rollover_age: 3h&amp;lt;/code&amp;gt; - Löschen 3 Stunden nach Rollover&lt;br /&gt;
#:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Rollover-Bedingungen sind &#039;&#039;&#039;UND&#039;&#039;&#039; — beide müssen erfüllt sein. &amp;lt;br /&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie das &#039;&#039;&#039;Index-Template&#039;&#039;&#039;:[[Datei:Index-Template.png|mini|976x976px]]&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#:&lt;br /&gt;
#&#039;&#039;&#039;Erstellen&#039;&#039;&#039; Sie den &#039;&#039;&#039;initialen Index (Visual editor wurde nicht mehr genutzt, weil es mühsam ist)&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#:Der Index muss mit einer Nummer enden (z.B. -000001).&lt;br /&gt;
#&#039;&#039;&#039;Fügen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Write-Alias&#039;&#039;&#039; hinzu:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Setzen&#039;&#039;&#039; Sie den &#039;&#039;&#039;Rollover-Alias&#039;&#039;&#039; am Index:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Hängen&#039;&#039;&#039; Sie die &#039;&#039;&#039;Policy&#039;&#039;&#039; an den Index an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &#039;&#039;&#039;Alle Befehle in Reihenfolge&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
// 1. Policy erstellen&lt;br /&gt;
PUT _plugins/_ism/policies/provisioning_rollover&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy&amp;quot;: {&lt;br /&gt;
    &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Rollover und Löschen von Provisioning-Logs&amp;quot;,&lt;br /&gt;
    &amp;quot;default_state&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
    &amp;quot;states&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;rollover&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;rollover&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_doc_count&amp;quot;: 5,&lt;br /&gt;
              &amp;quot;min_index_age&amp;quot;: &amp;quot;1h&amp;quot;,&lt;br /&gt;
              &amp;quot;copy_alias&amp;quot;: false&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;state_name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
            &amp;quot;conditions&amp;quot;: {&lt;br /&gt;
              &amp;quot;min_rollover_age&amp;quot;: &amp;quot;3h&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      },&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;delete&amp;quot;,&lt;br /&gt;
        &amp;quot;actions&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;retry&amp;quot;: {&lt;br /&gt;
              &amp;quot;count&amp;quot;: 3,&lt;br /&gt;
              &amp;quot;backoff&amp;quot;: &amp;quot;exponential&amp;quot;,&lt;br /&gt;
              &amp;quot;delay&amp;quot;: &amp;quot;1m&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;delete&amp;quot;: {}&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;transitions&amp;quot;: []&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;ism_template&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2*&amp;quot;],&lt;br /&gt;
        &amp;quot;priority&amp;quot;: 1&lt;br /&gt;
      }&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 2. Template erstellen&lt;br /&gt;
PUT _index_template/provisioning_v2_template&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index_patterns&amp;quot;: [&amp;quot;provisioning_v2-*&amp;quot;],&lt;br /&gt;
  &amp;quot;template&amp;quot;: {&lt;br /&gt;
    &amp;quot;settings&amp;quot;: {&lt;br /&gt;
      &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;priority&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 3. Initialen Index erstellen&lt;br /&gt;
PUT provisioning_v2-000001&lt;br /&gt;
&lt;br /&gt;
// 4. Write-Alias hinzufügen&lt;br /&gt;
POST _aliases&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;actions&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;add&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;provisioning_v2-000001&amp;quot;,&lt;br /&gt;
        &amp;quot;alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,&lt;br /&gt;
        &amp;quot;is_write_index&amp;quot;: true&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 5. Rollover-Alias am Index setzen&lt;br /&gt;
PUT provisioning_v2-000001/_settings&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;index.plugins.index_state_management.rollover_alias&amp;quot;: &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 6. Policy anhängen&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 2: Anwendung konfigurieren==&lt;br /&gt;
Konfiguration der Python-Anwendung zur Verwendung des Alias anstelle von datumsbasierten Indizes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Logging-Konfiguration anpassen&lt;br /&gt;
|index_rotate auf NEVER setzen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Anwendung neu starten&lt;br /&gt;
|Änderungen aktivieren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Schritt-für-Schritt Anleitung===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Passen&#039;&#039;&#039; Sie die &#039;&#039;&#039;settings.py&#039;&#039;&#039; an:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&#039;opensearch&#039;: {&lt;br /&gt;
    &amp;quot;level&amp;quot;: &#039;DEBUG&#039;,&lt;br /&gt;
    &amp;quot;class&amp;quot;: &#039;opensearch_logger.OpenSearchHandler&#039;,&lt;br /&gt;
    &amp;quot;index_name&amp;quot;: &amp;quot;provisioning_v2&amp;quot;,      # Schreibe zum Alias&lt;br /&gt;
    &amp;quot;index_rotate&amp;quot;: &amp;quot;NEVER&amp;quot;,               # Datums-Suffix deaktivieren&lt;br /&gt;
    &amp;quot;hosts&amp;quot;: [{&amp;quot;host&amp;quot;: OPENSEARCH_LOGGING_SERVER, &amp;quot;port&amp;quot;: 9200}],&lt;br /&gt;
    &amp;quot;http_auth&amp;quot;: (&amp;quot;admin&amp;quot;, &amp;quot;admin&amp;quot;),&lt;br /&gt;
    &amp;quot;http_compress&amp;quot;: True,&lt;br /&gt;
    &amp;quot;filters&amp;quot;: [&#039;correlation_id&#039;],&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Starten&#039;&#039;&#039; Sie die &#039;&#039;&#039;Anwendung neu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Vorgang 3: Überprüfung und Fehlerbehebung==&lt;br /&gt;
Befehle zur Überprüfung des Status und zur Fehlerbehebung.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |Schritt&lt;br /&gt;
!Was ist zu tun?&lt;br /&gt;
!Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |1&lt;br /&gt;
|Indizes prüfen&lt;br /&gt;
|Alle provisioning Indizes anzeigen&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |2&lt;br /&gt;
|Alias prüfen&lt;br /&gt;
|Alias-Konfiguration verifizieren&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:center;width:80px;&amp;quot; |3&lt;br /&gt;
|Policy-Status prüfen&lt;br /&gt;
|ISM-Status aller Indizes anzeigen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Überprüfungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Alle Indizes anzeigen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _cat/indices/provisioning_v2-*?v&amp;amp;h=index,docs.count,creation.date.string&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Alias-Konfiguration prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _alias/provisioning_v2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy-Status prüfen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
GET _plugins/_ism/explain/provisioning_v2-*&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fehlerbehebungs-Befehle===&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Bei Rollover-Fehler manuell wiederholen&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/retry/provisioning_v2-000001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Policy an Index anhängen&#039;&#039;&#039; (falls nicht angehängt):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/add/provisioning_v2-000001&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Aktualisierte Policy auf bestehende Indizes anwenden&#039;&#039;&#039;:&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST _plugins/_ism/change_policy/provisioning_v2-*&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;policy_id&amp;quot;: &amp;quot;provisioning_rollover&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#&#039;&#039;&#039;Manueller Rollover erzwingen&#039;&#039;&#039; (umgeht Bedingungen):&lt;br /&gt;
#:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
POST provisioning_v2/_rollover&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Häufige Fehler==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
!Fehler&lt;br /&gt;
!Ursache&lt;br /&gt;
!Lösung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Missing rollover_alias index setting&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index weiss nicht welchen Alias verwenden&lt;br /&gt;
|&amp;lt;code&amp;gt;PUT index/_settings&amp;lt;/code&amp;gt; mit rollover_alias&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;duplicated alias in index template&amp;lt;/code&amp;gt;&lt;br /&gt;
|Template hat &amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; Abschnitt&lt;br /&gt;
|&amp;lt;code&amp;gt;aliases&amp;lt;/code&amp;gt; aus Template entfernen&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Conditions not met&amp;lt;/code&amp;gt;&lt;br /&gt;
|min_doc_count UND min_index_age nicht beide erfüllt&lt;br /&gt;
|Warten, oder Schwellwerte zum Testen senken&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;alias name conflicts with index&amp;lt;/code&amp;gt;&lt;br /&gt;
|Index und Alias haben gleichen Namen&lt;br /&gt;
|Index löschen oder anderen Alias-Namen verwenden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Lifecycle-Ablauf==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. App schreibt zum Alias &amp;quot;provisioning_v2&amp;quot;&lt;br /&gt;
           ↓&lt;br /&gt;
2. Alias zeigt auf aktuellen Index (z.B. -000001)&lt;br /&gt;
           ↓&lt;br /&gt;
3. Wenn ≥5 Dokumente UND ≥1h alt → ROLLOVER&lt;br /&gt;
           ↓&lt;br /&gt;
4. Neuer Index erstellt (-000002), Alias wird verschoben&lt;br /&gt;
           ↓&lt;br /&gt;
5. Alter Index wartet im &amp;quot;rollover&amp;quot; Zustand&lt;br /&gt;
           ↓&lt;br /&gt;
6. Nach 3h seit Rollover → ÜBERGANG zu delete&lt;br /&gt;
           ↓&lt;br /&gt;
7. Index wird GELÖSCHT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Datei:Index-Template.png&amp;diff=5166</id>
		<title>Datei:Index-Template.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Datei:Index-Template.png&amp;diff=5166"/>
		<updated>2026-01-28T13:17:18Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Datei:ISM-Policy_Dashboard.png&amp;diff=5165</id>
		<title>Datei:ISM-Policy Dashboard.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Datei:ISM-Policy_Dashboard.png&amp;diff=5165"/>
		<updated>2026-01-28T13:03:58Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
	<entry>
		<id>https://wiki-docker.iway.ch/kb/index.php?title=Benutzer:Andrew.willi&amp;diff=5163</id>
		<title>Benutzer:Andrew.willi</title>
		<link rel="alternate" type="text/html" href="https://wiki-docker.iway.ch/kb/index.php?title=Benutzer:Andrew.willi&amp;diff=5163"/>
		<updated>2026-01-28T12:33:02Z</updated>

		<summary type="html">&lt;p&gt;Andrew.willi: create user page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Userpage standard content}}&lt;/div&gt;</summary>
		<author><name>Andrew.willi</name></author>
	</entry>
</feed>