找回密码
 注册
查看: 47|回复: 6

elasticsearch8版本安装详细步骤(集群安装)

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2024-10-31 15:53:27 | 显示全部楼层 |阅读模式
" V1 g# L3 Z# y4 L# r+ E/ I; V
, }! X. R. }0 d( H7 ]# l; B
elasticsearch8版本安装详细步骤
2 x" h5 Y& y6 b3 J# f5 r, G7 B. B* w" T3 a( z
6 [4 m  Y: h- R$ Q
1、设置虚拟内存$ Q4 D+ J; t2 x, f1 ?9 C9 R$ s
sysctl -w vm.max_map_count=262144
! P6 Y: d9 a3 _' yecho "vm.max_map_count=262144" >> /etc/sysctl.conf,
- W9 o( v+ P$ X3 ^" L0 ~: Gecho "vm.max_map_count = 262144" >> /etc/sysctl.conf
& s9 i# V2 r: v0 j) R2 }  a* R$ X2 G7 q+ d, F) n

; w, F+ ]& n) y- I; E4 R9 Q) g. E6 j1 r/ Z6 l
, d7 Y# x0 F* w2 M% U$ O6 F: |4 Z
加入:vm.max_map_count=262144: ~8 `1 J# `& r! @$ a0 k& ]# [
使配置生效:sysctl -p
. e8 c* K& r% ?; E0 R% c) G8 L
" G- l' e# z$ D
) K2 `% t2 m- ^. M+ d
2、设置文件打开数:
6 M6 j( m) S6 K, D2 z; I# Lcat >>/etc/security/limits.conf<<EOF
% Z# P, i& A( f* F* soft nofile 655357 `, i  x0 E' |9 Z- G9 j4 w
* hard nofile 65535
# d9 j( j6 A1 D* k- }( G* soft nproc 65535
7 T% D0 W! E$ q. S# i" E; c* M* hard nproc 655355 i9 K9 r6 S+ F+ m$ A' k5 _
EOF, G! q) g* U0 \. r* F
% _3 ~) [. [. t5 D
" W/ \9 o+ O, Q! G# M6 @7 T6 Y
6 [7 w8 Q4 p( A3 c

. _; r0 d0 H. H设置pam配置:$ M$ r  a: x/ w) m' Y4 D
echo "session    required pam_limits.so" >> /etc/pam.d/login
" f* Q) k+ i2 D8 G4 f% R' X
7 e* B9 n) E  K( L
- w4 e5 F. l/ F! ]! a

) y4 E# b+ @# M. {/ }; j  l

# p; [# F+ j& J9 q3、禁用swap交换分区
6 U, O* g3 h$ g5 {! W9 Oswapoff -a                #临时禁用
, M+ v/ S$ W% V# Z/ ]8 Dvi /etc/fstab        #永久禁用
, x5 y0 W$ b$ M- o找到swap这一行前面使用#符号禁用掉
! x, S4 l6 f: c
$ }/ I6 l, N% M" T* w# {, ]$ U
) j6 t! e, x& `# p
4、设置TCP重传超时
! ]# X' S' o  G" A1 R. Qsysctl -w net.ipv4.tcp_retries2=5
  y. y$ c4 p& N* T9 U编辑配置文件:echo "net.ipv4.tcp_retries2 = 5" >> /etc/sysctl.conf
" v) ^' v4 t$ i$ p) ^  \7 y9 }
* c1 U2 Z* j, ^
5 F8 C4 P6 c+ O1 C, B6 i( o
5、创建一个用户
/ G8 @# r+ [" o8 M9 duseradd es- g- w; g9 E1 \$ m9 c1 o) H+ S( L
; X$ o+ I9 {; x# M
& R* _- P5 Y2 L8 T
6、创建安装目录
$ @4 r4 d. R- Y, y6 H' \4 Smkdir /data/elasticsearch/
4 Q8 C$ f( m; V6 J( i6 S& e6 Smkdir /data/elasticsearch/elastic-cluster1
% Z0 J  I" a: ?. n& z$ ]/ l9 S5 H3 H% }& Z

* U( L7 c0 u7 H* ~9 f/ jmkdir /data/elasticsearch/elastic-cluster2
) C, n: L4 p. a3 S2 p
0 c3 {% Y; b3 d2 Q
' d+ E2 H8 H& i5 f9 @- l

) C* [- h4 U4 S) ]. o

% w4 `. b0 ?; G6 G% u6 X
4 w. L) {- R# K; h9 l% F
& ^) ~4 p9 I  r  n1 H* z
[root@it-elassearch ~]# ls -p /data/elasticsearch" G" R9 e! R2 U& Q
elastic-cluster1/  elastic-cluster2/
& i# M% ^. t; d9 v! ^. @
. {& z2 K$ }3 y1 V7 k7 O: k: {8 d

4 q, A+ r+ z" H- P
+ d( g! q; O$ [/ I
5 {+ p4 s8 E+ q  w
$ o$ s2 j5 h5 C2 G3 s6 i
! Y+ Q4 F& m; d% i# j* x
7、下载官网安装包
* I, ^1 R2 O* p& ~% V: I官网下载地址,选择对应版本的elasticsearch和kibana:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
+ ?) D! I1 e5 e. P) x# d1 }https://www.elastic.co/cn/downloads/past-releases#elasticsearch! ]( F5 s2 f# s7 Y3 O3 c- U
2 b# Q. b9 c1 \" c* u: m! j

5 W! B( D8 `! L[root@it-elassearch-2 ~]# chown es:es elasticsearch-8.15.0-linux-x86_64.tar.gz , \0 a& T! T6 k/ i& B2 G, z
[root@it-elassearch-2 ~]# mv elasticsearch-8.15.0-linux-x86_64.tar.gz /data/elasticsearch/6 O( O' Q5 S- h- a; W- b
# ~$ v1 i1 T' h7 E% A

( m3 U9 U7 L' F0 i- r! C8 N* T- U切换到es账号:
( e& Z/ [+ o% j+ ^- [2 j/ U  q9 e3 p, C( z
& Y! W" n  G6 S
7.1 解压:我的安装包下载到了目录下,解压到/elasticsearch/elastic-cluster1/目录下
4 A- k2 U$ m: g7 b! a
% a2 d1 V, p0 r, _, f* m: o8 }: w

$ q# T2 o. ?( u" Wcd /data/elasticsearch/elastic-cluster1
" w5 X. b& a4 q# l0 }[es@it-elassearch elastic-cluster1]$ ls
! o4 P$ G. }; v" {+ q5 K
5 _& I! q' D' P$ {: O# L9 @- _6 Telasticsearch-8.15.0-linux-x86_64.tar.gz; N2 u* y* b" D  F8 Q6 x

: j9 {7 E% u1 _- c* d
: X) ?4 P' Y9 Q/ A0 c6 R7 Z
/data/elasticsearch/elastic-cluster2, q; j( A( B, Y5 F
[es@it-elassearch-2 elastic-cluster2]$ ls
" c0 L. c; e, V% belasticsearch-8.15.0-linux-x86_64.tar.gz, ^9 s, o, ?* `: Z8 |3 F8 Z. ~/ q: J
. X( J5 L4 L# L6 c5 C0 E
: C* V- q7 T4 e. i) L
解压:
, z6 k6 ], n0 @4 ?  \7 |2 o' X  f8 q7 A9 p" V6 d* a# U1 H! @' I/ X
[es@it-elassearch elastic-cluster1]$ tar -zxvf elasticsearch-8.15.0-linux-x86_64.tar.gz 5 [9 \/ Z  @3 _7 ^6 R" M
& F, [- o( G, q! E2 f

" A- [2 r& s" N) W9 f( @9 @  b
8 F* N" B, u. n) x
4 l: X1 o$ T, P  ?; C6 W0 K
[es@it-elassearch-2 elastic-cluster2]$ tar -zxvf elasticsearch-8.15.0-linux-x86_64.tar.gz( e) s" {; z1 b7 ?% ?& ]
0 l# O7 Y3 g  Z- _* E; O
8 V3 t* n7 h9 c( a
进入对应目录下:cd /elasticsearch/elastic-cluster1
3 i- q- u0 S+ r  [
0 _1 D* ?0 k* D9 B

/ i3 [& `% q1 J: p) |* v' J: [配置es参数文件:
+ i; W3 ~' i- h1 R$ z) z+ i0 T6 `. v) Q& X3 n5 a* O
+ h1 s: z* C2 o: }$ d
节点一配置:. L  C( R2 {. ?8 V6 s
#vim elasticsearch-8.15.0/config/elasticsearch.yml
% z1 `3 e3 w6 W  |4 T! y/ B/ _# t6 N2 r6 b8 e
$ M2 s1 D! H/ B2 a9 z0 A7 _; s# I
cluster.name: essearch8 X7 l) M  o! |- g: v3 u: b
node.name: it-elassearch' @+ z( `: ]6 v: Q) o2 ^) @1 O
path.data: ./elasticsearch-8.15.0/data. b9 y7 t% M1 }7 q& ?
path.logs: ./elasticsearch-8.15.0/logs
1 d! _3 Y( v  [network.host: 0.0.0.0' q: i' Y- ~1 {8 Z( o4 u* X
http.port: 9200
, K5 `. j1 W4 o1 ddiscovery.seed_hosts: ["172.24.110.125", "172.24.110.126"]
( B( g. l* |( `+ q* z4 p, b; \1 O  ]cluster.initial_master_nodes: ["it-elassearch", "it-elassearch-2"]9 R! L; g; E2 I6 A2 Z9 G
#node.master: true
) f3 L. C. k8 b) x4 h. o! @#node.data: true2 F( I' x& \& S1 i' G) Q% R" E

1 \! t  O# I% j8 M) S8 e6 A

" @2 d: @# X7 W" }% cxpack.security.transport.ssl.enabled: false
2 I1 _9 N" [# G% e, A9 B5 Kxpack.security.enabled: false
; K) a) X7 B, W5 U% W4 ?$ w* W) n6 A3 u

8 m! y0 x$ W" s% \! s下面是加鉴权的配置:
3 ^% x% s9 f' U  e% a( ocluster.name: essearch+ ]0 q# f, ^# u( U
node.name: it-elassearch
9 V. A2 S* g: h7 Q9 Fpath.data: ./elasticsearch-8.15.0/data4 [* R& [! C* W1 |- F! n% Q, }/ |
path.logs: ./elasticsearch-8.15.0/logs
+ P( e/ M7 \2 F* S4 H# a0 onetwork.host: 0.0.0.0+ E9 B# K; E) [, Y4 h
http.port: 9200
# ?- T1 r8 j' _: H9 D/ h0 ^discovery.seed_hosts: ["172.24.110.125", "172.24.110.126"]
* U; A( [5 g# A7 ?cluster.initial_master_nodes: ["it-elassearch", "it-elassearch-2"]
2 O" c, N% Y& D8 Y0 X- Qhttp.cors.enabled: true
/ w2 m+ s6 t8 fhttp.cors.allow-origin: "*"5 y% [, Q) V! l$ x
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length8 [- S2 i; s3 Y' A* s! |& R$ O* I) x
xpack.security.enabled: true9 s  c8 ~+ _& H0 L& {8 E7 x
#xpack.security.authc.accept_default_password: true3 h0 [2 g5 c0 d5 o
xpack.security.transport.ssl.enabled: true; Y7 ?" |0 C9 }9 c6 l. z
xpack.security.transport.ssl.verification_mode: certificate. A6 M+ B- u/ p, Z2 w5 L
xpack.security.transport.ssl.keystore.path: /data/elasticsearch/elastic-cluster1/elasticsearch-8.15.0/config/certificates/elastic-certificates.p12
5 M: ^+ L$ |1 P5 P$ `# n
7 N: d7 m- b1 S% Pxpack.security.transport.ssl.truststore.path: /data/elasticsearch/elastic-cluster1/elasticsearch-8.15.0/config/certificates/elastic-certificates.p123 t2 E* I8 ^1 F# H6 d5 b

% ]' t+ R2 e) _

! P% e( `& c. [7 V8 K5 B2 R% j0 \; @% k0 A2 U/ F

: ~) x4 ?; ^  S* Z节点二配置5 |* E- K' p# g1 y7 F2 r8 l
#vim elasticsearch-8.15.0/config/elasticsearch.yml$ m4 ~- S, D/ W; @: m

: s$ T# f6 y8 e2 O. m1 _/ r5 {; V

: N  M; m$ H6 T8 q0 S5 q+ Rcluster.name: essearch+ B8 ?4 Q  p5 U; v0 x
node.name: it-elassearch-2
; N( ?# F& L5 W: u% Epath.data: ./elasticsearch-8.15.0/data0 ~6 g- _1 \7 j! V9 c2 \
path.logs: ./elasticsearch-8.15.0/logs9 }+ P3 @1 b# M9 l" W
network.host: 0.0.0.05 y1 c, J/ y: U  v' I5 J0 Y
http.port: 9200  B8 j) B$ Z2 i. K
discovery.seed_hosts: ["172.24.110.125", "172.24.110.126"]& S4 Z4 W$ ]. v- K
cluster.initial_master_nodes: ["it-elassearch", "it-elassearch-2"]
2 O8 _2 _( d, |#node.master: true
9 m, K+ k. w: A7 {9 s% g  P#node.data: true
1 `& X3 Q1 l3 L) t$ x* s& @$ z0 a8 x- m5 m0 }7 F
) _( a& B: l& ~- W4 p# x& \
xpack.security.transport.ssl.enabled: false
( z! n( w/ _8 n7 mxpack.security.enabled: false
& n# o( ^1 X) g  @
" q- h2 W0 G% j+ v+ Z

/ o* J9 v$ n1 {4 g下面是鉴权的配置:9 c  i. P+ @4 \# [) x$ F: ?
cluster.name: essearch4 @& O" v+ G# h
node.name: it-elassearch-2
7 H; A. w8 m9 S" `/ Epath.data: ./elasticsearch-8.15.0/data
; h1 E# K% g6 ?5 t( ^) D4 tpath.logs: ./elasticsearch-8.15.0/logs
4 l# Q5 ]  |# anetwork.host: 0.0.0.0# |5 K3 b, j1 [' q9 \+ m" Q
http.port: 9200
" H0 H  o9 _- V& H/ T. {: ]discovery.seed_hosts: ["172.24.110.125", "172.24.110.126"]
5 R: H& i9 `& h) Pcluster.initial_master_nodes: ["it-elassearch", "it-elassearch-2"]" q. }2 H2 ]. U! d* F# f/ S9 b
http.cors.enabled: true' y/ [5 l0 ^  r7 `1 x' r2 a5 k
http.cors.allow-origin: "*"
* @- }/ a* N1 }http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length0 w# g3 l' d/ x3 [) [
xpack.security.enabled: true0 P0 ~2 ?0 Z& I9 r
#xpack.security.authc.accept_default_password: true% @) p9 m' p( Q; b: v$ v) u  X( _
xpack.security.transport.ssl.enabled: true3 {7 M" k; r4 F6 C% A0 R  v( d
xpack.security.transport.ssl.verification_mode: certificate
( C6 y1 S4 B9 S/ @) ?: V' mxpack.security.transport.ssl.keystore.path: /data/elasticsearch/elastic-cluster2/elasticsearch-8.15.0/config/certificates/elastic-certificates.p12
; O+ `0 U' g4 Y' C
" }* L2 w2 i9 w: V  ^xpack.security.transport.ssl.truststore.path: /data/elasticsearch/elastic-cluster2/elasticsearch-8.15.0/config/certificates/elastic-certificates.p12
. B3 f, S% P: @: v/ N, W
8 x5 K+ X; t7 d) F) b% i; X# O
9 B/ N; {4 h8 o  u  B9 m

0 S- ~- l; Z4 P! e! [# Y8 `

1 S: N1 @6 r4 G+ \$ P9 }% @JVM堆内存大小设置
/ T3 O" V. v6 ~设置内存大小:
) e1 n/ u) E9 O  A/ ~/ L4 C; M, n0 B6 t- T) K, B" M

3 d/ b# @3 t0 i( t! P; m1 x+ \
, \" R' S5 Q& X+ j
8 e$ g0 _( r/ m7 w' }
2 x: U3 e# ^( U! Y
vim elasticsearch-8.15.0/config/jvm.options
% B* Q! d: Z( A" ]! L3 O* R! J, O. \) D& ?+ V: H
( t) u! @/ {8 y* L8 Y( g
5 ?( Z! P7 [9 m; R
3 y( b* O# E% Q9 h
-Xms4g
5 @% h. M2 ]/ \9 m! p: J-Xmx4g
0 [' d: P' d3 |0 P; v$ z) y1 K. X# i8 b1 L

" U  {1 V' c" D/ Q0 N8 A! |9 O- r( {1 w% B0 x0 z0 S, V( E" l5 _

; G* e) J$ D4 c! j4 |实际业务线上环境,建议所有Elasticsearch节点都是独立节点,不要部署其他程序、其他后台进程,以提高性能。如果内存足够大,比如:128GB、256GB,单节点是浪费,建议通过虚拟化方式切分开。
9 l" t% x" i0 O3 ]8 N4 c" Z% R- G
) N4 G! a9 ^  }( `2 C0 `

, Z1 I7 n% X4 B% I1 U5 A+ H9 u, R5 n( e7 T, w6 B- s* h2 Z- E
( [: O- o" P+ M- b+ V9 H& ^, z% r# a
* q# D- E+ Z3 w: L; B( ?) [

* L7 n+ g9 t% n! N7 L7 Q解释:+ r" C, i- z# l( Q2 P" I% l  u9 C
; I' G# k7 t( ^; I

0 U* m" s& ^* T# [; D( Z8 P目录结构8 u/ Q4 a) I. K2 S' p$ W. [' G; f
Type        Description        Default Location        Setting+ s5 C9 t: w+ J
home        Elasticsearch 主目录或 $ES_HOME        Directory created by unpacking the archive        
3 b$ {6 i" |  L5 `" b8 G# Abin        二进制脚本,包括用于启动节点的 elasticsearch 和用于安装插件的 elasticsearch-plugin        $ES_HOME/bin        ( ^% j3 U1 v# F
conf        配置文件,包括但不限于elasticsearch.yml        $ES_HOME/config        ES_PATH_CONF
$ e9 ^. C1 ]& E# v- m  J: r3 ]; wconf        为传输层和 HTTP 层生成 TLS 密钥和证书        $ES_HOME/config/certs        3 ]! a( K% O+ D. x
data        节点上分配的每个索引/分片的数据文件的位置        $ES_HOME/data        path.data
  x2 f( n9 S5 S) g0 G1 ^logs        日志文件位置        $ES_HOME/logs        path.logs
3 o8 l3 d  u  m- ~. oplugins        插件文件位置。每个插件将包含在一个子目录中        $ES_HOME/plugins        
6 p- M  L/ e2 }9 X* E# Prepo        共享文件系统存储库位置。可以容纳多个位置。文件系统存储库可以放置在此处指定的任何目录的任何子目录中        Not configured        path.repo
. t0 q  l$ L# U" x, W* F! h8 Q5 j) E* D9 C7 Z& R- k8 n! s
集群名称设置:cluster.name:# q7 @1 [3 [! S+ a- d  K6 h
节点名称:node.name:/ R% ?7 p6 n4 E4 r
网络主机设置:network.host:
+ q* f' c. o5 C, ]0 t+ v+ }- F* g; @发现形成集群:discovery.seed_hosts:
  x1 l0 p- j& b选举主节点master资格的节点:cluster.initial_master_nodes:' V: S' f7 L' N3 c9 g6 n8 {/ v
设置集群间通信端口:transport.port:. e& o$ J7 C. M3 K( T- D
设置数据存放位置:path.data:
: I9 o6 L2 y/ h7 [3 z- K设置日志存放位置:path.logs:4 C; f/ h' \* l/ C  a
1 f1 ]- v7 u$ `) S  V2 Z+ q5 ?
cluster.name: CollectorDBCluster
! ~7 X: d" x9 N" S  Mpath.data:/data/elasticsearch/data
& ]1 |1 Y9 ]. p5 }8 f2 ~path.logs: /data/cusc-logs
/ N. W# a, Q# Qnetwork.host: 10.153.61.71, X9 H# K1 w: H+ F% P
http.pち中o砗rt: 9200
: o  R; |1 j' d% l8 }1 Znode.name:node-1
8 S/ |" V: F$ Jcluster.initial master nodes: ["node-1”1
/ W: F0 k% o8 R  g2 t8 e- {各配置项含义:
! T- E  b: I$ g% E7 Ocluster.name 集群名称,各节点配成相同的集群名称。
! l3 F  f8 B9 l" E0 l7 D* ?% _node.name 节点名称,各节点配置不同。
" w/ p" L! p5 M: v" F- K9 p0 ?/ wnode.master 指示某个节点是否符合成为主节点的条件。1 p6 h! T8 _! Q5 b% m) t; j2 ~0 G& v
node.data 指示节点是否为数据节点。数据节点包含并管理索引的一部分,
& S$ j/ i7 {# Y% K; p- epath.data 数据存储目录。$ _" v& ~! l' V: Q; t: g
path.logs 日志存储目录。8 C9 m8 J: `  X9 H- P
bootstrap.memory lock 内存锁定,是否禁用交换$ w8 x0 m+ O4 u1 Q6 q" n, Y
bootstrap.system call filter 系统调用过滤器。0 r$ B5 r7 N- T
network.host 绑定节点IP。
, H$ g0 ]+ F, W8 F8 `) p9 Fhttp.port 端囗。
" V. o( U, ?$ H4 J& I6 d' X( ?) o/ H: ~$ {' {1 Y6 x7 Z
启动集群:
% z: D0 o6 N/ b6 g
& G9 H# U, A2 ]  k5 p( C) a1 Z, }
7 B; T1 ^9 R- U8 o- q7 D
# \' I& z% K8 Q
% f1 Y8 S# ^; @+ i' X
配置文件属组权限,并启动' w' W' e( Y6 ~, h
[root@it-elassearch elasticsearch]# chown -R es:es elastic-cluster1/5 B/ e! ^2 y" n. J9 Y  {
[root@it-elassearch-2 elasticsearch]# chown -R es:es elastic-cluster2/
# U; c$ |6 z2 F/ T
- w" ^; U- x! a/ |3 A  {

$ n. }' x! B% X! V/ ~如果直接用es账号配置的,可以不做上面的操作:
1 }- f" F. M) w; k, @$ G7 @& S2 b7 T( c& d. k% L9 ~
$ {, ^- K+ U4 a1 g( R: F: }

+ Y% r$ X, G0 b& U! e0 z' v# l9 O

8 B! ]& }/ U* [/ ~) Y# ?如果添加鉴权配置请按照此处配置,不配置即可略过:
/ q- m% A1 i3 s% y' T/ ^2 j! e7 d: s- g1 n' i/ x& E1 O

$ O6 o! o4 s6 z" k6 N: x% @es开启认证详细步骤:
5 j! M) q3 Y# P; b  T7 \5 G- Z$ u( z. g" E5 ^3 J* t' c9 g: v

2 _9 T. u# P+ d7 q1、生成证书:
1 |7 I1 E. ?* k* q[es@it-elassearch elasticsearch-8.15.0]$ ./bin/elasticsearch-certutil ca
8 B/ X2 q2 F* ?This tool assists you in the generation of X.509 certificates and certificate
8 \4 \& w; [7 W/ V, {" N* o" m. r2 osigning requests for use with SSL/TLS in the Elastic stack.
8 E3 @- c0 G( Y
+ s' u" r' p" \+ y7 Z
$ i* m) y5 n0 r! [4 q6 r1 d
The 'ca' mode generates a new 'certificate authority'
/ v/ Z0 x- U  C- }; i, DThis will create a new X.509 certificate and private key that can be used
; a5 A( z, W- yto sign certificate when running in 'cert' mode.
; Z/ n& X7 d5 G# q$ f( Q/ A, j) ?
% y/ I: X% P; b) M7 ^% b1 ~
Use the 'ca-dn' option if you wish to configure the 'distinguished name'
$ D4 ]0 e, g9 f  Uof the certificate authority
' U! j/ u0 G* Z9 O5 B* [( m' [
% Y# a' ?; V: n) Y' z
By default the 'ca' mode produces a single PKCS#12 output file which holds:
% ~5 U4 o0 q2 g: j: m    * The CA certificate; {! G; @' v7 W3 u- F' z7 ^8 z
    * The CA's private key
' G1 M8 f% n% O& `( \9 n9 @# f
6 d. _0 d# v/ J. {
- I; I4 h0 t& W! W# c6 Q
If you elect to generate PEM format certificates (the -pem option), then the output will* l7 ]# ^# @% X
be a zip file containing individual files for the CA certificate and private key; n% Y9 p' n2 w0 ]# N$ o* N% ]6 D

0 ~# r. x6 S  |' v* G

# ~9 [- a* ^( L+ GPlease enter the desired output file [elastic-stack-ca.p12]:    【直接回车】0 x2 Z2 [, E1 V5 r* ^
Enter password for elastic-stack-ca.p12 :    【输入密码】4 h$ T+ Z0 X* L7 _/ Y
+ X  B7 e8 |' }5 d) f0 f6 |

  _# y& X! ?$ a% \+ b完成后会生成elastic-stack-ca.p12 文件
2 x+ N# F3 M- |# V4 f$ k2 N4 Z& Z" U) T9 b8 B' V9 }

% S& k7 r- j2 m! W! {2 \1 w( S

- z. c- X! A2 Y: d. k5 g2、生成密匙:
) i7 H( h& V/ n9 Z; U7 W1 m
; I- T* d5 D  `8 L- T0 q( B2 T

! F+ Z" L$ ~; p0 C! ?" ]0 I[es@it-elassearch elasticsearch-8.15.0]$ ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
$ h( m" \/ i& i5 g* a7 f, P$ tThis tool assists you in the generation of X.509 certificates and certificate
. ~) q# g  W. i" D% z. [% |# msigning requests for use with SSL/TLS in the Elastic stack.3 x2 B, l/ P% j* K& Q

' ^' c; k$ g5 ~# m' pThe 'cert' mode generates X.509 certificate and private keys.: L; w( j% x6 L1 s9 |
    * By default, this generates a single certificate and key for use5 L5 a. F, m3 Z8 E3 H* f
       on a single instance.. v( ?5 Z: b/ u3 X' D. n  B
    * The '-multiple' option will prompt you to enter details for multiple( I0 M7 f8 q2 \" W4 u: r) p
       instances and will generate a certificate and key for each one
9 s8 d; u+ K( K/ `; h    * The '-in' option allows for the certificate generation to be automated by describing3 X" s! x9 a6 r. @/ J/ [
       the details of each instance in a YAML file7 g( X- N% A' z% f  B; K
9 e. ]& Z6 `7 O2 [# u- B# `: u
    * An instance is any piece of the Elastic Stack that requires an SSL certificate.5 N. Q  I2 w1 X
      Depending on your configuration, Elasticsearch, Logstash, Kibana, and Beats3 l& `* r  u( ^0 m0 W5 ]# K! U
      may all require a certificate and private key.
& i- k' f# _. N/ t" x# e: q    * The minimum required value for each instance is a name. This can simply be the
. ~; z* ^( l( w! n: b      hostname, which will be used as the Common Name of the certificate. A full& u% o5 f9 `6 x) `
      distinguished name may also be used.2 t7 G9 k. d4 U2 x; j' s
    * A filename value may be required for each instance. This is necessary when the+ K$ y: @* @% W! i
      name would result in an invalid file or directory name. The name provided here
! ?! h% f0 c2 z) v) ^8 c1 J      is used as the directory name (within the zip) and the prefix for the key and+ G) f! Z6 G: M6 `
      certificate files. The filename is required if you are prompted and the name
4 i, w" J4 c  L% A+ ~      is not displayed in the prompt.
0 t1 w( K- g* {% A' P" R6 ~- R' G    * IP addresses and DNS names are optional. Multiple values can be specified as a  e5 }, Z) Z  ]9 r) k- m9 i- _
      comma separated string. If no IP addresses or DNS names are provided, you may
7 D& z! b% ^3 Y0 N      disable hostname verification in your SSL configuration.% e5 T5 C" s- K( ]

8 m9 _' S! J: J' g: d3 [  u+ n+ m- ~. T& h8 w% ]
    * All certificates generated by this tool will be signed by a certificate authority (CA)
( H$ O0 X$ E+ B& G- N/ M      unless the --self-signed command line option is specified.2 \4 F; d1 E) K; y$ c) o
      The tool can automatically generate a new CA for you, or you can provide your own with
, F( ~% X6 Y) b! y5 [      the --ca or --ca-cert command line options.) K1 l& C( ?4 ?2 _

9 y4 j! O2 a% F" a0 G
7 J2 K9 v  Y5 q; _+ aBy default the 'cert' mode produces a single PKCS#12 output file which holds:
3 j* Z+ X& n5 e- u4 l    * The instance certificate' d6 P/ f  P6 Z1 m7 q
    * The private key for the instance certificate' D! ]! i  h8 x- g8 X3 H
    * The CA certificate* U1 H, f6 H: h% P
0 {6 X4 U* I2 J
If you specify any of the following options:
7 F4 r1 [. d' A    * -pem (PEM formatted output)  W, L9 D: t% ~, F( v* l6 F7 ?  {
    * -multiple (generate multiple certificates)5 f0 Y: F$ H6 w3 o! Y
    * -in (generate certificates from an input file)
& Q1 w7 q4 b% G+ G" n3 A' S$ Lthen the output will be be a zip file containing individual certificate/key files
. @+ @0 X5 |! B. h' z2 r1 T
, `+ q- c" }* p  C: g8 M: Z; t( F3 SEnter password for CA (elastic-stack-ca.p12) :    【输入密码】
" m- v. e# n+ s6 c7 H2 M  n( OPlease enter the desired output file [elastic-certificates.p12]:     【直接回车】
$ m7 m4 q" D5 {' W* A" rEnter password for elastic-certificates.p12 :  【输入密码】( x, B  u: h, i4 }3 \

1 n: q) i  B. K* g8 R4 _Certificates written to /data/elasticsearch/elastic-cluster1/elasticsearch-8.15.0/elastic-certificates.p12- S; R" T; {7 K- d* K  {; I8 _

* {% F( z; v9 B) h2 |( pThis file should be properly secured as it contains the private key for
4 P1 @2 [7 k3 _+ y- M* myour instance.0 \" n+ t/ a# W& |6 L+ z9 _
This file is a self contained file and can be copied and used 'as is'5 d2 b; y! V+ D. C* m' V
For each Elastic product that you wish to configure, you should copy
. a% c" F+ L1 G1 zthis '.p12' file to the relevant configuration directory
& D9 _8 x3 {/ F) sand then follow the SSL configuration instructions in the product guide.
- z# F4 R5 {# |  ^: @- h6 F. M% a
1 Z  R6 ]2 ~1 X4 m% l( VFor client applications, you may only need to copy the CA certificate and0 i, v  \; o! I- u/ \
configure the client to trust this certificate.
. ^9 y6 l1 r7 s# }$ Q7 [) t( w5 p# j: E- x
1 W, c( T% b5 l0 x/ x: a
此操作中间需要输入刚才设置的密码就直接输入即可,需要输入路劲的地方可以不输入,直接回车就会生成一个文件在当前目录下:) f% U# J! `2 V  a# t* c
elastic-certificates.p12
* N4 y" y& S' d8 e5 Y% c  Q+ k
% s7 V  V0 E: n/ Z2 k
5 G* i; A/ Z* r. U8 _! f6 J: r, \
3、将凭证移至相应的目录即可:/ h! v: y, i8 t# C

% u* v  U' `; k; W8 M/ A
; e% w' y0 o" Q& T: x
##将凭证迁移到指定的目录:
! d; Z4 ^4 [4 O! F4 u4 p创建目录:
* D+ U! ?" j- ~! U! omkdir -p ./config/certificates/2 |8 U' l% H* @6 M* v1 k) |2 M
移动凭证到指定目录下:# f, A1 B! H6 X) p: l

: K) S, N' Q( I/ y[es@it-elassearch elasticsearch-8.15.0]$ mv elastic-certificates.p12 elastic-stack-ca.p12 ./config/certificates/( b7 v) u2 j+ H( M( }: _" ~4 V
" _" T5 F* h6 ]! a% L5 @

" v! n$ l2 W+ i3 Q9 F4、复制凭证到每个节点上:(使用scp或者rsync方式即可). Q, t( o: ]0 a: L
[es@it-elassearch elasticsearch-8.15.0]$ rsync -azvP -e 'ssh -p 60028' config/certificates/ es@172.24.110.126:/data/elasticsearch/elastic-cluster2/elasticsearch-8.15.0/config/certificates/# j, }' c, W4 j; m  N! O% {" Q
es@172.24.110.126's password:
+ [. W; z7 d+ o3 w! Wsending incremental file list# d6 M. B+ J" Z* I9 H/ R; {
./
# N% j/ L% z1 O8 X% Relastic-certificates.p12
) U( z; n3 g: [, c+ U          3,596 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=1/3)9 _5 y8 g1 x' u2 p9 Y
elastic-stack-ca.p12
5 X* r$ K( k) V( A2 f          2,672 100%    2.55MB/s    0:00:00 (xfr#2, to-chk=0/3)
# B  X  _6 Z5 o8 a, @8 C! P  X
& Q% ^% l1 n; h  J" [$ {6 E4 H

2 K9 ]! Z! R  Rsent 6,314 bytes  received 57 bytes  1,415.78 bytes/sec" x. I% u& M# H& Y$ b  O) Y, b
total size is 6,268  speedup is 0.986 }0 H+ ?6 j( x& A' t" O2 [! U

1 w3 ], S/ z3 N/ S: o+ h
* `& ^1 Q9 b( \) ]4 ^0 D- T* d  t  |

+ F1 C' L4 N0 z" W3 s" w: E" Q5、修改配置文件:$ g! z: B. [. q) }/ \) z2 D
http.cors.enabled: true
/ f  n" n' ]1 [! Whttp.cors.allow-origin: "*"
8 i6 V3 g8 n. B2 X* Yhttp.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length* |$ \6 X. U0 Z& X  {; P
xpack.security.enabled: true( Y4 C7 P5 M) H. {  G
#xpack.security.authc.accept_default_password: true
+ q7 p9 M* D' v3 V# d( Oxpack.security.transport.ssl.enabled: true
; U+ f* c& `4 o( W( L5 s/ bxpack.security.transport.ssl.verification_mode: certificate4 \! A! p6 V+ a( H6 z" z
xpack.security.transport.ssl.keystore.path: /data/elasticsearch/elastic-cluster/elasticsearch-8.15.0/config/certificates/elastic-certificates.p12
/ d$ g  w& `9 kxpack.security.transport.ssl.truststore.path: /data/elasticsearch/elastic-cluster/elasticsearch-8.15.0/config/certificates/elastic-certificates.p12
0 z3 _% x+ u/ v4 z* H7 e! Y  ?5 j/ t) x  X  j$ K

4 s: i  N1 D$ |! x$ \; W加权一样需要切换到es账号:- e: n2 N8 o9 I7 v3 m
0 e  Z1 _; F: M( F: n

" u3 I$ ]& G! [9 d: x' O在各个节点上添加密码:
1 u1 B6 y; x' m- S1 {8 D' q
5 X% O, R1 I3 f# U; f

/ D9 q" T% a8 T- [& X8 k2 ~2 `$ _
( c+ i7 J, R" l7 m; q; t9 i8 @[es@it-elassearch elasticsearch-8.15.0]$ ./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password+ L- T- u5 [. [0 z8 _
The elasticsearch keystore does not exist. Do you want to create it? [y/N]y! m3 {& ?/ g5 H( ]  Y$ k. h3 p
Enter value for xpack.security.transport.ssl.keystore.secure_password:
% X. Q- N) O* y2 [6 I3 ], O9 {3 h% C
) E" |2 J9 H- E- t/ ]1 h
- ?8 i; J1 v/ H- W. o" T4 Q
输入密码:第一次输入密码上面配置的9 L0 G6 O& K0 o. _
+ }9 Y5 n( T: e8 Q1 @0 n3 E, e
$ J  o1 C% R  N# @% I
[es@it-elassearch elasticsearch-8.15.0]$ ./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
9 g& e: [! j  J6 EEnter value for xpack.security.transport.ssl.truststore.secure_password:
6 {( @0 h; ^( R' r  K' G' g4 {2 j5 d2 [* _
输入密码: 第二次输入上面的密码:
! M9 |& q. W. G% R; E" S# U
. Q4 M0 n  i" W7 C1 u8 S" ~* `2 _( W接下来和没有做鉴权的一样,逐个启动集群:" N$ N% L( y: n9 X6 K

- I1 N+ d+ i5 O
- `' Y6 f# i" b! }  E/ Y) E4 U
切换到其它用户,root用户不能启动ES:su es
' z# A; |: s  {1 F5 [6 M7 @/ A1 J% x5 @( d' [
# {9 S* \& ]7 x, u
[es@it-elassearch elasticsearch-8.15.0]$ bin/elasticsearch -d
& c4 u7 d6 I3 F0 E. P% X! D.......' H* {! P# R+ h
Oct 24, 2024 5:33:34 PM sun.util.locale.provider.LocaleProviderAdapter <clinit>
- O, Z0 |+ Q$ `" c$ j" s[2024-10-24T17:33:40,246][INFO ][o.e.n.NativeAccess       ] [it-elassearch] Using native vector library; to disable start with -Dorg.elasticsearch.nativeaccess.enableVectorLibrary=false
" a( f  I5 \9 s( c[2024-10-24T17:33:40,727][INFO ][o.e.n.NativeAccess       ] [it-elassearch] Using [jdk] native provider and native methods for [Linux]
, F" V( T2 i! m7 V3 j[2024-10-24T17:33:41,119][INFO ][o.a.l.i.v.PanamaVectorizationProvider] [it-elassearch] Java vector incubator API enabled; uses preferredBitSize=128; floating-point vectors only
2 J# v1 `& B0 O. G5 d9 r$ c# X$ Z- S[2024-10-24T17:33:42,185][INFO ][o.e.n.Node               ] [it-elassearch] version[8.15.0], pid[8520], build[tar/1a77947f34deddb41af25e6f0ddb8e830159c179/2024-08-05T10:05:34.233336849Z], OS[Linux/3.10.0-1160.24.1.el7.x86_64/amd64], JVM[Oracle Corporation/OpenJDK 64-Bit Server VM/22.0.1/22.0.1+8-16]3 Y) l# r( O( }+ y' h0 Z* F7 K
.......
1 A/ j' [3 ~" p& g% `[2024-10-24T17:34:27,594][WARN ][o.e.c.c.ClusterFormationFailureHelper] [it-elassearch] master not discovered yet, this node has not previously joined a bootstrapped cluster, and this node must discover master-eligible nodes [it-elassearch, it-elassearch-2] to bootstrap a cluster: have discovered [{it-elassearch}{1TZ7_AjMQBm4NUw73Dr9eQ}{wrEeokvZTM-NfqrlNd_FSQ}{it-elassearch}{172.24.110.125}{172.24.110.125:9300}{cdfhilmrstw}{8.15.0}{7000099-8512000}]; discovery will continue using [172.24.110.126:9300] from hosts providers and [{it-elassearch}{1TZ7_AjMQBm4NUw73Dr9eQ}{wrEeokvZTM-NfqrlNd_FSQ}{it-elassearch}{172.24.110.125}{172.24.110.125:9300}{cdfhilmrstw}{8.15.0}{7000099-8512000}] from last-known cluster state; node term 0, last-accepted version 0 in term 0; for troubleshooting guidance, see https://www.elastic.co/guide/en/ ... roubleshooting.html, |* c5 J) ]% r
[2024-10-24T17:34:27,609][INFO ][o.e.h.AbstractHttpServerTransport] [it-elassearch] publish_address {172.24.110.125:9200}, bound_addresses {[::]:9200}
) }) V# M2 u; ~/ Y; C) h3 ?[2024-10-24T17:34:27,637][INFO ][o.e.n.Node               ] [it-elassearch] started {it-elassearch}{1TZ7_AjMQBm4NUw73Dr9eQ}{wrEeokvZTM-NfqrlNd_FSQ}{it-elassearch}{172.24.110.125}{172.24.110.125:9300}{cdfhilmrstw}{8.15.0}{7000099-8512000}{ml.max_jvm_size=4294967296, ml.config_version=12.0.0, xpack.installed=true, transform.config_version=10.0.0, ml.machine_memory=8200949760, ml.allocated_processors=4, ml.allocated_processors_double=4.0}( @( |$ ~8 M. u9 p
) E4 V/ _0 C+ H8 q0 p: X+ P

. }1 y5 v* [5 Z4 I
4 o" E, m) i6 X0 P& O7 I
5 r5 u( P8 G  ~5 B7 l9 U

  f9 [0 n1 x, q" }

, F7 s  N, T" o[es@it-elassearch elasticsearch-8.15.0]$ netstat -ntlp
) I* b5 ^) |. _6 ]( ~, J7 K(Not all processes could be identified, non-owned process info
6 x* _+ q6 |  Iwill not be shown, you would have to be root to see it all.)6 g$ w, [$ ]9 t, [
Active Internet connections (only servers), D! t" m: h+ {0 h
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   * l6 ~( }  o* }7 W/ n
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                  
: i- v& E; R- N- `8 Rtcp        0      0 0.0.0.0:60028           0.0.0.0:*               LISTEN      -                  1 {2 C* t6 Y2 S1 d2 S: q9 H& E( G
tcp6       0      0 :::9300                 :::*                    LISTEN      8520/java           
! g* u7 ?' u; s* ^9 s0 U4 ]4 Otcp6       0      0 ::1:25                  :::*                    LISTEN      -                  ; m- u( V3 T! B' ]. I
tcp6       0      0 :::60028                :::*                    LISTEN      -                  - m5 a0 n- G" E
tcp6       0      0 :::9200                 :::*                    LISTEN      8520/java           

( Q0 S) n4 @: A. v+ r% u4 t3 l( |* T9 I  P2 _  L0 F
' ^) Z4 b8 Y. p1 a: }: |* S

$ ~9 K' U) U4 a- J* `" D

; p2 q. B8 E3 W& f+ [7 W4 K% y
; D' \0 o# o% X( P- x+ K4 C[es@it-elassearch-1 elastic-cluster1]$ ./elasticsearch-8.15.0/bin/elasticsearch-create-enrollment-token -s kibana
/ e+ v" J; C' m: R  v8 W/ x8 x! S& w' [7 J, p- E9 ]5 K
ERROR: [xpack.security.enrollment.enabled] must be set to `true` to create an enrollment token, with exit code 78
6 ?, t4 C' V1 G" V: m6 C+ z) g4 u  _! I1 X+ n; `+ Z

. K, ^1 q, d! Y% X5 x+ q( e! t在elasticsearch-8.15.0/config/elasticsearch.yml 添加 配置:/ K0 H& U% ~( W) ^6 O' i# K

) N0 \/ b+ Q# V( n! g[es@it-elassearch-1 elastic-cluster1]$ vim elasticsearch-8.15.0/config/elasticsearch.yml
! ?6 x6 {$ j) H8 u4 R7 I4 X  X0 n
xpack.security.enrollment.enabled: true
+ v, \- h9 ?4 u# ]" S( E
! b+ |9 }/ R, R+ I4 ], k
8 F) m8 v) _4 I3 E0 M! T/ A
保存再次执行:
4 D) y( ]# d" K, I% l5 [" w6 O  q& M2 G7 y6 G1 H8 s1 D% \( g
. L7 v  J% [8 Y2 r0 M1 p
: M4 O5 n7 C2 j1 m1 H7 Z2 ^
9 _! C0 P! G! _& w4 P0 I! o
7 |! V: q+ k7 z& A; @
[es@it-elassearch-1 elastic-cluster1]$ ./elasticsearch-8.15.0/bin/elasticsearch-create-enrollment-token -s kibana: ?; [3 V$ S5 R9 w4 R, l& ]1 Y
Unable to create enrollment token for scope [kibana]
8 q9 _" N8 i3 G7 r# O& h1 w- L+ D/ f" ]" {' K5 {  R* C) ?
ERROR: Unable to create an enrollment token. Elasticsearch node HTTP layer SSL configuration is not configured with a keystore, with exit code 73
. P! u' X! F6 O+ p; G$ _
2 L' L2 z) a$ f0 \* T0 @2 ]/ y( |2 |9 A如果你的kibana不在同一台主机上就需要加上http或https的访问路径生成,用""扩起来% X5 `& N* X0 r5 m
2 L/ _4 C% W! r9 k5 h

/ O. l# R! ]5 e$ o3 |% c

: n1 `, `% _, o* {3 o, o& Z
# L+ ^! H0 x5 D$ E6 V0 c( v6 P% o1 I# ?) X+ f( N

6 R* t: Z. i# f# {% h# D8 n2 a* g

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-10-31 16:09:57 | 显示全部楼层
登录时提示要求身份验证与此站点的连接不安全:
$ b' ?& k2 @( e/ |3 |. C/ K2 m2 m' r0 |9 N/ W) k( ^
设置密码:
/ m& V  g* Y) c+ W; k[es@it-elassearch elasticsearch-8.15.0]$ ./bin/elasticsearch-setup-passwords interactive 2 u' f5 @, d0 E+ n
******************************************************************************
+ R; \/ S6 E8 X  Q8 Y& H9 ^, MNote: The 'elasticsearch-setup-passwords' tool has been deprecated. This       command will be removed in a future release.+ C; r- J- y. ]1 K+ B* ~
******************************************************************************
- O. m# R+ [) s' \- y' A& e% K% X9 O1 @2 g* V* D3 ]2 T
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.' ~1 m. ~/ t- t( w" O
You will be prompted to enter passwords as the process progresses.) _0 N5 I7 c( i/ E
Please confirm that you would like to continue [y/N]y& G! G9 t2 U6 ^) c( X- v4 t. g: L" n
6 b) I9 B( n( h+ Y/ K+ {& d$ I
) z( P" Y: a) h  t8 G+ [
Enter password for [elastic]:
* C/ ]$ i# P. }6 l: ?Reenter password for [elastic]:
, _% k% Q( P4 G1 U3 N5 c6 rEnter password for [apm_system]:
4 m: A: b, B+ S/ j. V! c) N; Q3 oReenter password for [apm_system]:
' H' ]4 k/ T4 e+ ^, jEnter password for [kibana_system]: / L* v$ z6 z0 T5 [
Reenter password for [kibana_system]: % O8 z/ x" k, z2 Q" W
Enter password for [logstash_system]: . v7 X& g9 E) O  B
Reenter password for [logstash_system]: . w6 D& z9 p6 Q7 k* ]5 V* C0 O2 V* T- k
Enter password for [beats_system]:
. W5 r* q3 u* E! L; N1 W# q+ HReenter password for [beats_system]:
5 z/ i. Y6 I: G, W! L* W. ~Enter password for [remote_monitoring_user]: ( q4 R6 _  T4 N) J( t7 x1 U% p
Reenter password for [remote_monitoring_user]: ' O/ x# g0 k$ \$ ~7 A
Changed password for user [apm_system]
# d5 P' W! r2 uChanged password for user [kibana_system]
( W0 W! R2 [$ Z& `  DChanged password for user [kibana]& `* a/ f2 ^3 a8 @/ G6 Q
Changed password for user [logstash_system]" P$ ^$ i: r" P* T6 X
Changed password for user [beats_system]3 h0 Y1 e  Z7 r/ V& Z4 a
Changed password for user [remote_monitoring_user]. r4 E! C. Y- _3 t8 }1 [, ]0 q
Changed password for user [elastic]
5 R7 c4 k% S: c% D) Q7 h
$ ~7 v1 S6 S' Q+ s密码要记住。
3 d. g3 F3 _8 @: |

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-10-31 16:12:02 | 显示全部楼层
访问地址:http://172.24.110.125:9200/      输入账号密码即可:
, h4 ]: B; d4 G' E( T2 a5 X' e5 ~{" F/ q: V& T% K/ L9 [
    "name": "it-elassearch"," p( K& K6 [; n0 l; l7 ~' ]# @
    "cluster_name": "essearch",
* C. Q$ z( P% f& ~/ q8 v    "cluster_uuid": "AB2CR6VfTCeR57LVvOGUuw",
  V" X8 z' Z* x, H* f, W+ y  H    "version": {
: @  P3 j& o% x, W        "number": "8.15.0",$ W: b. n; p; u6 c+ k4 G; ^
        "build_flavor": "default",& @' s- T5 M: d, V; N" _
        "build_type": "tar",% p  J! p4 B; e  ?" Y
        "build_hash": "1a77947f34deddb41af25e6f0ddb8e830159c179",2 Q3 D* v3 ?0 }7 t0 t! h$ f7 {
        "build_date": "2024-08-05T10:05:34.233336849Z"," v( `7 D7 a: M8 g, I
        "build_snapshot": false,. n% \8 a3 Y' ]( Z2 n* b
        "lucene_version": "9.11.1",1 U) e, ]% Z9 \) R8 I* z; y
        "minimum_wire_compatibility_version": "7.17.0",$ V  Q) L5 Y' M8 |! y
        "minimum_index_compatibility_version": "7.0.0"/ g: C! ^$ O( i1 Y2 h
    },4 p: R. w: C# K, j  V1 X% {" f- `
    "tagline": "You Know, for Search"
+ P+ ?$ t! l; b! C9 }4 |8 @}

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-12-2 15:50:06 | 显示全部楼层
3)更改 elasticsearch 主配置文件3 o: ?/ X$ R7 o8 M9 _5 m2 X
[root@elk-node1 ~]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml, g1 _6 l6 Z5 s+ q) K
cluster.name: my-elk-cluster 集群名字
) y$ C* D7 W! N* ~, _node.name: elk-node1 节点名字
3 ~( c) d7 S. Npath.data: /data/elk_data 数据存放路径, I$ A/ M2 E. v9 ?' ^7 y0 G
path.logs: /var/log/elasticsearch/ 日志存放路径
2 m$ f9 g3 z9 J0 Ibootstrap.memory_lock: false 不在启动的时候锁定内存
( r( k2 d/ C3 m8 v- e; bnetwork.host: 0.0.0.0 提供服务绑定的 IP 地址,0.0.0.0 代表所有地址
. |; \/ A. S6 D$ ehttp.port: 9200 侦听端口为 9200
! P  ?* n+ C5 g' W4 f- p4 K0 N1 \discovery.zen.ping.unicast.hosts: ["elk-node1", "elk-node2"] 集群发现通过单播实现
7 i: c; e$ w+ p1 Y8 ]- H2 O* h2 d[root@elk-node2 elasticsearch]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml- R: [! _& Z+ \; i7 H2 {
cluster.name: my-elk-cluster  C, g$ Y8 z* Z8 C" v- }
node.name: elk-node23 ?; v" J' l. i' h$ |
path.data: /data/elk_data
- u( c6 H' W- G" {& rpath.logs: /var/log/elasticsearch/
# S2 y. Z, M  Y; \" Z+ X# Lbootstrap.memory_lock: false
7 [, z; z# l9 {. b" Z( \, C2 {: Znetwork.host: 0.0.0.09 C( M* N3 ]9 k& L
http.port: 9200' U7 e0 u$ B$ `$ G
discovery.zen.ping.unicast.hosts: ["elk-node1", "elk-node2"]
2 G" j% y1 }+ k

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-12-3 09:30:45 | 显示全部楼层
http://172.24.110.125:9200/_cluster/health?pretty- i8 s0 ?; {* `$ ^2 b0 i9 A* @
{
% ^( \% R7 |5 _/ I" `# h0 M% h    "cluster_name": "elasticsearch",& m* u9 A1 \3 K4 E2 O
    "status": "green",
: C9 H# L7 N0 v! Z0 A    "timed_out": false,
( \$ _9 l" X" x    "number_of_nodes": 2,
% t5 C" W3 o$ R8 a    "number_of_data_nodes": 2,7 n0 n8 e6 N! F* o; o
    "active_primary_shards": 107,1 [# ?/ x0 q( m4 c9 I1 z
    "active_shards": 214,% N1 H  {, w" }5 F
    "relocating_shards": 0,: F6 ~9 L9 q# k" ]8 T
    "initializing_shards": 0,# j, _6 U# O. a8 w0 Q) K( s
    "unassigned_shards": 0,7 W5 k4 s$ s2 {: W1 m
    "delayed_unassigned_shards": 0,
  F" h5 f* q3 v# @1 Q) ~1 j" J" k    "number_of_pending_tasks": 0,, l# ~8 m6 X: M. o: ]" D/ K6 w
    "number_of_in_flight_fetch": 0,
& e! z; f# j8 L/ C  i+ S( h    "task_max_waiting_in_queue_millis": 0,2 M5 u  P) Z6 T2 i$ r
    "active_shards_percent_as_number": 1002 V( r, m% Q- j; Z- E# w
}
& r7 N0 e. l- b' b/ {( |/ v% o, v4 n1 ]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-12-3 09:36:37 | 显示全部楼层
编写 logstash 配置文件 apache_log.conf 搜集 apache 日志并执行( O3 W3 v6 x2 R" a
4 f  H7 @6 f: f- m. Z
[root@apache conf.d]# cat apache_log.conf0 y! A( q3 d  g
input {
5 X; W$ c" A7 b( x# E2 vfile {
' T- _  P0 i  I; g6 ^path => "/etc/httpd/logs/access_log"  w* {" j( [* `4 |; Z5 `% X
type => "access": X) I9 i: K9 q% k
start_position => "beginning"
! F- B8 z) H" R- u9 [$ ]}
; m  d- v, C6 v& O! K3 R1 f3 Rfile {( ^& c; {- T2 n
path => "/etc/httpd/logs/error_log"
6 i- M3 A- K. N$ Gtype => "error"
- _. m$ n9 \* n1 y# n3 f( hstart_position => "beginning"
/ C  }# m+ n$ F+ k4 z3 b, d. E. O% G: t}
0 U3 Z; H( x1 v3 Z7 j! O/ v. O+ S}
' z% s3 W8 O8 Qoutput {; {: Q  \9 O& h7 y. d9 h
if [type] == "access" {+ |: A& J$ n3 @8 ^; s
elasticsearch {
. f, ~7 o8 K3 L. ghosts => ["192.168.10.181:9200"]
7 b. U( c) v1 nindex => "apache_access-%{+YYYY.MM.dd}"" Z. G5 {' i- T% h, N$ @8 n
}
8 h+ G' H% u4 l" [) j/ N0 J) E' K}! T& V, a+ U# `
if [type] == "error" {
. x6 p! E- g% F: _elasticsearch {
9 |( H6 K% ?3 g% R% b# R. ], D2 rhosts => ["192.168.10.181:9200"]
# g8 M3 j$ v5 }$ xindex => "apache_error-%{+YYYY.MM.dd}"
4 S5 x& F/ t. L/ e}' D5 E, _7 {. o2 o9 P( t
}
6 y# h9 z1 R0 |& H4 u}
+ a( s6 b" H( ]; h* C  G* b% `* e7 C
[root@apache ]# /usr/share/logstash/bin/logstash -f apache_log.conf
, J8 @* f  m5 j( D+ E" K) j/ R! h, ]+ |, t$ k3 @

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-12-5 14:19:46 | 显示全部楼层
安装 logstash 并做一些日志搜集输出到 elasticsearch 中
" V( B* W5 T2 r# w' p1)在 elk-node1 上安装
& ^, F) G  E$ U: r[root@elk-node1 ~]# rpm -ivh logstash-5.5.1.rpm
6 e" q6 y8 j& [2 M2 n& b3 C0 U警告:logstash-5.5.1.rpm: 头 V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY( B" H. G% A1 z& \, r/ A
准备中... ################################# [100%]
, b4 w: [' N3 P$ _. ?( m) Y正在升级/安装...9 @) [% |+ k9 V0 @6 a
1:logstash-1:5.5.1-1 ################################# [100%]
4 n- c3 C7 o/ h9 N- X' S4 P- MUsing provided startup.options file: /etc/logstash/startup.options
8 O) V& ~! X/ r4 Z. aSuccessfully created system startup script for Logstash* x  s4 v2 P  q
[root@elk-node1 ~]# systemctl start logstash.service6 K5 v8 P+ U& i3 H8 C
[root@elk-node1 ~]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/% `. R4 z2 L* [- g% w, r/ J( q
2)logstash 基本使用/ }% w/ L( |" ?+ R' v
Logstash 使用管道方式进行日志的搜集处理和输出。有点类似 linux 系统的管道命令 xxx | ccc
- g( i" R6 U0 s1 j  S| ddd,xxx 执行完了会执行 ccc,然后执行 ddd。% P. Z7 {( l; g- d( S  R
在 logstash 中,包括了三个阶段:! }' U/ R3 f) E  G: {0 i
输入 input --> 处理 filter(不是必须的) --> 输出 output4 F6 D; F+ T# s" q/ X
$ h- U0 w7 U0 n; j2 \( H, O/ }7 [, r: P
每个阶段都由很多的插件配合工作,比如 file、elasticsearch、redis 等等。
0 O9 \' A& x+ Q: A" [% }/ ^( M. Y  {每个阶段也可以指定多种方式,比如输出既可以输出到 elasticsearch 中,也可以指定到 stdout0 _0 t+ I. P: U- O4 d
在控制台打印。2 x4 V5 C6 v3 Y% t. D# j# R
由于这种插件式的组织方式,使得 logstash 变得易于扩展和定制。
3 H# x- I' [6 u/ p, J  tlogstash 命令行中常用的命令:. C' s+ z3 c2 {! A
-f:通过这个命令可以指定 Logstash 的配置文件,根据配置文件配置 logstash
' Y  S- [; I- d+ M-e:后面跟着字符串,该字符串可以被当做 logstash 的配置(如果是“” 则默认使用 stdin
- `5 c$ I& P) H8 ]作为输入,stdout 作为输出)" A% {, B0 N9 S1 J* X/ E
-t:测试配置文件是否正确,然后退出
" F6 t; ?3 k$ p& \" C启动一个 logstash,-e:在命令行执行;input 输入,stdin 标准输入,是一个插件;output 输4 L1 x& I% t! Z# J
出,stdout:标准输出
4 i! j( Q: c  |- k) r0 M[root@elk-node1 ~]# logstash -e 'input { stdin{} } output { stdout{} }'
2 }& D% _# G! r6 S3 P, I22:50:19.889 [Api Webserver] INFO logstash.agent - Successfully started Logstash API1 l2 n6 }4 M% v% R5 D, [3 @4 N
endpoint {:port=>9600}
4 b" F0 M; u7 v  fwww.baidu.com 输入8 q0 [, O7 P- \# X$ y
2017-08-09T14:51:26.277Z elk-node1 www.baidu.com 输出# i  ]: o/ G$ S1 ~# z4 Z
www.sina.com.cn 输入
5 o! o% Z/ @. N1 Q* b2017-08-09T14:51:30.971Z elk-node1 www.sina.com.cn 输出
) y# n  G% ?' ~使用 rubydebug 显示详细输出,codec 为一种编解码器
! r0 a8 x% ]0 e7 y/ A% O5 c, b  f' u[root@elk-node1 ~]# logstash -e 'input { stdin{} } output { stdout{ codec" O: S$ b/ K3 Q0 c$ C/ f: u' ]+ a
=>rubydebug} }'& a+ q# p* B4 V. G# ]9 N' @
22:54:23.075 [Api Webserver] INFO logstash.agent - Successfully started Logstash API9 _6 ^, w, p- X
endpoint {:port=>9600}: M6 f3 M8 Z8 O$ A" ^, }3 F
www.baidu.com 输入
9 j2 x& I1 _9 H+ b3 b2 I, \{
6 `3 A, s  D' u"@timestamp" => 2017-08-09T14:54:31.236Z,. y! }( M1 e8 \1 ~  {4 h
"@version" => "1",- K* D, n* l% r# G+ m7 I2 ^3 G7 o
"host" => "elk-node1",
$ {  ]4 N# B, f5 r7 R0 ?"message" => "www.baidu.com"; _0 f/ ~; ^, z- u, N/ G
}
3 a# o2 p' I6 r) P: q+ gwww.sina.com.cn 输入8 n& J+ }  D5 u3 }! n) b& z$ U: b
{: q' }7 S! s3 B* Q0 q: k
"@timestamp" => 2017-08-09T14:54:39.412Z,
/ ~! P& [; A( Y5 _& `8 h"@version" => "1",
* Q" D0 H- {. Y"host" => "elk-node1",
6 w$ N7 c) j  F" Z- H- I9 J"message" => "www.sina.com.cn"3 u% E4 T  g/ J& R3 Y9 |; g
}
$ c5 f" e8 p- c使用 logstash 将信息写入到 elasticsearch 中& T1 F6 G5 \. c/ m" q
[root@elk-node1 ~]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>
* m# l+ h. @* G["192.168.10.181:9200"]} }'1 u5 o1 N" A1 ?  X5 `" @+ q* k
22:59:03.834 [Api Webserver] INFO logstash.agent - Successfully started Logstash API
" f: p1 |) X1 h" b4 e% I2 Q0 x5 |4 xendpoint {:port=>9600}- y- R6 T( F" r4 M
www.baidu.com
' d; z' z, X  P3 W) J3 i$ Rwww.sina.com.cn3 V1 x. ~) |5 T
www.google.com% Y9 G; e# v* F  y7 j
在 elasticsearch 中查看 logstash 新加的索引3 F  j. x- J9 g9 ^
6 T- q, C% E" g. o# e

, N8 M- n* ~) T& q, n3)logstash 配置文件使用
5 p! `! \+ z. B- C/ ?6 vlogstash 配置文件基本上由三部分组成,input、output 以及用户需要才添加的 filter,
# E0 ?7 y; C9 B因此标准的配置文件格式如下:
: R- m3 z" _4 v; U4 Kinput {...}
' F' s' f- a. y, k  ]filter {...}
0 x' Q8 |# u( U( toutput {...}% v" T* f1 I& Q' R
在每个部分中,也可以指定多个访问方式,例如我想要指定两个日志来源文件,则可以这样写:* d9 y  s) x6 ^- H
input {
5 z- a6 B3 D: o+ d  cfile { path =>"/var/log/messages" type =>"syslog"}' ~' K# o+ }7 }" N$ A
file { path =>"/var/log/apache/access.log" type =>"apache"}$ y4 u' @' q6 ^% W/ Q  |# A
}$ ~: o& T( l* E1 b* R% {" Z
下面是一个收集系统日志的配置文件例子,将其放到/etc/logstash/conf.d/目录中,
' O* R4 B( F3 B& B& Dlogstash 启动的时候便会加载。注意要给 logstash 读取日志文件的权限。( B. `6 l1 c" x0 F/ @" }5 m8 u" @
[root@elk-node1 logstash]# chmod o+r /var/log/messages7 ^' e% g# [3 p4 S
[root@elk-node1 logstash]# ll /var/log/messages& j4 c. r0 w1 w4 o. Z; D% S
-rw----r--. 1 root root 2566754 8 月 9 23:25 /var/log/messages
( p6 @- k' T9 o: q, j) R! b' g[root@elk-node1 ~]# cd /etc/logstash/conf.d/
% `' J7 X) w' g4 C) y[root@elk-node1 conf.d]# cat system.conf2 W5 P% m9 O0 e4 I3 [
input {  [. u* m9 A: z' Q: Q  k/ D
file { 从文件中读取* r/ F* q3 [/ x6 c
path => "/var/log/messages" 文件路径
( o  p8 R: h8 k) ?! etype => "system"
$ E; d2 M. {9 h% a# \, t& F7 Ystart_position => "beginning" 是否从头开始读取
5 S! k4 y7 H" Z7 G$ d4 Z; M( Q; ]" b  v}
6 _! }4 w5 K6 F! o; G' X}
( l  L8 V1 L, R* ^. m0 ^output {
2 X1 H6 {' q7 x8 felasticsearch { 输出到 elasticsearch 中
+ P# H3 D) k; m! ?" t0 c9 Uhosts => ["192.168.10.181:9200"] elasticsearch 主机地址和端口4 t' n- L5 @9 s. y, c: e
index => "system-%{+YYYY.MM.dd}" 索引名称
& I6 ?3 B( c+ f( T# c}5 R5 h" L. L$ D9 U! d
}' e8 m. p/ I) q1 o: I# p. h) K
重启 logstash 服务0 I3 w) N4 S9 H( g: c
[root@elk-node1 logstash]# systemctl restart logstash
( I) Z* y) a) ?4 H; w. _在浏览器中即可看到新加索引及其内容
2 S1 B! W+ M) u4 ?5 v4 v" V& K/ p4 |( q! P# _1 L; G' @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:48 , Processed in 0.021378 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表