wget https://v.vimll.com:9999/download/jmx_prometheus_javaagent-0.17.0.jar
/usr/local/jdk1.8.0_211/bin/java -javaagent:/data/jmx_exporter/jmx_prometheus_javaagent-0.17.0.jar=9998:/data/jmx_exporter/jmx-config.yaml -jar safe-pt-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod ;
supervisor配置
[program: safept-prod]
directory = /data/safe ; 程序的启动目录
command = /usr/local/jdk1.8.0_211/bin/java -javaagent:/data/jmx_exporter/jmx_prometheus_javaagent-0.17.0.jar=9998:/data/jmx_exporter/jmx-config.yaml -jar safe-pt-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod ; 启动命令,与命令行启动的命令是一样的
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 15 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 5 ; 启动失败自动重试次数,默认是 3
user = safe ; 用哪个用户启动
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 5 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /data/safe/logs/safept_stdout.log ;日志统一放在log目录下
stopasgroup = true
killasgroup = true
; stop时,仅仅干掉supervisord的子进程的话,子进程的子进程可能会变成孤儿进程。所以可以设置这个选项,把整个该子进程的整个进程组干掉。默认false
cat jmx-config.yaml
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
rules:
- pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
name: os_$1
type: GAUGE
attrNameSnakeCase: true