Skip to content

SkyWalking部署

1.SkyWalking部署

获取apache-skywalking-apm-es7-8.6.0.tar.gz安装包,该包下的agent目录为应用集成的客户端包,oap-libs目录下有适配skywalking所修改的包,如使用原生skywalking并搭配galaxy运维监控界面使用时需替换如下包:

1.1.SkyWalking单机部署

1.1.1.配置修改

  1. 修改apache-skywalking-apm-bin-es7 /config/application.yml 中的storage 节点下的selector、elasticsearch7节点进行修改

    说明:

    ① selector配置项是指选择配置文件中的哪一个数据库进行存储。

    ② elasticsearch7.nameSpace 的配置项的值为elasticsearch服务的配置文件elasticsearch.yml中的cluster.name 配置项,其余配置项根据实际情况进行配置

  2. SkyWalking UI服务默认使用8080端口,如需更换需要修改apache-skywalking-apm-bin-es7/webapp/webapp.yml 中的serve.port配置项。

skywaking的storage配置修改

3.如果SkyWalking连接的elasticsearch设置的用户名和密码,需要在apache-skywalking-apm-bin-es7 /config/application.yml 文件中设置ES的用户名和密码,如下图所示:

1.1.2.日志配置(可选)

skywalking使用的日志输出框架时log4j,进入skywakling的安装路径的config文件夹下,打开log4j2.xml文件:

xml

<Configuration status="info">
    <Properties>
        <!-- 日志文件存放路径 -->
        <Property name="log-path">${sys:oap.logDir}</Property>
    </Properties>
    <Appenders>
        <RollingFile name="RollingFile" fileName="${log-path}/skywalking-oap-server.log"
                     filePattern="${log-path}/skywalking-oap-server-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout>
                <pattern>%d - %c - %L [%t] %-5p %x - %m%n</pattern>
            </PatternLayout>
            <Policies>
                <!-- 当日志文件达到100MB时滚动 -->
                <SizeBasedTriggeringPolicy size="102400KB"/>
            </Policies>
            <DefaultRolloverStrategy max="30"/> <!-- 最多存储30个日志文件 -->
        </RollingFile>
    </Appenders>
    <Loggers>
        <logger name="org.eclipse.jetty" level="INFO"/>
        <logger name="org.apache.zookeeper" level="INFO"/>
        <logger name="io.grpc.netty" level="INFO"/>
        <Root level="info">
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
</Configuration>

可将其修改为按天删除日志文件:

xml

<Configuration status="info">
    <Properties>
        <!-- 日志文件存放路径 -->
        <Property name="log-path">${sys:oap.logDir}</Property>
    </Properties>
    <Appenders>
        <RollingFile name="RollingFile" fileName="${log-path}/skywalking-oap-server.log"
                     filePattern="${log-path}/skywalking-oap-server-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout>
                <pattern>%d - %c - %L [%t] %-5p %x - %m%n</pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy/>
                <!-- 每天/每1小时/分/... 生成一个文件, 时间依据filePattern的配置 -->
                <TimeBasedTriggeringPolicy interval="1"/>
                <!-- <SizeBasedTriggeringPolicy size="200m" /> -->
            </Policies>
            <DefaultRolloverStrategy max="30">
                <Delete basePath="${log-path}" maxDepth="2">
                    <IfFileName glob="skywalking-oap-server-*.log"/>
                    <!--!Note: 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用 另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功! -->
                    <!--7天 -->
                    <IfLastModified age="7d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </Appenders>
    <Loggers>
        <logger name="org.eclipse.jetty" level="INFO"/>
        <logger name="org.apache.zookeeper" level="INFO"/>
        <logger name="io.grpc.netty" level="INFO"/>
        <Root level="info">
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
</Configuration>

如下所示,配置删除4分钟之前的日志文件:

1.1.3.启动

1.运行启动,进入bin目录下,windows系统执行启动命令: ./startup.bat进行启动, linux系统执行./startup.sh(linux环境执行前请先检查文件是否有执行权限)。

说明:第一次启动SkyWalking需要初始化数据,服务启动较慢,需要小段时间的等待,请通过 apache-skywalking-apm-bin-es7 /log/skywalking-oap-server.log 查看日志信息,确认启动是否成功。

完成后访问 ip:port 进行访问。

1.1.4.监控中心集成skywalking

在aries-monitor的config目录下,修改对应环境所配置的skywalking地址与端口号

监控中心集成skywalking

1.2.SkyWalking集群部署

将apache-skywalking-apm-bin-es7.tar.gz 解压三份,分别为apache-skywalking-apm-bin-es7-node1、apache-skywalking-apm-bin-es7-node2、apache-skywalking-apm-bin-es7-node3。以下将三个节点成为 node1、node2、node3

1.2.1.配置修改

使用zookeeper作为skywalking的注册中心:

三个节点同时修改:

  1. cluster.selector、cluster.zookeeper修改

  2. storage.selector、storage.elasticsearch7下nameSpace及clusterNodes修改

  3. SkyWalking 服务端口修改

    说明:如果是每台机器部署一个SkyWalking服务则可以跳过此修改。因为我此次是一台机器部署三个服务,因此需要将三个服务使用不同的端口

    node1 :此配置不变

    node2: restPort: $

    gRPCPort: $

    node3: restPort: $

    gRPCPort: $

  4. 修改webapp配置。

    编辑: webapp/webapp.yml,修改listOfServers配置项,修改为 三个节点的ip及端口,此端口为上一步中的restPort。

    如果要给SkyWalking的UI做高可用,则可修改server.port后通过nginx进行代理。本文以单机UI介绍。

  5. 修改agent配置

    agent的包从skywalking服务端的包中获取,具体链路所需的jar包配置参考首张图片。目前已经将skywaking的相关配置提成了参数,可以在微服务的application-xx.yml文件中直接配置。

微服务application-xx.yml中的配置:

yaml
#skywaking的agent路径
skywalking-path: /app/dcits/app-run/agent
#skywaking的服务端的url
skywalking-url: dcits.cbs.skywalking.sit1:11800

1.2.2.启动

  1. 启动服务端

    在node1的bin目录下执行 oapService.sh, 通过日志检查node1正确启动后,再启动node2, 通过日志检查node2正确启动后,再启动node3.检查node3正确启动,则三个节点的服务端启动完成。日志:node* /logs/skywalking-oap-server.log。

  2. 启动UI。

    因为每个节点中的UI和agent配置的都是连接服务端集群,因此在启动UI时只需要启动一个节点即可。

    执行node1/bin/ webappService.sh。

    通过查看日志检查是否连接服务端集群。node1/logs/webapp.log