เรื่องมันมีอยู่ว่า ... ♫ ... ♫ ... เมื่อวาน ขณะกำลังนั่งปั้น ELK(K) stack 7.2 สด! ใหม่! ใส! กิ๊ก! อยู่นั้น ผมก็ทำไปตาม step มาตรฐานที่เคยทำมานั่นคือ install elasticsearch, performance test, enable security แล้ว performance test อีกรอบ จากนั้นก็จบด้วย setup kibana เป็นขั้นตอนสุดท้าย
ทุกอย่างเกือบเรียบร้อยแล้ว จบกระทั้งเรื่องไม่คาดขวัญเกิดขึ้น
เชี่ย !!! process elasticsearch หายไปไหนนะ! ตาย!!! ทำไมตาย! error ก็ไม่มี
หลังจากสืบค้น ไปได้ซักพัก ก็พบว่า ...
ความจริงมีเพียงหนึ่งเดียว
😫 เห้ย !!! นั่นมัน Conan The Barbarian
😒 ยัง! ยังไม่เลิกอีก !!!! นั่นมัน Conan O'Brien
OK ! OK ! OK ! เพลงมา....
ฆาตรกรในห้องปิดตายคนนั้นก็คือ init script ของ kibana นั่นเอง !!! แต่สาเหตุมันคืออะไรล่ะ ?
สืบเนื่องจาก kibana ไม่ได้ run ด้วย root ทำให้ไม่สามารถ สร้าง pid file ที่ /var/run ได้ พอเราสั่ง systemctl stop kibana
หรือ systemctl restart kibana
มันเลยไป kill process elasticsearch
ถ้า stop ผ่าน init script ตรงๆ จะไม่มีผลกระทบอะไร
case นี้ผมคิดว่า น่าจะเป็นแค่ kibana 7.2 เท่านั้น เพราะอีก cluster ของผมที่เป็น kibana 7.1 ไม่พบปัญหา นี้
มาดู Environment ที่ผมพบปัญหากัน
OS: RHEL7.6
Kibana version: 7.2.0
Elasticsearch version: 7.2.0
วิธีแก้แบบปะผุ
systemctl stop kibana
systemctl stop elasticsearch
- เพิ่ม
pid.file: /var/run/kibana/kibana.pid
to /etc/kibana/kibana.yml - แก้ /etc/init.d/kibana โดยเปลี่ยนจาก
pidfile="/var/run/$name.pid"
เป็นpidfile="/var/run/$name/$name.pid"
-
systemctl edit kibana
แล้วใส่ ข้อความนี้ลงไป
[Service]
RuntimeDirectory=kibana
systemctl daemon-reload
systemctl start elasticsearch
systemctl start kibana
เท่านี้ก็เรียบร้อย (~ ̄▽ ̄)~
Top comments (0)