Pinpoint完整集群实现,包括flink集群的加入

Pinpoint是韩国人开发的一套基于java的Apm(应用性能监控),具有低延迟、实时监控、拓扑发现、低性能损耗的特点(官方预估是3%),同事有一个完善的web后台,一目了然查看应用拓扑。

安装使用前我搜索了网上一堆的文档,几乎都是半路货或是比较旧,一半靠官网,一半靠摸索理解,还好感谢官网的协助,最终全部搭建成功。为了方便以后其它人的使用,我用ansible搭建成大部分的初始化部分,但剩下几个小步骤还是需要手动执行下,例如数据库的导入,修改job的架包等

这里要搭建是一套可以实际用的pinpoint集群,我测试环境用3台机器来实现,分别是

172.25.33.230  :  zookeeper,hadoop,hbase,collector,web,nginx

172.25.33.231  :  zookeeper,hadoop,hbase,collector

172.25.33.232  :  zookeeper,hadoop,hbase,collector

搭建的顺序首选是

1、搭建一套zookeeper集群

2、搭建一套hdfs集群

3、搭建hbase集群

4、搭建flink集群

5、启动多个collector应用,利用nginx负载均衡(实际使用建议用keepalive)

6、启动web管理后台

7、使用一个jar应用添加agent进行测试



看起来是不是具体搭建比较麻烦,包括各种配置。这里我用ansible几乎完成全部配置,只要稍微修改下参数的设置,就可以完成一整套搭建,所以搭建的顺序改成

1、三个测试机器部署ssh免密登录

2、下载配置好的环境

3、批量ansible.vars.yml 中的IP,

4、安装ansible,执行ansible-playbook

5、启动以及导入数据库

6、搭建一个nginx用于负载均衡controller

7、启动所有东西

这样看起来就比较简单实现,下面开始来搭建



1、三个测试机器部署ssh免密登录

1 #进入root目录
2 ssh-keygen  #一路回车
3 cd /root/.ssh
4 mv id_rsa.pub authorized_keys
5 scp -p authorized_keys   172.25.33.231:/root/.ssh/
6 scp -p authorized_keys   172.25.33.232:/root/.ssh/

然后作下测试:

ssh 免密是必须的,这个关系到hdfs的搭建,hbase集群的搭建



2、下载配置好的环境

cd /opt
git clone https://github.com/rainard/apm-pinpoint.git
mv apm-pinpoint  apm
cd apm


3、批量ansible.vars.yml 中的IP

这个好像没啥好说的,直接用文本全部替换,把三个ip都替换成实际搭建要用到的IP,例如下图。文章最后我再解释这些参数的意义,

替换mysql的帐号密码(ansible.vars.yml)

## pinpoint-web jdbc config
jdbc_driverClassName: com.mysql.jdbc.Driver
jdbc_url: jdbc:mysql://172.25.33.230:3306/pinpoint?characterEncoding=UTF-8
jdbc_user: root
jdbc_password: test


4、安装ansible,执行ansible-playbook

安装ansible

yum install -y ansible

执行ansible-playbook

cd /opt/apm
ansible-playbook ansible_rsync.play.yml

这样执行完后,整个集群基本就配置好了,下面做一些收尾工作,然后启动集群



5、启动以及导入数据库

在三台机器的/etc/profile中添加必须的路径配置,添加完最好重启下

JAVA_HOME=/usr/local/apm/java
HADOOP_HOME=/usr/local/apm/hadoop
HADOOP_INSTALL=$HADOOP_HOME
HADOOP_MAPRED_HOME=$HADOOP_HOME
HADOOP_COMMON_HOME=$HADOOP_HOME
HADOOP_HDFS_HOME=$HADOOP_HOME
YARN_HOME=$HADOOP_HOME
HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
HBASE_CLASSPATH=$HADOOP_HOME/etc/hadoop/
HBASE_MANAGES_ZK=false
ZOOKEEPER_HOME=/usr/local/apm/zookeeper
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:
PATH=$PATH:/usr/local/mysql/bin:

在三台机器上启动zookeeper集群

