ElasticSearch 部署配置(8.7.0版本)
从 ElasticSearch官网 下载安装包
它不允许在 root 下运行,如果当前是 root 用户,则需要创建一个单独的用户:
1 | groupadd elk |
修改系统内核最大虚拟内存限制,在 /etc/sysctl.conf
增加
1 | vm.max_map_count = 262144 |
修改 JVM 内存限制,创建 config/jvm.options.d/memory.options
文件并编辑:
1 | # 8.7 版本默认是16G,机器内存不够则需要手动修改 |
修改 config/elasticsearch.yml
配置文件
1 | # 修改数据保存路径 |
执行 ./bin/elasticsearch
启动服务,若无报错则启动成功,同时在控制台会打印一个 elastic
用户的初始化密码。
可以使用 ./bin/elasticsearch -d
在后台运行服务。
访问 https://[host]:9200
查看是否启动成功,注意,是 https 协议
启动成功后可以使用 ./bin/elasticsearch-setup-passwords interactive
来重置所有用户密码(此方式需要手动设置密码)。
也可以使用 ./bin/elasticsearch-setup-passwords auto
来重置所有用户密码(此方式自动设置所有密码)。
也可以使用 ./bin/elasticsearch-reset-password -u elastic
来重置 elastic
用户密码(此方式无法手动设置密码,由系统自动生成密码)
Kibana 部署配置(8.7.0版本)
从 Kibana官网 下载安装包
它默认不允许在 root 下运行,如果当前是 root 用户,则需要创建一个单独的用户:
1 | groupadd elk |
其实在启动的时候也可以增加参数来允许在 root 下运行 ./bin/kibana --allow-root
但是既然默认不允许,那就不推荐。
1 | # 修改默认端口 |
执行 ./bin/kibana
启动服务,然后可以访问 http://[host]:5601
,注意,这里是 http 协议。
由于前面配置文件中没有配置具体的 ElasticSearch 服务地址和用户密码信息,在页面中提示配置 ElasticSearch 服务器信息,此时需要填写服务器地址和
kibana_system 的密码。
当前也可以在配置文件中写死这些配置。
如果不知道 kibaba_system
密码,可在 ElasticSearch 下执行 ./bin/elasticsearch-reset-password -u kibana_system
命令重置密码
1 | # 配置访问地址,虽然绑定了 0.0.0.0 ,任意网口都可以访问,但官方还是建议配置一个请求资源的前缀地址 |
重启 Kibana 服务,访问 http://[host]:5601
,用 elastic
用户登录系统,如果忘记了密码,请使用命令重置密码,登录 Kibana
后可重新修改设置密码。
Logstash 部署配置(8.7.0版本)
从 Logstash官网 下载安装包
由于 ElasticSearch 使用了默认的自签名 https ,因此需要复制证书到 Logstash copy -r $ES_HOME/config/certs/ $LOGSTASH_HOME/config/
,当然也可以忽略 https 验证。
登录 Kibana 创建 logstash_server
用户和角色,角色赋予 *
索引的 all
权限,以及集群的 manage_logstash_pipelines
权限,系统已有的 logstash_system 账号无法创建索引,因此必须定制一个账号。
在 $LOGSTASH_HOME
创建一个 springboot-logstash.conf
配置文件:
1 | input { |
启动 ./bin/logstash -f springboot-logstash.conf
服务
SpringBoot 配置
日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出
scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true
scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位 当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
在项目中引入依赖 net.logstash.logback:logstash-logback-encoder:7.2
,在 src/main/resources/
下配置 logback-spring.xml
文件内容:
1 |
|
以及修改 application.yml
文件:
1 | logging: |
配置成系统服务并设置自启动
文件:/lib/systemd/system/elasticsearch.service
1 | # http://www.jinbuguo.com/systemd/systemd.unit.html |
文件:/lib/systemd/system/kibana.service
1 | # http://www.jinbuguo.com/systemd/systemd.unit.html |
文件:/lib/systemd/system/logstash.service
1 | # http://www.jinbuguo.com/systemd/systemd.unit.html |
配置成功后执行 systemctl daemon-reload
刷新,然后就可以使用 systemctl start elasticsearch
/ systemctl start kibana
/ systemctl start logstash
来启动和管理服务了