性能监控平台全栈式部署教程
一、Zipkin安装
【安装】curl -sSL https://zipkin.io/quickstart.sh | bash -s【启动】启动方式1:nohup java -jar /env/zipkin.jar --STORAGE_TYPE=mysql --MYSQL_DB=zipkin --MYSQL_USER=root --MYSQL_PASS=123456 --MYSQL_HOST=172.16.74.216 --MYSQL_TCP_PORT=3306 > zipkin.file 2>logs.error &启动方式2:java -jar zipkin访问地址:172.16.74.215:9411/zipkin/【SprintBoot项目】<!-- 在poms.xml引入zipkin 的依赖,需对应Springboot版本 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId><version>2.1.0.RELEASE</version></dependency>【配置】# 在springboot项目中的yml/properties文件中配置spring.zipkin.base-url=http://172.16.74.215:9411spring.zipkin.sender.type=webspring.zipkin.sleuth.sampler.probability=1.0【maven central repository】https://central.sonatype.com/artifact/org.springframework.cloud/spring-cloud-starter-sleuth/3.1.8
二、Prometheus安装
【安装Prometheus】下载地址:https://prometheus.io/download/解压命令:tar xf prometheus-2.44.0.linux-amd64.tar.gz移动安装目录:mv prometheus-2.44.0.linux-amd64 /usr/local/prometheus【设置系统开机启动】添加prometheus至systemd:cd /etc/systemd/system/touch prometheus.service[Unit]Description=Prometheus Monitoring SystemDocumentation=Prometheus Monitoring System[Service]ExecStart=/usr/local/prometheus/prometheus \--config.file=/usr/local/prometheus/prometheus.yml \--storage.tsdb.path=/usr/local/prometheus/data \--web.listen-address=:9090[Install]WantedBy=multi-user.target【启动Prometheus服务】启动:service prometheus start访问地址:http://172.16.74.215:9090【配置Linux/mysql/redis/mongodb监控】scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'node-215'static_configs:- targets: ['172.16.74.215:9100']- job_name: mysqld-216static_configs:- targets: ['172.16.74.216:9104']
三、Grafana安装
【安装Grafana】sudo yum install -y https://dl.grafana.com/oss/release/grafana-9.5.2-1.x86_64.rpm【启动Grafana服务】systemctl restart grafana-server.service查看:http://172.16.74.215:3000用户名/密码:admin/admin123【配置中文】在grafana默认配置 /etc/grafana/grafana.ini 中,将default_language = en-US改为 zh-Hans即可,不过存在部分翻译不完全【配置模板ID】1、监控容器,推荐ID3146:Kubernetes Pods8685:K8s Cluster Summary10000:Cluster Monitoring for Kubernetes8588:Kubernetes Deployment Statefulset Daemonset metrics315:Kubernetes cluster monitoring (via Prometheus)2、Linux服务器监控模板ID:8919:1 Node Exporter Dashboard 22/04/13 ConsulManager自动同步版9276:1.主机基础监控(cpu,内存,磁盘,网络)3、mysql监控73624、Windows服务器监控模板ID:104675、监控协议http/icmp/tcp/dns/9965:Blackbox Exporter Dashboard6、nginx96147、influxdb13644
四、安装influxdb
【安装influxdb】下载最新的InfluxDB开源(OSS)版本安装命令:sudo yum localinstall influxdb2-2.7.1.x86_64.rpmInfluxDB是一个由InfluxData开发的开源时序型数据库。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据【访问influxdb地址】访问地址:http://172.16.74.215:8086/注册用户:admin/abc123456【配置influxdb】组织:testerbacker:jmeterApi tonken: oh99CNb1HRAG85I7f8ApyEwWX0ekjwKbDx-evbR9TV8QqvIsyt0QvCk40r51cdS1OShuiPTCdbdWwGGVbkfvxw==【配置Jmeter插件】Jmeter插件:https://github.com/mderevyankoaqa/jmeter-influxdb2-listener-plugin/releases, 需要JDK,java11环境
五、安装skywarking
【可以用来干啥】1、发现系统耗时或者说瓶颈在哪里。2、发现各系统之间的调用关系。3、监控服务异常。4、排查系统故障。【普通安装】主下载页:http://skywalking.apache.org/downloads/1、到官网下载SkyWalking主程序:https://dlcdn.apache.org/skywalking/8.9.1/apache-skywalking-apm-8.9.1.tar.gz2、解压,其中webapp目录为web-ui位置,可以在其中的/usr/local/skywalking/webapp/webapp.yaml文件修改web-ui端口(默认为8080)等参数。3、启动SkyWalking的web-ui及指标收集进程(指标数据用数据库存储,默认使用的是H2):sh /usr/local/skywalking/bin/startup.sh4、安装目录:/usr/local/skywalking/【如何使用】1、通过http://127.0.0.1:8080/访问web-ui2、skywalking-oap是skywalking日志收集服务,默认开放3个端口:12800 (给skywalking-ui提供接口访问监控数据)和11800 (收集接入skywalking监控的服务的日志信息),8080 (skywalking-ui 是skywalking的前端)3、启动成功后会启动两个服务,一个是 skywalking-oap-server,一个是 skywalking-web-ui,skywalking-oap-server 服务启动后会暴露 11800 和 12800 两个端口,分别为收集监控数据的端口 11800 和接受前端请求的端口 12800,修改端口可以修改 config/applicaiton.yml【监控普通jar包】1、java -javaagent:/usr/local/skywalking/agent/skywalking-agent.jar -jar case-server-1.0.jar &2、nohup java -javaagent:/usr/local/skywalking/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=case-server -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dskywalking.logging.file_name=case-service_api.log -jar /opt/case-server-1.0.jar > /opt/logs/log-web.file 2>/opt/logs/log-web.error &# 参数解释-Dskywalking.agent.service_name: 本应用在skywalking中的名称-Dskywalking.collector.backend_service: skywalking 服务端地址,默认端口是 11800-Dskywalking.logging.file_name:日志文件【SkyWalking 配置文件说明】config/application.yml : 收集器服务端配置webapp/webapp.yml : 配置 Web 的端口及获取数据的 OAP(Collector)的IP和端口agent/config/agent.config : 配置 Agent 信息,如 Skywalking OAP(Collector)的地址和名称【skywalking配置storage的elasticsearch】config/application.yml【Skywalking 告警通知】skywalking 告警的核心由一组规则驱动,这些规则定义在 config/alarm-settings.yml 文件中,告警规则的定义分为三部分:1、告警规则:它们定义了应该如何触发度量警报,应该考虑什么条件;2、网络钩子(Webhook}:当警告触发时,哪些服务终端需要被通知;3、gRPC 钩子:远程 gRPC 方法的主机和端口,告警触发后调用;为了方便,skywalking 发行版中提供了默认的 alarm-setting.yml 文件,包括一些规则,每个规则有英文注释,可以根据注释得知每个规则的作用:1、在最近 10 分钟的 3 分钟内服务平均响应时间超过 1000ms2、最近 10 分钟内,服务成功率在 2 分钟内低于 80%3、服务实例的响应时间在过去 10 分钟的 2 分钟内超过 1000ms4、数据库访问{name}的响应时间在过去 10 分钟的 2 分钟内超过 1000ms【JAVA项目添加skywalking日志】在pom.xml文件中添加以下依赖<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>8.8.0</version></dependency>部署:https://blog.51cto.com/lidabai/5659576日志:https://www.leftso.com/article/955.html【Skywalking 跨多个微服务跟踪】Prepare the nacos provider in cluster module
六、Elasticsearch安装
【下载】wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.4-linux-x86_64.tar.gz【用户组】#创建elasticsearch用户组groupadd elasticsearch#创建新用户elasticsearch ,设置用户组为elasticsearch ,密码123456useradd elasticsearch -g elasticsearch -p 123456#授权,更改/elasticsearch-7.14.0文件夹所属用户及用户组为elasticsearch:elasticsearchchown -R elasticsearch:elasticsearch /usr/local/elasticsearch-7.13.4/chown -R elasticsearch:elasticsearch /usr/local/datachown -R elasticsearch:elasticsearch /usr/local/logs#切换用户elasticsearch,用户/密码是elsearch/123456su elasticsearch【配置文件设置】文件:/env/elasticsearch-7.13.4/config/elasticsearch.ymlcluster.name: my-applicationnode.name: node-1path.data: /usr/local/datapath.logs: /usr/local/logsnetwork.host: 0.0.0.0http.port: 9200cluster.initial_master_nodes: ["node-1"]# 需要开启跨域才能给elasticsearch-head,kibana等连接http.cors.enabled: truehttp.cors.allow-origin: "*"http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type【重要配置项说明】cluster.name:集群名称,同一ES集群名称必须相同;node.name:集群中当前节点名称。建议命名较高区分度,如:当前节点hostname,hostip等path.data:ES实例存放数据目录;注:建议生产环境数据目录与应用程序隔离path.logs:ES实例存放日志目录;注:建议生产环境数据目录与应用程序隔离network.host:当前实例绑定的ip地址,注:如未绑定则无法通过ip地址访问http.port:ES实例对外提供REST服务的端口,默认9200transport.port:ES实例内部通信端口,默认9300discovery.seed_hosts:数组形式存储ES集群节点信息,多个以逗号分隔cluster.initial_master_nodes:ES集群启动时,引导默认的master节点,注:仅在集群第一次启动时候此配置有效。【目录授权】chown -R elsearch:elsearch datachown -R elsearch:elsearch logs【修改启动内存】es实例启动默认需要4G内存,为了避免启动后出现内存不足异常,配置es实例2G内存。# 配置文件:/elasticsearch-7.13.4/config/vim jvm.options## -Xms4g## -Xmx4g修改为:(根据实际系统内存。注:不要留空格)-Xms2g-Xmx2g【启动elasticsearch】以后台方式启动:/env/elasticsearch-7.13.4/bin/elasticsearch -d关闭后台运行的es实例,查看es进程pid并杀死进程ps -ef|grep elasticsearchnetstat -lntup|grep 9200【安装成功】在浏览器中打开:http://172.16.74.215:9200/,如下,则证明已经正常启动
七、node/mysqld/redis_exporter安装
insert into mysql.user(Host,User,Password) values('localhost','mysqld_exporter',password('123456'));flush privileges;--创建完需要刷新修改mysql密码:ALTER USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'Runoon2021#';(1)mysqld_exporter安装1、安装:https://prometheus.io/download/#mysqld_exporter2、启动:nohup /usr/local/exporter/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/exporter/mysqld_exporter/my.cnf &配置/usr/local/exporter/mysqld_exporter/my.cnf[client]user=rootpassword=123456host=localhostport=3306(2)node_exporter安装1、设置用户组root@prometheus-service prometheus]# groupadd prometheus[root@prometheus-service prometheus]# useradd -g prometheus -s /sbin/nologin prometheus2、下载地址:https://prometheus.io/download/#node_exporter3、解压安装并且改名[root@node-exporters opt]# tar xf node_exporter-1.3.1.linux-armv7.tar.gz -C /usr/local/[root@node-exporters opt]# mv /usr/local/node_exporter-1.3.1.linux-armv7/ /usr/local/node_exporter4、设置node_exporter开机启动添加node_exproter至systemd:cd /etc/systemd/system/touch node_exporter.service[Unit]Description=node_exporterDocumentation=https://prometheus.io/After=network.target[Service]Type=simpleUser=prometheusGroup=prometheusExecStart=/usr/local/node_exporter/node_exporter \--web.listen-address=0.0.0.0:9100 \--collector.systemd \--collector.systemd.unit-whitelist=(sshd|nginx).serviceRestart=on-failure[Install]WantedBy=multi-user.target5、启动服务service node_exporter restart(3)redis_exporter安装:启动:(4)mongodb_exporter安装: https://github.com/dcu/mongodb_exporter/releases启动:nohup mongodb_exporter --mongodb.uri=mongodb://127.0.0.1:27017 &查看:http://172.16.74.62:9216/metrics安装教程:https://blog.51cto.com/root/3036719
正文到此结束
- 本文标签: 性能监控 性能调优 skywalking
- 版权声明: 本站原创文章,于2023年09月28日由小蜜蜂社区发布,转载请注明出处
热门推荐
相关文章
该篇文章的评论功能已被站长关闭