讓Easysearch運行在Kylin V10 (Lance)-aarch64上

簡介

本文主要介紹在國產(chǎn)操作系統(tǒng) Kylin V10 (Lance)-aarch64 上安裝單機(jī)版 Easysearch/Console/Agent/Gateway/Loadgen

系統(tǒng)配置

在安裝之前搪哪,需要先進(jìn)行系統(tǒng)參數(shù)調(diào)整并創(chuàng)建操作用戶颜阐,以下命令均需要使用 root 用戶操作。

#配置nofile和memlock
tee /etc/security/limits.d/21-infini.conf <<-'EOF'
*                soft    nofile         1048576
*                hard    nofile         1048576
*                soft    memlock        unlimited
*                hard    memlock        unlimited
root             soft    nofile         1048576
root             hard    nofile         1048576
root             soft    memlock        unlimited
root             hard    memlock        unlimited
EOF

#關(guān)閉THP
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
grep -i HugePages_Total /proc/meminfo

grep -wq transparent_hugepage /etc/rc.local || cat <<-'EOF' >> /etc/rc.local

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
  echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
chmod 755 /etc/rc.local

#內(nèi)核調(diào)優(yōu)
tee /etc/sysctl.d/70-infini.conf <<-'EOF'
vm.max_map_count = 262145
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 900
net.ipv4.tcp_max_tw_buckets = 2000000
net.ipv4.ip_local_port_range = 1024 65535
EOF
sysctl -p /etc/sysctl.d/70-infini.conf

用戶配置

#創(chuàng)建Easysearch操作用戶
groupadd -g 602 es
useradd -u 602 -g es -m -d /home/es -c 'easysearch' -s /bin/bash es

配置 JDK

#在各個節(jié)點上分別操作
wget -N https://release.infinilabs.com/easysearch/jdk/zulu17.40.19-ca-jdk17.0.6-linux_aarch64.tar.gz -P /usr/src

mkdir -p /usr/local/jdk
tar -zxf /usr/src/zulu*.tar.gz -C /usr/local/jdk --strip-components 1

tee /etc/profile.d/java.sh <<-'EOF'
# set java environment
JAVA_HOME=/usr/local/jdk
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH
EOF
source /etc/profile
java -version

Easysearch 部署

部署及密碼配置

#在線安裝
curl -sSL http://get.infini.sh | bash -s -- -p easysearch -d /data/easysearch
#初始化證書(若不采用默認(rèn)證書庄呈,如需要調(diào)整證書可修改證書生成文件)
cd /data/easysearch
bin/initialize.sh
ll /data/easysearch/config/{*.crt,*.key,*.pem}

#調(diào)整默認(rèn)密碼及服務(wù)配置文件
export ES_HOME=/data/easysearch
pass=`tr -cd 'a-zA-Z0-9!@#$%' </dev/urandom | head -c20`
#記錄密碼后,刪除該文件
echo $pass > /usr/src/pass
hash=`$ES_HOME/bin/hash_password.sh -p $pass`
echo $hash

#更新密碼字段
cat <<EOF > $ES_HOME/config/security/user.yml
meta:
  type: "user"
  config_version: 2

# Define your internal users here

## Admin users
admin:
  hash: "$hash"
  reserved: true
  external_roles:
    - "admin"
  description: "Admin user"
EOF

配置文件及 JVM 調(diào)整

cat <<EOF > /data/easysearch/config/easysearch.yml
cluster.name: infinilabs
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

cluster.initial_master_nodes: ["node-1"]

path.home: /data/easysearch
path.data: /data/easysearch/data
path.logs: /data/easysearch/logs

http.compression: true

security.enabled: true
security.audit.type: noop
security.ssl.transport.cert_file: instance.crt
security.ssl.transport.key_file: instance.key
security.ssl.transport.ca_file: ca.crt
security.ssl.transport.skip_domain_verify: true
security.ssl.http.enabled: true
security.ssl.http.cert_file: instance.crt
security.ssl.http.key_file: instance.key
security.ssl.http.ca_file: ca.crt

security.allow_default_init_securityindex: true

security.nodes_dn:
  - 'CN=infini.cloud,OU=UNIT,O=ORG,L=NI,ST=FI,C=IN'

security.restapi.roles_enabled: [ "superuser", "security_rest_api_access" ]

security.system_indices.enabled: true
security.ssl.http.clientauth_mode: OPTIONAL
security.system_indices.indices: [".infini-*"]

#for admin dn
## specify admin certs to operate against system indices, basic_auth is not required
##  curl -k  --cert config/admin.crt --key config/admin.key   -XDELETE 'https://localhost:9200/.infini-*/'
security.authcz.admin_dn:
  - 'CN=admin.infini.cloud,OU=UNIT,O=ORG,L=NI,ST=FI,C=IN'
EOF

#根據(jù)實際機(jī)器內(nèi)存的大小進(jìn)行配置,推薦配置為機(jī)器內(nèi)存一半,且不超過31G
sed -i "s/1g/4g/g" $ES_HOME/config/jvm.options

備份目錄及權(quán)限調(diào)整

#創(chuàng)建備份目錄
mkdir -p /data/easysearch/backup
#更新目錄權(quán)限
chown -R es.es /data/easysearch

環(huán)境變量及啟動服務(wù)

su - es
grep -wq easysearch ~/.bashrc || cat<<EOF >> ~/.bashrc
export ES_HOME=/data/easysearch
EOF
source ~/.bashrc

#以后臺方式啟動服務(wù)
$ES_HOME/bin/easysearch -d

Easysearch 驗證

curl -ku "admin:$pass" https://127.0.0.1:9200
curl -ku "admin:$pass" https://127.0.0.1:9200/_cluster/health?pretty
curl -ku "admin:$pass" https://127.0.0.1:9200/_cat/nodes?v

部署 Console

curl -sSL http://get.infini.sh | bash -s -- -p console

#安裝服務(wù)并啟動
cd /opt/console
./console-linux-arm64 -service install
./console-linux-arm64 -service start

#驗證
systemctl status console

部署 Agent

curl -sSL http://get.infini.sh | bash -s -- -p agent

#修改Agent配置文件
cd /opt/agent
sed -i "/ES_ENDPOINT:/ s|\(.*\: \).*|\1$https://localhost:9200|" agent.yml
sed -i "/ES_USER:/ s|\(.*\: \).*|\1admin|" agent.yml
sed -i "/ES_PASS:/ s|\(.*\: \).*|\1$pass|" gateway.yml
sed -i "/API_BINDING:/ s|\(.*\: \).*|\1\"0.0.0.0:8080\"|" agent.yml
head -n 5 agent.yml

#安裝服務(wù)并啟動
./agent-linux-arm64 -service install
./agent-linux-arm64 -service start

#驗證
systemctl status agent

部署 Gateway

curl -sSL http://get.infini.sh | bash -s -- -p gateway
cd /opt/gateway

#修改Gateway配置文件
sed -i "/ES_PASS:/ s|\(.*\: \).*|\1$pass|" gateway.yml
head -n 10 gateway.yml

#安裝服務(wù)并啟動
./gateway-linux-arm64 -service install
./gateway-linux-arm64 -service start

#檢查服務(wù)
systemctl status gateway
curl -u "admin:$pass" http://127.0.0.1:8000

部署 Loadgen

curl -sSL http://get.infini.sh | bash -s -- -p loadgen

#寫入數(shù)據(jù)測試
cd /opt/loadgen
mkdir -p mock
cat <<EOF > mock/nginx.log
175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET / HTTP/1.1" 200 8676 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /vendor/bootstrap/css/bootstrap.css HTTP/1.1" 200 17235 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /vendor/daterangepicker/daterangepicker.css HTTP/1.1" 200 1700 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /vendor/fork-awesome/css/v5-compat.css HTTP/1.1" 200 2091 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /assets/font/raleway.css HTTP/1.1" 200 145 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /vendor/fork-awesome/css/fork-awesome.css HTTP/1.1" 200 8401 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /assets/css/overrides.css HTTP/1.1" 200 2524 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /assets/css/theme.css HTTP/1.1" 200 306 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /vendor/fancytree/css/ui.fancytree.css HTTP/1.1" 200 3456 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /syncthing/development/logbar.js HTTP/1.1" 200 486 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
EOF

cat <<EOF > loadgen.yml
env:
  ES_USERNAME: admin
  ES_PASSWORD: $pass
  ES_ENDPOINT: http://localhost:8000
runner:
  # total_rounds: 1
  no_warm: false
  # Whether to log all requests
  log_requests: false
  # Whether to log all requests with the specified response status
  log_status_codes:
    - 0
    - 500
  assert_invalid: false
  assert_error: false
variables:
  - name: ip
    type: file
    path: dict/ip.txt
  - name: message
    type: file
    path: mock/nginx.log
    replace: # replace special characters in the value
      '"': '\"'
      '\': '\\'
  - name: user
    type: file
    path: dict/user.txt
  - name: id
    type: sequence
  - name: uuid
    type: uuid
  - name: now_local
    type: now_local
  - name: now_utc
    type: now_utc
  - name: now_unix
    type: now_unix
  - name: suffix
    type: range
    from: 10
    to: 13
requests:
  - request:
      method: POST
      runtime_variables:
        batch_no: uuid
      runtime_body_line_variables:
        routing_no: uuid
      basic_auth:
        username: $[[env.ES_USERNAME]]
        password: $[[env.ES_PASSWORD]]
      url: $[[env.ES_ENDPOINT]]/_bulk
      body_repeat_times: 5000
      body: |
        { "index" : { "_index" : "test-$[[suffix]]", "_id" : "$[[uuid]]" } }
        { "id" : "$[[uuid]]","routing_no" : "$[[routing_no]]","batch_number" : "$[[batch_no]]","message" : "$[[message]]","random_no" : "$[[suffix]]","ip" : "$[[ip]]","now_local" : "$[[now_local]]","now_unix" : "$[[now_unix]]" }
EOF

#執(zhí)行測試
./loadgen-linux-arm64 -c 6 -d 6 --compress

#檢查測試索引文檔
curl -u "admin:$pass" http://127.0.0.1:8000/_cat/indices/test*?v

至此努酸,完成在 Kylin V10 (Lance)-aarch64 上安裝單機(jī)版 Easysearch/Console/Agent/Gateway/Loadgen。通過瀏覽器 http://安裝機(jī)器 IP:9000/ 即可訪問 Console罩缴,對 Easysearch 進(jìn)行配置管理蚊逢。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末层扶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子烙荷,更是在濱河造成了極大的恐慌镜会,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件终抽,死亡現(xiàn)場離奇詭異戳表,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)昼伴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門匾旭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人圃郊,你說我怎么就攤上這事价涝。” “怎么了持舆?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵色瘩,是天一觀的道長。 經(jīng)常有香客問我逸寓,道長居兆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任竹伸,我火速辦了婚禮泥栖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勋篓。我一直安慰自己吧享,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布生巡。 她就那樣靜靜地躺著耙蔑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪孤荣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天须揣,我揣著相機(jī)與錄音盐股,去河邊找鬼。 笑死耻卡,一個胖子當(dāng)著我的面吹牛疯汁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卵酪,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼幌蚊,長吁一口氣:“原來是場噩夢啊……” “哼谤碳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起溢豆,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蜒简,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后漩仙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搓茬,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年队他,在試婚紗的時候發(fā)現(xiàn)自己被綠了卷仑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡麸折,死狀恐怖锡凝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情垢啼,我是刑警寧澤私爷,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站膊夹,受9級特大地震影響衬浑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜放刨,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一工秩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧进统,春花似錦助币、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掉分,卻和暖如春俭缓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酥郭。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工华坦, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人不从。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓惜姐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親椿息。 傳聞我的和親對象是個殘疾皇子歹袁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容