三台机器为例:
172.31.124.224
172.31.124.225
172.31.124.226
版本: nginx-1.6.2.tar.gz + nacos-server-1.4.1.tar.gz + prometheus-2.26.0-rc.0.linux-amd64 + grafana-5.2.4-1.x86_64.rpm
一. nginx搭建
nginx搭建, 亲测有效https://www.runoob.com/linux/nginx-install-setup.html
PS: nginx的配置文件 只有一个nginx.conf 后面模块过多的话都在一个里面显的非常拥挤, 配置如下:
nginx.conf
# 2 * cpuNum
worker_processes 14;
events {
use epoll;
worker_connections 65525;
}
http {
includemime.types;
default_type application/octet-stream;
sendfileon;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
# 这里使用include关键字 加载这个目录下所有的.conf结尾的文件
include /usr/local/webserver/nginx/conf/extra/*.conf;
}
nacos.conf
upstream nacos-loadbalance{
# 轮询 随机 ip哈希 最少连接数 个人觉得最少连接数靠谱
least_conn;
server 172.31.124.224:8848;
server 172.31.124.225:8848;
server 172.31.124.226:8848;
}
server {
listen 8849;
server_name localhost;
location /nacos/ {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE';
add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Authorization';
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For "$remote_addr,$http_x_forwarded_for";
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 256k;
proxy_buffers 4 512k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 1024k;
proxy_pass http://nacos-loadbalance/nacos/;
}
}
二. nacos搭建
-
conf目录下有一个nacos-mysql.sql文件 创建一个nacos数据库 在里面执行此文件
-
配置外置数据库
conf/application.properties
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://172.16.0.180:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&use
Unicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=000000
- conf下的cluster文件 更名为cluster.conf
172.31.124.224:8848
172.31.124.225:8848
172.31.124.226:8848
- scp -r nacos到另两台服务器上
- 三台服务器都执行 ./bin/startup.sh
- 访问 http://172.31.124.225:8849/nacos/
四. 健康检查 集成prometheus
- 暴露metrics
application.properties
management.endpoints.web.exposure.include=*
访问http://172.31.124.225:8849/nacos/actuator/prometheus
- 配置prometheus
vim prometheus.yml
metrics_path '/nacos/actuator/prometheus'
static_configs:
- targets: ['172.31.124.224:8848','172.31.124.225:8848','172.31.124.225:8848']
启动prometheus服务 screen -S prometheus
./prometheus --config.file=“prometheus.yml”
访问 http://72.31.124.225:9090/graph 如下图:
五. 集成grafana
yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.4-1.x86_64.rpm
rpm -ivh grafana-5.2.4-1.x86_64.rpm
warning: grafana-5.2.4-1.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 24098cb6: NOKEY
error: Failed dependencies:
fontconfig is needed by grafana-6.0.2-1.x86_64
urw-fonts is needed by grafana-6.0.2-1.x86_64
# 不报错 不需要安装以下依赖
yum install --downloadonly --downloaddir=./fontconfig
yum localinstall fontconfig-2.13.0-4.3.el7.x86_64.rpm
yum install --downloadonly --downloaddir=./urw-fonts
yum localinstall urw-base35-fonts-20170801-10.el7.noarch.rpm
rpm -ivh grafana-5.2.4-1.x86_64.rpm
service grafana-server start
访问 http://172.31.124.225:3000/ 如下图:
配置数据源
导入模版
最终监测效果截图如下: