在Ubuntu下监控Java日志有多种方法和工具可以使用。以下是一些常用的解决方案:
ELK Stack(Elasticsearch, Logstash, Kibana)是一个强大的日志管理和分析解决方案。
在Ubuntu上安装ELK Stack的步骤如下:
# 安装Elasticsearch
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.lists
sudo apt-get update && sudo apt-get install elasticsearch
# 安装Logstash
sudo apt-get install logstash
# 安装Kibana
sudo apt-get install kibana
创建一个 logstash.conf
文件,用于收集Java应用的日志并将其发送到Elasticsearch。
input {
file {
path "/path/to/your/logfile.log"
start_position "beginning"
}
}
filter {
grok {
match { "message" "%{COMBINEDAPACHELOG}" }
}
date {
match [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
elasticsearch {
hosts ["localhost:9200"]
}
stdout {
codec rubydebug
}
}
编辑 /etc/elasticsearch/elasticsearch.yml
文件,确保网络设置正确。
network.host: 0.0.0.0
discovery.seed_hosts: ["localhost"]
cluster.initial_master_nodes: ["node-1"]
编辑 /etc/kibana/kibana.yml
文件,设置Elasticsearch的URL。
elasticsearch.hosts: ["http://localhost:9200"]
sudo systemctl start elasticsearch
sudo systemctl start logstash
sudo systemctl start kibana
Sentry是一个开源的错误跟踪和日志聚合平台,可以帮助你实时监控和修复崩溃。
# 直接下载git clone https://github.com/getsentry/self-hosted.git
# 或从https://github.com/getsentry/self-hosted/tags下载对应的tar.gz文件
# 解压文件 tar xvf self-hosted-21.8.0.tar.gz
# 重命名 mv self-hosted-21.8.0 self-hosted
cd self-hosted
./install.sh
docker-compose up -d
进入 onpremise
目录下的 sentry
目录,修改 config.yml
,添加邮件配置信息。
mail:
host: 邮箱对应的smtp域名
port: 邮箱对应端口
username: 你的邮箱
password: 你设置的密码
use-tls: 是否使用tls连接
from: 发送者,填的和username一样就行
然后运行 docker-compose down
中止 docker
中的 sentry
相关容器,并再次运行 docker-compose up -d
重新启动 sentry
相关容器。
Prometheus是一个开源的监控系统,可以与Grafana结合使用,提供强大的可视化功能。
sudo apt update
sudo apt install prometheus
sudo systemctl start prometheus
sudo systemctl enable prometheus
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/ubuntu $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install grafana
sudo systemctl start grafana-servers
sudo systemctl enable grafana-server
在Maven项目中添加依赖:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.10.5</version>
</dependency>
Spring Boot项目还得开启actuator端点:
management:
endpoints:
web:
exposure:
include: prometheus
metrics:
tags:
application: ${spring.application.name}
通过上述方法,您可以根据自己的需求选择合适的工具来监控Java程序在Ubuntu上的运行状态。