linux使用elasticsearch-7.17.4

下载:wget [https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.4-linux-x86_64.tar.gz](https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.4-linux-x86_64.tar.gz)

 解压:tar zxvf elasticsearch-7.17.4-linux-x86_64.tar.gz
 重命名:mv elasticsearch-7.17.4 skywalking-elasticsearch
 切目录:cd skywalking-elasticsearch
 建目录:mkdir data
 编辑配置文件:vim config/elasticsearch.yml

 结尾加入配置
cluster.name 集群名称
node.name 节点名称
path.data 数据存放位置
path.logs 日志存放位置
http.port 打算只给skywalking用,这里指定个端口
cluster.initial_master_nodes 由于是单点不用管太多,跟node.name一样就行
```java
cluster.name: skywalking

node.name: node-1

path.data: /opt/skywalking-elasticsearch/data

path.logs: /opt/skywalking-elasticsearch/logs

http.port: 19200

cluster.initial_master_nodes: ["node-1"]
```

7. 修改系统配置文件

vim /etc/sysctl.conf 
 结尾加入配置,vm.max_map_count 限制一个进程可以拥有的虚拟内存大小,这里加大点限制,不然可能会报错
```java
vm.max_map_count=262144

```
使系统生效 sysctl -p

8. 用非root用户启动es

如果没有非root用户,则家用户 useradd sky-es。

9. 赋予目录权限

chown -R sky-es /opt/skywalking-elasticsearch


10. 切换用户 su sky-es
10. 启动 ./bin/elasticsearch -d


# 安装 skywalking

1. 解压 :tar zxvf apache-skywalking-apm-9.1.0.tar.gz 
1. 改名: mv apache-skywalking-apm-bin skywalking
1. 切换目录:cd skywalking
1. vim config/application.yml
- selector 指定使用es来存储数据
- namespace es的集群名称
- clusterNodes es的节点地址
```java
storage:

selector: ${SW_STORAGE:elasticsearch}

elasticsearch:

namespace: ${SW_NAMESPACE:"skywalking"}

clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:127.0.0.1:19200}
```

6. vim ./webapp/webapp.yml
```java
server:
  port: 18080
```

7. 如果需要特定java版本,可以修改jdk的路径,在_RUNJAVA=${JAVA_HOME}/bin/java前面指定jdk位置:

vim ./bin/oapService.sh

8. vim ./bin/webappService.sh

在_RUNJAVA=${JAVA_HOME}/bin/java前面指定jdk位置

第一个:进入目录 /opt/skywalking-elasticsearch
切换用户 su sky-es
启动 ./bin/elasticsearch -d
第二个:进入目录 /opt/skywalking
用root登录
 启动   ./bin/startup.sh

9. ./bin/startup.sh  启动
9. 访问 http://127.0.0.1:18080/


# 探针

下载 wget https://dlcdn.apache.org/skywalking/java-agent/8.10.0/apache-skywalking-java-agent-8.10.0.tgz

1. 解压 tar zxvf apache-skywalking-java-agent-8.10.0.tgz 
1. 启动微服务加探针(bdcockpit文件夹中的启动命令已经加入,忽略)

java -javaagent:/opt/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=group1::bdcockpit -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar demoProject.jar 

4. 集成gateway

gateway相对来说较为特殊,原因是其基于netty的非阻塞服务,如果需要skywalking支持对gateway的链路追踪,那么需要skywalking的探针文件夹下的文件目录做下修改,即“skywalking-agent”下的文件,将其下的/optional-plugins/apm-spring-cloud-gateway-3.x-plugin-8.10.0.jar文件和apm-spring-webflux-5.x-plugin-8.10.0.jar文件复制到/plugins目录下,链路追踪即可支持gateway。

5. 日志收集:

日志收集指的是微服务打印的日志存入skywalking,在skywalking页面查看代码运行日志。需要将“skywalking-agent”下的/optional-plugins/apm-toolkit-logback-1.x-8.10.0.jar复制到/plugins目录下;

    <dependency>
        <groupId>org.apache.skywalking</groupId>
        <artifactId>apm-toolkit-logback-1.x</artifactId>
        <version>8.10.0</version>
    </dependency>
