接个任务,为某公司内网安装一套Elastic APM, 用于监测内网运行的各类项目。
因为是内网服务器,无法连接内网,选择使用压缩包方式安装部署。
服务器环境: linux Redhat7
step1: 从官网下载相关压缩包,并使用XFTP上传到内网服务器中。
官网下载地址: 选择linux 64-BIT版本,版本号为7.0.3
https://www.elastic.co/cn/downloads/
https://www.elastic.co/cn/downloads/apm
step2: 安装jdk11.0.4
从官网下载jdk11.0.4,解压后,设置 /etc/profile
vim /etc/profile
添加
export JAVA_HOME=/usr/es/elk_apm/jdk-11.0.4
export PATH=$PATH:$JAVA_HOME/bin
运行 source /etc/profile
step3: 切换到root账号,新建一个账号es,并授予root用户权限。(Elastic search默认不支持root账户启动)
添加es用户组 groudadd es
添加es用户 useradd es
添加es用户密码 passwd es
如果在添加过程中出现could not change to group 错误,请查阅 https://blog.csdn.net/horace20/article/details/37658153
step4: 在es目录下新建elk_apm目录,将上传的压缩文件转移到该路径下,解压。授予es用户对elastic search文件夹的最大控制权限。
sudo chmod 777 /home/es/elk_apm/elasticsearch-7.3.0
step5: 进入elasticsearch-7.3.0/config, 修改elasticsearch.yml配置文件,修改
node.name: node-1
network.host: 0.0.0.0
cluster.initial_master_nodes: ["node-1"]
step6: 修改部分系统配置,详见: https://blog.csdn.net/qq_40667143/article/details/86693488
step7: 进入elasticsearch-7.3.0/bin, 运行 ./elasticsearch -d 命令启动 elastic search, 如启动成功,运行curl -X GET http://localhost:9200 测试返回内容。如出现错误提示,根据错误提示查找相应解决办法。
常见错误:权限错误,JDK版本错误 等。
step8: 进入kibana-7.3.0-linux-x86_64,进入config, 修改 Kibana.yml,修改:
server.port: 5061
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
step9: 运行Kibana , 使用后台运行模式, ./bin/Kibana -&, 启动完成后在本地浏览器中打开 http://{ip}:5061, 打开apm向导页面。此时apm server尚未启动。
step10: 进入apm-server-7.3.0-linux-x86_64,修改apm-server.yml, 修改:
host: "0.0.0.0:8200"
rum:
enabled: true
#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
hosts: ["localhost:9050"]
运行apm-server 运行命令 , ./apm-server -e,此时返回Kibana apm 向导页,apm-server状态为已连接。
step11: 部署一个java demo项目,集成 apm agent
在Kibana apm向导页中,根据提示下载agent jar包 (elastic-apm-agent-1.8.0.jar)
使用spring boot构建一个简单的demo项目,打一个可部署的jar包。
将java项目jar包和 apm agent jar包上传到服务器中。使用如下命令启动该java项目:
java -javaagent:elastic-apm-agent-1.8.0.jar \
-Delastic.apm.service_name=test-java-application \
-Delastic.apm.server_url=http://localhost:8200 \
-Delastic.apm.secret_token= \
-Delastic.apm.application_packages=ourway.framework.boot \
-jar soundToText-Service-3.0-SNAPSHOT.jar 2>&1 &
(因为该java项目部署在和elastic apm server同一台服务器,所以可以使用http://localhost:8200,如果不在同一台服务器,使用IP替换localhost)
-- 部署完成,可以通过kibana apm 查看test-java-application 项目的运行情况了。