二、Elastic kibana安全配置以及Logstash安装

二 、ik分词器安装

2.1 参考

https://blog.csdn.net/u011296165/article/details/107996049?ops_request_misc=&request_id=&biz_id=102&utm_term=IK%20%E5%88%86%E8%AF%8D%E5%99%A8%E5%AE%89%E8%A3%85&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-107996049.nonecase&spm=1018.2226.3001.4187

2.2 github下载ik网址

https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.17.3

2.3 安装

进入到elasticsearch的安装目录下, 找到bin目录。 执行里面的elasticsearch-plugin 命令,这个命令是管理es中的插件的。 ik分词器就是一个插件。

执行下面这个命令就可以安装成了, 注意IK分词器的版本要和es的版本一致才行。 具体哪个版本可以去github中去找。
#集群模式全部节点执行
bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.3/elasticsearch-analysis-ik-7.17.3.zip

注意这边要使用内置的jdk(参考1.8修改)

安装完成之后需要重启一下es服务。 直接kill掉,在启动。

2.4 测试ik分词器

POST /_analyze
{
  "text": "蜀道难,多歧路今安在", 
  "analyzer": "ik_max_word" 
  //ik_max_word:会将文本做最细粒度的拆分 ik_smart:会将文本做最粗粒度的拆分
 
}

四、kibana 安装

4.1 官网地址

https://www.elastic.co/cn/downloads/past-releases#kibana

4.2 下载软件(下载相同版本)

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.3-linux-x86_64.tar.gz
#解压软件
tar -zxvf kibana-7.17.3-linux-x86_64.tar.gz -C /opt/installed/

4.3 给kibana生成证书文件

# 在ES服务器中生成证书,输入回车即可 
cd /opt/installed/elasticsearch-7.17.3 bin/elasticsearch-certutil csr -name kibana -dns elastic01
 
# 解压文件 
unzip csr-bundle.zip 
 
# 将解压后的文件移动到kibana的config目录中 
mv kibana.csr kibana.key /opt/installed/kibana-7.17.3/config/  
# 生成crt文件 
openssl x509 -req -in kibana.csr -signkey kibana.key -out kibana.crt

4.4 修改配置文件:kibana.yml

## 服务端口 
server.port: 5601
# 服务主机名 
server.host: "elastic01"
i18n.locale: "zh-CN"
# ES服务主机地址 
elasticsearch.hosts: ["https://:9200"]
# 访问ES服务的账号密码 
elasticsearch.username: "elastic"
elasticsearch.password: ""
elasticsearch.ssl.verificationMode: none
elasticsearch.ssl.certificateAuthorities: ["/opt/installed/elasticsearch-7.17.3/config/certs/elasticsearch-ca.pem"]
#配置Kibana UI的SSL加密传输
server.ssl.enabled: true
server.ssl.certificate: /opt/installed/kibana-7.17.3/config/kibana.crt
server.ssl.key: /opt/installed/kibana-7.17.3/config/kibana.key

4.5 修改kibana 文件权限为elastic用户

4.6 使用elastic启动

4.7 问题

4.7.1 问题1

可以正常使用但是日志有报错(目前未解决正常使用)

[error][client][connection] Error: ,139632920631232:error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown:../deps/openssl/openssl/ssl/record/rec_layer_s3.c:1546:SSL alert number 46

4.7.2 问题2启动报错