/usr/local/apm/zookeeper/bin/zkServer.sh start ; 

测试zookeeper的启动情况

/usr/local/apm/zookeeper/bin/zkServer.sh  status

下面的启动操作在172.25.33.230上面执行

hdfs格式化namenode,仅第一次启动需要

/usr/local/apm/hadoop/bin/hdfs namenode -format 

启动hdfs集群

/usr/local/apm/hadoop/sbin/start-all.sh 

启动hbase集群

/usr/local/apm/hbase/bin/start-hbase.sh  

导入hbase数据库

/usr/local/apm/hbase/bin/hbase shell /usr/local/apm/hbase-create.hbase 

启动flink集群

 /usr/local/apm/flink/bin/start-cluster.sh

导入web数据库(非必须,只是用于报警)

*** 关于mysql ****

web的报警部分数据存在mysql,如果你想要报警相关,需要把额外提供一个mysql,并创建pinpoint数据库

#下面两个sql文件导入pinpoint数据库
/usr/local/apm/pinpoint-web-tomcat/ROOT/WEB-INF/classes/sql/CreateTableStatement-mysql.sql
/usr/local/apm/pinpoint-web-tomcat/ROOT/WEB-INF/classes/sql/SpringBatchJobRepositorySchema-mysql.sql

启动web

 /usr/local/apm/pinpoint-web-tomcat/bin/startup.sh

--------------collector

三个机器启动collector

/usr/local/apm/pinpoint-controller-tomcat/bin/startup.sh

利用nginx为三个collector做负载均衡,实际运用中建议加上keepalive,这里提供nginx的一个虚机配置文件

[[email protected] tcp]# cat pinpoint.conf
        upstream 9994_tcp_upstreams {
                #least_timefirst_byte;
                #fail_timeout=15s;
                server 172.25.33.230:9994;
                server 172.25.33.231:9994;
                server 172.25.33.232:9994;
        }

        upstream 9995_udp_upstreams {
                #least_timefirst_byte;
                server 172.25.33.230:9995;
                server 172.25.33.231:9995;
                server 172.25.33.232:9995;
        }

        upstream 9996_udp_upstreams {
                #least_timefirst_byte;
                server 172.25.33.230:9996;
                server 172.25.33.231:9996;
                server 172.25.33.232:9996;
        }

        server {
                listen 39994;
                proxy_pass 9994_tcp_upstreams;
                #proxy_timeout 1s;
                proxy_connect_timeout 1s;
        }

        server {
                listen 39995 udp;
                proxy_pass 9995_udp_upstreams;
                proxy_timeout 1s;
                #proxy_responses1;

        }

        server {
                listen 39996 udp;
                proxy_pass 9996_udp_upstreams;
                proxy_timeout 1s;
                #proxy_responses1;
        }


到这里,集群的所有操作以及搭建完毕,那么agent怎么操作呢?

在启动的jvm里面添加

-javaagent:/usr/local/apm/pinpoint-agent/pinpoint-bootstrap-1.8.0-RC1.jar -Dpinpoint.agentId=PP_172.25.33.230 -Dpinpoint.applicationName=app-demo \ 

javaagent : 是agent架包的位置

Dpinpoint.agentId  : 是这个应用部署的节点id,节点唯一

Dpinpoint.applicationName :是应用的名称,每个应用唯一



原文地址:https://www.cnblogs.com/easton-wang/p/9634153.html

时间: 2024-10-10 17:54:33

Pinpoint完整集群实现,包括flink集群的加入的相关文章

分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用(主从.事务与锁.持久化)> 本文我们继续学习redis的高级特性--集群.本文主要内容包括集群搭建.集群分区原理和集群操作的学习. Redis集群简介 Redis 集群是3.0之后才引入的,在3.0之前,使用哨兵(sentinel)机制(本文将不做介绍,大家可另行查阅)来监控各个节点之间的状态.Redi

redis高级应用(集群搭建、集群分区原理、集群操作)

