Ошибка в elasticsearch — FORBIDDEN/12/index read-only / allow delete (api)

Thank you for reading this post, don't forget to subscribe!

Пой­мал несколь­ко раз ошиб­ку в рабо­те связ­ки logstash + elasticsearch. Выра­жа­ет­ся в том, что дан­ные не посту­па­ют в опре­де­лен­ный индекс. Самое про­сто­ре реше­ние — уда­лить индекс и создать зано­во. Дан­ные нач­нут посту­пать. Если вас не устра­и­ва­ет реше­ние с уда­ле­ни­ем индек­са, то читай­те дальше.

Пол­но­стью ошиб­ка в логе logstash выгля­дит сле­ду­ю­щим образом:

Полу­чил я ее несколь­ко раз, когда оста­ва­лось очень мало сво­бод­но­го места на дис­ке с дан­ны­ми elasticsearch. При дости­же­нии при­мер­но 5% сво­бод­но­го места, дан­ные пере­ста­ва­ли посту­пать в elasticsearch и появ­ля­лась эта ошиб­ка. Испра­вить ее мож­но сле­ду­ю­щим обра­зом. Во пер­вых, пере­не­сти дан­ные на более емкий диск или почи­стить его. Потом идем в Kibana -> Dev Tools и выпол­ня­ем команду:

[codesyntax lang="php"]

[/codesyntax]

weblogs-2018.09.10 — имя индек­са, куда не шли дан­ные. После выпол­не­ния коман­ды пере­за­пу­стил logstash на сер­ве­ре и дан­ные пошли в теку­щий индекс.

Ско­рее все­го для запи­си будут недо­ступ­ны и систем­ные индек­сы. Про­верь­те, какие у вас исполь­зу­ют­ся. Точ­но дол­жен быть .kibana. Если исполь­зу­е­те мони­то­ринг, то для него тоже свои систем­ные индек­сы созда­ют­ся. Они тоже могут быть забло­ки­ро­ва­ны для записи.