เนื่องด้วยตอนนี้จะทำอะไรแต่ละอย่างก็พยายามใช้ Docker เป็นหลักเพื่อความสะดวก ในทั้งตอน Develop → UAT → Produciton จะได้ไปในท่าเดียวกันได้ทั้งหมด
และมีโจทย์ที่จะ implement log server ขึ้นมาอีกตัว เลยนั่งนึกๆดู ปกติเรา Search มา log อะไรมันก็เป็น Text Base Search ดังนั้นตัวที่เหมาะๆในการใช้งานน่าะเป็น Elastics Search Stack นี่แหละที่เหมาะที่สุด แต่ Elastics Search ก็ดันเปลี่ยน license ไปซะแล้ว ไหนๆก็ไหนๆ ใช้ ตัว Open Search เลยดีกว่า
ซึ่งไปหาดูใน Website ของ Open Search ก็แสนจะง่าย
https://opensearch.org/docs/latest/opensearch/install/docker/#run-the-image
$docker run -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" opensearchproject/opensearch:1.3.1
Run command ง่ายๆ แบบนี้เอง หลังจาก container up ขึ้นมาแล้วก็ ทดสอบง่ายๆ ว่าสามารถใช้งานได้่ไหม โดยคำสั่ง
$curl -XGET https://localhost:9200 -u 'admin:admin' --insecure
$curl -XGET https://localhost:9200/_cat/nodes?v -u 'admin:admin' --insecure
$curl -XGET https://localhost:9200/_cat/plugins?v -u 'admin:admin' --insecure
ได้ response มาก็จะพบว่าใช้งานได้ละ
แต่ !!!!!!
สังเกตอะไรไหมครับ Username และ Password มันช่างง่ายดายเสียนี่กระไร หากมีใครล่วงรู้ก็สามารถมาทำอะไรๆกับ Open Search ของเราได้ล่ะสิ ดังนั้นควรจะเปลี่ยนมันซะเพื่อป้องกันการเข้าถึงที่ง่ายเกินไประดับนึง
ดังนั้นจึงต้องไปแสดงหาวิธีการในการแก้ไข password ของ admin อย่างง่ายๆเพื่อไม่ให้เปลืองพลังงานชีวิตจนเกินไป ก็พบทางสว่าง จาก link นี้ที่เค้าทำการเปลี่ยน password admin ของ Elastics Search บน Open Distro
ดังนั้นมาลองกันเลยครับ
- ตรวจสอบเสียก่อนว่า container ที่เรารันชื่ออะไรจะได้เข้าไปจัดการได้ถูก run คำสั่งนี้ได้เลย
$docker ps -a
ก็จะเจอ
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ce2cb3a905c opensearchproject/opensearch:1.3.1 "./opensearch-docker…" 42 minutes ago Up 42 minutes 0.0.0.0:9200->9200/tcp, 9300/tcp, 0.0.0.0:9600->9600/tcp, 9650/tcp zen_lamarr
- เจอแล้วก็เข้าไปข้างใน container เพื่อจัดการครับ
$docker exec -it {ชื่อ container ที่ต้องการ} /bin/bash
- ก็จะเข้ามาใน terminal ของ docker ได้แล้ว
[opensearch@9ce2cb3a905c ~]$
คราวนี้ก็พร้อมให้เราจัดการแล้วครับ
- ขั้นแรกจัดการสร้าง hash ของ password ใหม่เสียก่อน ด้วยคำสั่งนี้
[opensearch@9ce2cb3a905c ~]$ /usr/share/opensearch/plugins/opensearch-security/tools/hash.sh
ระบบก็จะขึ้น Prompt [Password:] เพื่อให้เราป้อนค่าที่ต้องการครับแล้วมันจะ Hash ให้เราเลยแบบนี้
[opensearch@9ce2cb3a905c ~]$ /usr/share/opensearch/plugins/opensearch-security/tools/hash.sh
[Password:]
$2y$12$L3hqnOTHLUTa1M9MCwboZ.74PHhcKsnzix2Tv34308U7qi11f2Uw6
[opensearch@9ce2cb3a905c ~]$
- จากนั้นตามหา file internal_users.yml เพื่อแก้ไข password ของ admin ซึ่งมันจะอยู่ที่
/usr/share/opensearch/plugins/opensearch-security/securityconfig/internal_users.yml
ยังดีครับ image นี้มี vi ให้เราใช้แก้ไข file ได้ บาง image เอาออกเกลี้ยงจะทำอะไรทีต้อง eho ทับมันก็จะรันทดหน่อยๆ
ก็จัดการมันครับ
$vi /usr/share/opensearch/plugins/opensearch-security/securityconfig/internal_users.yml
จะพบ section hash กันต่อหน้าต่อตาเลยทีเดียว
# Define your internal users here
## Demo users
admin:
hash: "$2y$12$/yozwRC7sWQMzj.O3s5wvOR12gm9KpDgpMtxEypUTgcmlRnbpZtay"
reserved: true
backend_roles:
- "admin"
description: "Demo admin user"
copy hash ที่เราได้มาใหม่ทับเลยครับ แต่ยังไม่จบ เมื่อเปลี่ยนแล้วต้องให้มันรู้จักครับว่าเปลี่ยน
- Run Command นี้เข้าไป
$cd /usr/share/opensearch/plugins/opensearch-security/tools
$./securityadmin.sh -cd ../securityconfig/ -icl -nhnv -cacert /usr/share/opensearch/config/root-ca.pem -cert /usr/share/opensearch/config/kirk.pem -key /usr/share/opensearch/config/kirk-key.pem
เป็นอันเรียบร้อยครับ
- ลองทดสอบดูด้วย user / password เดิมจะพบว่าใช้ไม่ได้แล้ว
$curl -XGET https://localhost:9200 -u 'admin:admin' --insecure
$Unauthorized
แต่เมื่อทดสอบด้วย password ใหทม่
curl -XGET https://localhost:9200 -u 'admin:password' --insecure
{
"name" : "9ce2cb3a905c",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "L4yL5lc1SMOVrmPty8msOA",
"version" : {
"distribution" : "opensearch",
"number" : "1.3.1",
"build_type" : "tar",
"build_hash" : "c4c0672877bf0f787ca857c7c37b775967f93d81",
"build_date" : "2022-03-29T18:35:30.372094Z",
"build_snapshot" : false,
"lucene_version" : "8.10.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}
ก็จะพบว่าใช้ได้แล้วตามปกติ
เป็นอันว่าจบไปครับกับการเปลี่ยน admin password ของ opensearch อย่างง่าย(ตรงไหน) เผื่อใครจะเอาไปใช้นะครับ
Top comments (0)