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 来启动和管理服务了