防火墙添加端口:
防火墙添加端口(永久):firewall-cmd --zone=public --add-port=端口号/tcp --permanent
重启防火墙:systemctl restart firewalld.service
查看防火墙已添加的端口:firewall-cmd --zone=public --list-ports
可以关闭运行的防火墙 systemctl stop firewalld.service
关闭后再使用命令systemctl status firewalld.service查看防火墙状态,如果出现disavtive(dead)的字样,说明防火墙已经关闭
查看端口号:
lsof -i: 端口号
杀死进程:
kill -9 pid 终止进程号为pid的进程
grafana模板:
https://grafana.com/grafana/dashboards 搜索 相应 dashboards的id如 **8919,12227**
参考资料:
https://blog.csdn.net/qq_31725371/article/details/114697770
? prometheus是由谷歌研发的一款开源的监控软件,它通过安装在远程机器上的exporter,通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上
IP | 角色 | 系统 |
---|---|---|
192.168.91.128 | Prometheus 服务端 | CentOS 7 |
192.168.91.128 | node_exporter 客户端 | CentOS 7 |
普罗米修斯下载网址:https://prometheus.io/download/
监控集成器下载地址:http://www.coderdocument.com/docs/prometheus/v2.14/instrumenting/exporters_and_integrations.html
? 访问: https://github.com/prometheus/prometheus/releases/download/v2.25.0/prometheus-2.25.0.linux-amd64.tar.gz下载prometheus-2.25.0.linux-amd64.tar.gz
[root@VM_2-45 ~]# cd /usr/local 切换目录
[root@VM_2-45 local]# tar xf prometheus-2.25.0.linux-amd64.tar.gz 解压
[root@VM_2-45 local]# mv prometheus-2.25.0.linux-amd64/ prometheus 修改文件名
安装成功后可以查看安装版本
[root@VM_2-45 /usr/local/prometheus]# ./prometheus --version
显示如下:
prometheus, version 2.25.0 (branch: HEAD, revision: a6be548dbc17780d562a39c0e4bd0bd4c00ad6e2)
build user: root@615f028225c9
build date: 20210217-14:17:24
go version: go1.15.8
platform: linux/amd64
可以直接复制到prometheus.yml 中,没有影响
# my global config
global:
# 默认情况下,每15s拉取一次目标采样点数据。
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
# 每15秒评估一次规则。默认值为每1分钟。
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# job名称会增加到拉取到的所有采样点上,同时还有一个instance目标服务的host:port标签也会增加到采样点上
- job_name: 'prometheus'
# 覆盖global的采样点,拉取时间间隔5s
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
[root@VM_2-45 /usr/local/prometheus]# ./prometheus --config.file=prometheus.yml
点击targets[目标] 会看到红色框的内容
? 1.进入systemd目录下:cd /usr/lib/systemd/system
[root@VM_2-45 ~]# cd /usr/lib/systemd/system
? 2.创建文件:vim prometheus.service
[Unit]
Description=https://prometheus.io
[Service]
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.listen-address=:9090
[Install]
WantedBy=multi-user.target
? 3.生效系统system文件
systemctl daemon-reload
? 4.启动服务
[root@VM_2-45 ~]# systemctl start prometheus
? 访问 https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz下载node_exporter-1.1.2.linux-amd64.tar.gz
[root@VM_2-45 ~]# cd /usr/local
[root@VM_2-44 local]# tar xf node_exporter-1.1.2.linux-amd64.tar.gz
[root@VM_2-44 local]# mv node_exporter-1.1.2.linux-amd64/ node_exporter
[root@VM_2-44 /usr/local/node_exporter]# ./node_exporter
? 1.进入systemd目录下:cd /usr/lib/systemd/system
[root@VM_2-45 ~]# cd /usr/lib/systemd/system
? 2.创建文件:vim node_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
? 3.生效系统system文件
systemctl daemon-reload
? 4.启动服务
systemctl start node_exporter
? 修改配置文件添加监控项
[root@VM_2-45 /usr/local/prometheus]# cat prometheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['192.168.91.128:9090'] # 这个地方为默认的 也可以为 localhost
# 这个地方为新增的, 注意此文件的空格问题,和换行问题,如果启动失效,将其粘贴到txt中,清楚样式 删掉此处空格和注释即可
- job_name: 'linux'
static_configs:
- targets: ['192.168.91.128:9100','192.168.91.129:9100'] # 多个用,分开
? 重启Prometheus
[root@VM_2-45 /usr/local/prometheus]# systemctl restart prometheus.service
? 打开Prometheus 自带的监控页面,Status -> Targets 查看:
?
? 访问https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-7.4.3-1.x86_64.rpm下载grafana-7.4.3-1.x86_64.rpm
yum install -y grafana-7.4.3-1.x86_64.rpm
[root@VM_2-45 ~]# systemctl start grafana-server
? 初始用户名和密码都是admin
Configuration -> Data Sources ->add data source -> Prometheus
? 导入模板liunk-node-exporter-for-prometheus.json
grafana模板: https://grafana.com/grafana/dashboards 搜索 相应 dashboards的id如 8919,12227
暗转Tomcat 和JDk
配置Tomcat 指定jdk 启动 ,再 catalina.sh 头部 添加
#!/bin/sh
export JAVA_HOME=/root/soft/jdk1.8.0_331
export JRE_HOME=/root/soft/jdk1.8.0_331/jre
参考资料:
https://blog.csdn.net/weixin_43560924/article/details/120881722
jar包下载地址: https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar
1)下载 jmx_prometheus_javaagent-0.3.1.jar jar包
2)切换到 Tomcat bin 目录下边
3)新建一个配置文件,命名config.yaml
vim config.yaml
lowercaseOutputLabelNames: true
lowercaseOutputName: true
rules:
- pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):'
name: tomcat_$3_total
labels:
port: "$2"
protocol: "$1"
help: Tomcat global $3
type: COUNTER
- pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount):'
name: tomcat_servlet_$3_total
labels:
module: "$1"
servlet: "$2"
help: Tomcat servlet $3 total
type: COUNTER
- pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount):'
name: tomcat_threadpool_$3
labels:
port: "$2"
protocol: "$1"
help: Tomcat threadpool $3
type: GAUGE
- pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):'
name: tomcat_session_$3_total
labels:
context: "$2"
host: "$1"
help: Tomcat session $3 total
type: COUNTER
- pattern: ".*" #让所有的jmx metrics全部暴露出来
? 修改tomcat的启动文件 ,修改bin目录下的catalina.sh文件 此端口可以自定义30018
JAVA_OPTS="-javaagent:/usr/local/apache-tomcat-8.5.78/bin/jmx_prometheus_javaagent-0.15.0.jar=30018:/usr/local/apache-tomcat-8.5.78/bin/config.yaml"
? 重启tomcat,访问服务器上的30018 端口,查看是否采集到数据,也可以浏览器直接访问ip+端口
? http://localhost:30018
? prometheus.yml中增加
job_name: 'jmx_exporter'
scheme: http
tls_config:
insecure_skip_verify: true
file_sd_configs:
- files:
- jmx_exporter.json
创建 jmx_exporter.json
[root@localhost prometheus]# pwd
/usr/local/prometheus
[root@localhost prometheus]# vim jmx_exporter.json
[
{
"targets": [ "192.168.91.128:30018"],
"labels": {
"job": "work1",
"monitor_host": "192.168.91.128",
"monitor_port": "30018",
"monitor_type": "tomcat8",
"monitor_cluster":""
}
}
]
[root@VM_2-45~]# systemctl restart prometheus.service
导入 jvm1.json
导入 jvm2.json