由于spring自带了logback依赖,所以无需再加入logback的依赖了。  在resources目录下加入文件logback-spring.xml,并输入以下内容:
 
```java
<?xml version="1.0" encoding="UTF-8"?>
<configuration>  
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>
    <!-- 配置异步记录 AsyncAppender -->
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>1024</queueSize>
        <neverBlock>true</neverBlock>
        <appender-ref ref="STDOUT"/>
    </appender>
    <!-- skywalking grpc 日志收集 8.4.0版本开始支持 -->
    <appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>

    <!--系统操作日志-->
    <root level="INFO">  
        <appender-ref ref="STDOUT"/> 
        <appender-ref ref="ASYNC"/> 
        <appender-ref ref="grpc-log"/>
    </root>
</configuration>
```

 

6. 告警功能

在skywalking服务的conf目录下,打开“alarm-settings.yml”,并在最后一行添加“  - http://127.0.0.1:5000/send_mail”,此ip为以上python服务启动的服务器ip。
 接口代码:
```java
# !/usr/bin/env python
# _*_ coding: utf-8 _*_

from flask import Flask, request
import smtplib
from email.mime.text import MIMEText
import time
app = Flask(__name__)

@app.route("/send_mail", methods=["POST"])
def send_mail():
    info = request.json
    print("#########:",info, type(info))
    for i in info:
        # alter_time = tima.strftime("%Y-%m-%d %H:%M:%S", time.localtime(i["startTime"] / 1000))
        alter_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        # alert_time = time.strftime
        content = """
        警告时间:%s
        警告类型:%s
        服务名称:%s
        规则名称:%s
        详细内容:%s
        """ % (alter_time, i["scope"], i["name"], i["ruleName"], i["alarmMessage"])
        print(content)
        # 发送邮件
        mail_sever = 'smtp.163.com'
        mail_user = 'email@163.com'
        mail_pass = '*******'
        sender = 'email@163.com'
        reciver = 'email@163.com'
        msg = MIMEText(content, "plain", 'utf-8')
        msg['Subject'] = 'Skywalking告警'
        msg['From'] = sender
        msg['To'] = reciver
        smtp = smtplib.SMTP()
        smtp.connect(mail_sever)
        smtp.login(user=mail_user,password=mail_pass)
        smtp.sendmail(sender,reciver,msg.as_string())
    return "成功"

if __name__ == "__main__":
    app.run("0.0.0.0", "5000")
```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
elasticsearch-7.17.0-linux-x86_64.tar.gz是一个压缩文件,其中包含了elasticsearch 7.17.0版本的Linux x86_64平台的安装程序。Elasticsearch是一个开源的高度可扩展的全文搜索和分析引擎,广泛应用于构建实时搜索、数据分析和大数据处理。 这个压缩文件可以在Linux的x86_64平台上安装和部署elasticsearch。首先,需要通过解压缩命令来解压该文件,可以使用以下命令实现: tar -zxvf elasticsearch-7.17.0-linux-x86_64.tar.gz 解压后会得到一个包含elasticsearch安装文件的目录。接下来,可以通过运行elasticsearch的可执行文件来启动elasticsearch服务。可以进入该目录并执行以下命令来启动elasticsearch: ./bin/elasticsearch 在启动成功后,elasticsearch将在本地的9200端口上运行,默认提供HTTP接口用于与其进行交互。可以通过浏览器或命令行工具发送HTTP请求来与elasticsearch进行交互,使用RESTful API进行数据索引、搜索和分析等操作。 在elasticsearch-7.17.0-linux-x86_64.tar.gz压缩文件中,还包含了其他一些相关的文件和目录,如配置文件目录(config)和插件目录(plugins),可以根据需要进行相应的配置和插件安装。 总之,elasticsearch-7.17.0-linux-x86_64.tar.gz是elasticsearch 7.17.0版本在Linux x86_64平台上的安装文件,通过解压缩、启动可执行文件和配置相关参数,可以轻松地在本地部署和使用elasticsearch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值