[Screenshot here] log [02:25:38.464] [error][reporting] The Reporting plugin encountered issues launching Chromium in a self-test. You may have trouble generating reports. log [02:25:38.465] [error][reporting] ErrorEvent { target: WebSocket { _events: [Object: null prototype] { open: [Function], error: [Function] }, _eventsCount: 2, _maxListeners: undefined, readyState: 3, protocol: ‘’, _binaryType: ‘nodebuffer’, _closeFrameReceived: false, _closeFrameSent: false, _closeMessage: ‘’, _closeTimer: null, _closeCode: 1006, _extensions: {}, _receiver: null, _sender: null, _socket: null, _isServer: false, _redirects: 0, url: ‘ws://127.0.0.1:45871/devtools/browser/7e246271-fac4-4eed-99c0-28ace04c7e45’, _req: null }, type: ‘error’, message: ‘socket hang up’, error: { Error: socket hang up at createHangUpError (_http_client.js:323:15) at Socket.socketOnEnd (_http_client.js:426:23) at Socket.emit (events.js:194:15) at endReadableNT (_stream_readable.js:1103:12) at process._tickCallback (internal/process/next_tick.js:63:19) code: ‘ECONNRESET’ } } log [02:25:38.469] [warning][reporting] See Chromium’s log output at “/kibana/kibana-7.5.1-linux-x86_64/data/headless_shell-linux/chrome_debug.log” log [02:25:38.469] [warning][reporting] Reporting plugin self-check failed. Please check the Kibana Reporting settings. Error: Could not close browser client handle!

安装以下链接中的包文件:

yum install 下面的包文件后重启即可。

ipa-gothic-fonts
xorg-x11-fonts-100dpi
xorg-x11-fonts-75dpi
xorg-x11-utils
xorg-x11-fonts-cyrillic
xorg-x11-fonts-Type1
xorg-x11-fonts-misc
fontconfig
freetype

4.8 kibana第二种证书生成配置

参考

https://blog.csdn.net/h952520296/article/details/112008365?ops_request_misc=&request_id=&biz_id=102&utm_term=es%E9%85%8D%E7%BD%AEhttps%E9%BB%98%E8%AE%A4%E5%AF%86%E7%A0%81%E6%98%AF%E5%A4%9A%E5%B0%91&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-112008365.142^v95^control&spm=1018.2226.3001.4187

生成PKI客户端证书

将用于PKI身份验证的证书必须由与用于加密HTTP通信的证书相同的CA进行签名。因为我们已经使用了自签名CA,所以我们必须还使用之前的elastic-stack-ca.p12CA来签署HTTP客户端证书。如下所示:

输入密码那一块直接回车,不要设置密码 启动会报错

注意这块之前已经生成过我是没有再次生成

bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 
ENTER
ENTER
ENTER
 
mv elastic-certificates.p12  client.p12
与之前的密钥分开命名

这将创建一个名为elastic-certificates.p12的文件,其中包含对我们的Elasticsearch集群进行PKI身份验证所需的所有信息。 但是,为了使用此证书,需要将其分解为其私钥,公共证书和CA证书:

// Private Key 私钥
openssl pkcs12 -in client.p12 -nocerts -nodes > client.key
// Public Certificate 公共证书
openssl pkcs12 -in client.p12 -clcerts -nokeys  > client.cer
// CA Certificate 签署公共证书的CA
openssl pkcs12 -in client.p12 -cacerts -nokeys -chain > client-ca.cer

配置Kibana到Elasticsearch的校验

现在Elasticsearch集群上启用了安全特性,因此必须启用Kibana安全特性并配置为通过HTTPS向集群进行身份验证。在Kibana中创建config/certs目录,并将生成的客户端证书复制到目录中,并将以下行添加到我们的kibana.yml文件中:

## 服务端口 
server.port: 5601
# 服务主机名 
server.host: "elastic02"
i18n.locale: "zh-CN"
# ES服务主机地址
elasticsearch.hosts: ["https://ip:9200"]
xpack.security.enabled: true
# 访问ES服务的账号密码 
elasticsearch.username: ""
elasticsearch.password: ""
elasticsearch.ssl.certificate: config/cert/client.cer

elasticsearch.ssl.key: config/cert/client.key

elasticsearch.ssl.certificateAuthorities: [ "config/cert/client-ca.cer" ]

这部分我没有配置

kibana用户就像一个服务用户,可以在幕后工作,以验证Elasticsearch集群的Kibana应用程序。我们通常不会使用kibana用户直接登录Elasticsearch集群或Kibana UI。

当Elasticsearch还未启用HTTP加密通信前,可以直接使用kibana用户和密码进行身份验证。

在kibana.yml文件中新增如下三个配置,这是启用Elastic报警的必要配置,里面的参数可以随意配置:
# 注意:参数值至少32位,否则启动会报错提示
xpack.encryptedSavedObjects.encryptionKey: encryptedSavedObjects12345678909876543210
xpack.security.encryptionKey: encryptionKeysecurity12345678909876543210
xpack.reporting.encryptionKey: encryptionKeyreporting12345678909876543210

配置Kibana UI的SSL加密传输

为了安全起见,Kibana UI到kibana服务也应该启用SSL加密传输通信。为了简化操作,我们使用与已用于传输通信的相同的证书,配置如下:

server.ssl.enabled: true
server.ssl.certificate: config/cert/client.cer
server.ssl.key: config/cert/client.key

4.8.1 全部配置

## 服务端口 
server.port: 5601
# 服务主机名 
server.host: "elastic02"
i18n.locale: "zh-CN"
# ES服务主机地址
elasticsearch.hosts: ["https://ip:9200"]
xpack.security.enabled: true
# 访问ES服务的账号密码 
elasticsearch.username: "elastic"
elasticsearch.password: ""
elasticsearch.ssl.certificate: config/cert/client.cer

elasticsearch.ssl.key: config/cert/client.key

elasticsearch.ssl.certificateAuthorities: [ "config/cert/client-ca.cer" ]

elasticsearch.ssl.verificationMode: certificate
xpack.encryptedSavedObjects.encryptionKey: encryptedSavedObjects12345678909876543210
xpack.security.encryptionKey: encryptionKeysecurity12345678909876543210
xpack.reporting.encryptionKey: encryptionKeyreporting12345678909876543210
server.ssl.enabled: true
server.ssl.certificate: config/cert/client.cer
server.ssl.key: config/cert/client.key

五、Logstash安装

建议kibana、es、logstash的版本一致否则会出现兼容性问题

5.1 下载

下载网址:https://www.elastic.co/downloads/past-releases#logstash

5.2 安装

# 将压缩包解压
tar -zxvf logstash-7.17.3.tar.gz -C /opt/installed/

目录说明

[root@localhost logstash]# ls
bin           data          jdk          logstash-core             NOTICE.TXT  x-pack
config        Gemfile       lib          logstash-core-plugin-api  tools
CONTRIBUTORS  Gemfile.lock  LICENSE.txt  modules                   vendor

# bin:启动文件,可执行文件
# config:配置文件
# data:数据历史文件
# lib:依赖的jar包
# logstash-core-plugin-api:核心插件
# tools:工具
# modules:组件
# logstash-core:logstash核心



[root@localhost logstash]# ls config/
jvm.options        logstash-sample.conf  pipelines.yml
log4j2.properties  logstash.yml          startup.options
# jvm.options:优化配置
# log4j2.properties:日志配置
# logstash.yml :核心配置
# logstash-sample.conf:示例文件
# pipelines.yml:管道配置
# startup.options:启动的日志信息

5.3 修改所有者权限

chown -R elastic:elastic logstash-7.17.3

5.4 添加mysqljar

mysql-connector-java-8.0.29.jar 放在/opt/installed/logstash-7.17.3/lib下

5.5 配置Logstash到Elasticsearch的TLS加密

elastic-certificates.p12的文件,其中包含对我们的Elasticsearch集群进行PKI身份验证所需的所有信息。 但是,为了使用此证书,需要将其分解为其私钥,公共证书和CA证书:

在Logstash config 文件夹下创建一个certs文件
cp /opt/installed/elasticsearch-7.17.3/config/certs/elastic-certificates.p12 复制到Logstash certs文件夹下
#在Logstash/config/certs分解证书
// Private Key 私钥
openssl pkcs12 -in client.p12 -nocerts -nodes > client.key
// Public Certificate 公共证书
openssl pkcs12 -in client.p12 -clcerts -nokeys  > client.cer
// CA Certificate 签署公共证书的CA
openssl pkcs12 -in client.p12 -cacerts -nokeys -chain > client-ca.cer

5.6 logstash使用同步配置

output {
  stdout {
  #输出方式 Logstash 中使用 codec => rubydebug 时,它会将接收到的每个事件转换为 Ruby 对象,并将其输出到控制台或文件中,以便您可以查看事件的详细信
息
      codec => rubydebug
        }
          elasticsearch {
               #安全配置
                cacert => "/opt/installed/logstash-7.17.3/config/cert/client-ca.cer"
                ssl => true
                ssl_certificate_verification => false
                hosts => ["https://ip:9200"]
                   # 索引名字,必须小写
                       index =>t"
                       # 数据唯一索引(建议使用数据库主键id)
                        document_id => "%{uuid}"
                        user => ""
                        password => ""
        }
      }

参考文章

https://blog.csdn.net/fen_fen/article/details/123265224?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-0-123265224-blog-127590339.235^v38^pc_relevant_default_base3&spm=1001.2101.3001.4242.1&utm_relevant_index=3
https://blog.csdn.net/h952520296/article/details/112008365?ops_request_misc=&request_id=&biz_id=102&utm_term=es%E9%85%8D%E7%BD%AEhttps%E9%BB%98%E8%AE%A4%E5%AF%86%E7%A0%81%E6%98%AF%E5%A4%9A%E5%B0%91&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-112008365.142^v95^control&spm=1018.2226.3001.4187
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值