文章主目录 Redis集群简介 Redis集群搭建 Redis集群分区原理 集群操作 参考文档 本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用(主从.事务与锁.持久化)> 本文我们继续学习redis的高级特性--集群.本文主要内容包括集群搭建.集群分区原理和集群操作的学习. 回到顶部 Redis集群简介 Redis 集群是3.0之后才引入的,在3.0

Flink使用(二)——Flink集群资源规划

前言 本文主要译自Flink Forward 2017的柏林站中Robert Metzger的有关集群规划的How to size your flink cluster一文.该文中主要是考虑网络资源,博主结合自己的使用经验对文中省略的做了一定补充,同时也非常欢迎大伙留言补充. 本文非直译,原文链接如下:https://www.ververica.com/blog/how-to-size-your-apache-flink-cluster-general-guidelines 文中拿捏不准的地方,

Flink集群模式部署及案例执行

一.软件要求 Flink在所有类UNIX的环境[例如linux,mac os x和cygwin]上运行,并期望集群由一个 主节点和一个或多个工作节点组成.在开始设置系统之前,确保在每个节点上都安装了一下软件: 1.Java1.8.x或更高版本 2.ssh,必须运行sshd才能使用管理远程组件的Flink脚本 在所有集群节点上都具有免密码的ssh和相同的目录结构,将使你可以使用flink脚本来控制所有内容. 二.Flink Standalone模式设置 1.下载 前往Flink官网下载最新版Fli

Mongodb集群架构之副本集

本文介绍了热门的NoSQL数据库MongoDB的副本集这种分布式架构的一些概念和操作.主要内容包括: MongoDB副本集相关概念 MongoDB副本集环境搭建 MongoDB副本集的读写分离 MongoDB副本集的故障转移 MongoDB副本集的优点 MongoDB副本集的缺点 1.副本集相关概念 主节点. 在一个副本集中,只有唯一一个主节点.主节点可以进行数据的写操作和读操作.副本集中各个节点的增伤改等配置必须在主节点进行. 从节点. 在一个副本集中,可以有一个或者多个从节点.从节点只允许读

linux集群系列(1) --- Linux集群系统基础

一.简介     1.1. Linux集群系统包括集群节点和集群管理器两部分. 集群节点有时简称为节点.服务器或服务器节点,是提供处理资源的系统,它进行集群的实际工作.一般来讲,它必须进行配置才能成为集群的一部分,也必须运行集群的应用软件.应用软件可以是专用于集群的软件,也可以是设计用于分布式系统的标准软件. Linux集群管理器则是将节点捆绑在一起,以构成单一系统外观的逻辑结构,它用于将任务分解到所有的节点.集群因多种不同的原因而有着不同的类型,建立Linux集群的最直接原因是共享CPU资源,

从单机到集群会话的管理之集群模式二(更大的集群)

<从单机到集群会话的管理之集群模式一>中讲到的全节点复制的网络流量随节点数量增加呈平方趋势增长,也正是因为这个因素导致无法构建较大规模的集群,为了使集群节点能更加大,首要解决的就是数据复制时流量增长的问题,下面将介绍另外一种会话管理方式,每个会话只会有一个备份,它使会话备份的网络流量随节点数量的增加呈线性趋势增长,大大减少了网络流量和逻辑操作,可构建较大的集群. 下面看看这种方式具体的工作机制,集群一般是通过负载均衡对外提供整体服务,所有节点被隐藏在后端组成一个整体.前面各种模式的实现都无需负

集群主要分成三大类 (高可用集群, 负载均衡集群,科学计算集群)

转自:http://blog.csdn.net/nick_php/article/details/52187905 高可用集群( High Availability Cluster) 负载均衡集群(Load Balance Cluster) 科学计算集群(High Performance Computing Cluster) 1.高可用集群(High Availability Cluster) 常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如"双机热备", "

mongodb3.6集群搭建:分片+副本集

mongodb是最常用的noSql数据库,在数据库排名中已经上升到了前五.这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群. 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置服务器等.相关概念mongodb集群架构图: 从图中可以看到有四个组件:mongos.config server.shard.replica set.mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个请求分发中心,它