分布式链路追踪系统之二进制安装skywalking
skywalking-ui: 前端服务,端口号8080。skywalking-oap(Observability Analysis Platform)可观测性分析平台,11800为gRPC数据端口12800为http数据端口。es9200为elasticsearch的数据读写端口目前skywalking支持的存储有elasticsearch、h2、mysql、tidb、influxdb、postgresql等。agent: app服务器部署skywalking agent用于收集app中的访问请求。部署elasticsearch调整内核参数rootskywalking-es-server:~# tail -2 /etc/sysctl.confnet.ipv4.ip_forward 1vm.max_map_count262144rootskywalking-es-server:~# sysctl -pnet.ipv4.ip_forward 1vm.max_map_count 262144rootskywalking-es-server:~# cat /proc/sys/vm/max_map_count262144rootskywalking-es-server:~# cat /proc/sys/net/ipv4/ip_forward1rootskywalking-es-server:~#net.ipv4.ip_forward 1表示开启ipv4转发vm.max_map_count参数用来定义每个进程可拥有的虚拟内存区域Virtual Memory Area, VMA的最大数量。这个内核参数默认是65530一般大型java应用推荐设置为262144Kafka/Cassandra 131072;ClickHouse 131072;Elasticsearch 262144;上传elasticsearch deb包到服务器rootskywalking-es-server:~# rzrz waiting to receive.zmodem trlC ȡ100% 567155 KB 25779 KB/s 00:00:22 0 Errors64.deb…rootskywalking-es-server:~# lselasticsearch-8.5.1-amd64.debrootskywalking-es-server:~# mv elasticsearch-8.5.1-amd64.deb /usr/local/src/rootskywalking-es-server:~# cd /usr/local/src/rootskywalking-es-server:/usr/local/src# lselasticsearch-8.5.1-amd64.deb安装elasticsearchrootskywalking-es-server:/usr/local/src# lselasticsearch-8.5.1-amd64.debrootskywalking-es-server:/usr/local/src# dpkg -i elasticsearch-8.5.1-amd64.debSelecting previously unselected package elasticsearch.(Reading database … 65695 files and directories currently installed.)Preparing to unpack elasticsearch-8.5.1-amd64.deb …Creating elasticsearch group… OKCreating elasticsearch user… OKUnpacking elasticsearch (8.5.1) …Setting up elasticsearch (8.5.1) …--------------------------- Security autoconfiguration information ------------------------------Authentication and authorization are enabled.TLS for the transport and HTTP layers is enabled and configured.The generated password for the elastic built-in superuser is : XXtjREgVek*MIN9mFNKBIf this node should join an existing cluster, you can reconfigure this with‘/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token ’after creating an enrollment token on your existing cluster.You can complete the following actions at any time:Reset the password of the elastic built-in superuser with‘/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic’.Generate an enrollment token for Kibana instances with‘/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana’.Generate an enrollment token for Elasticsearch nodes with‘/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node’.NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemdsudo systemctl daemon-reloadsudo systemctl enable elasticsearch.serviceYou can start elasticsearch service by executingsudo systemctl start elasticsearch.servicerootskywalking-es-server:/usr/local/src#配置elasticsearchrootskywalking-es-server:/usr/local/src# grep -v “#” /etc/elasticsearch/elasticsearch.yml | grep -v “^$”cluster.name: es1node.name: node1path.data: /var/lib/elasticsearchpath.logs: /var/log/elasticsearchnetwork.host: 192.168.112.71http.port: 9200discovery.seed_hosts: [“192.168.112.71”, ]cluster.initial_master_nodes: [“192.168.112.71”, ]xpack.security.enabled: falsexpack.security.enrollment.enabled: falsexpack.security.http.ssl:enabled: falsekeystore.path: certs/http.p12xpack.security.transport.ssl:enabled: falseverification_mode: certificatekeystore.path: certs/transport.p12truststore.path: certs/transport.p12http.host: 0.0.0.0rootskywalking-es-server:/usr/local/src#如果是单机模式按照上述配置即可对应IP地址就是服务器IP地址集群部署和配置请参考本人博客https://www.cnblogs.com/qiuhom-1874/p/13758006.html启动elasticsearchrootskywalking-es-server:/usr/local/src# systemctl daemon-reloadrootskywalking-es-server:/usr/local/src# systemctl start elasticsearchrootskywalking-es-server:/usr/local/src# systemctl enable elasticsearchCreated symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /lib/systemd/system/elasticsearch.servicerootskywalking-es-server:/usr/local/src# systemctl status elasticsearch● elasticsearch.service - ElasticsearchLoaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2026-07-20 14:17:02 UTC; 5min agoDocs: https://www.elastic.coMain PID: 103849 (java)Tasks: 87 (limit: 4534)Memory: 2.4GCPU: 40.076sCGroup: /system.slice/elasticsearch.service├─103849 /usr/share/elasticsearch/jdk/bin/java -Xms4m -Xmx64m -XX:UseSerialGC -Dcli.nameserver -Dcli.script/usr/share/elasticsearch/bin/elasticsearch -Dcli.libslib/tools/server-cli -Des.path.home/usr/share/elasticsearch -Des.path.conf/etc/elasticsearch -Des.distribution.typedeb -cp “/usr/share/elasticsearch/lib/:/usr/share/elasticsearch/lib/cli-launcher/” org.elasticsearch.launcher.CliToolLauncher -p /var/run/elasticsearch/elasticsearch.pid --quiet├─103917 /usr/share/elasticsearch/jdk/bin/java -Des.networkaddress.cache.ttl60 -Des.networkaddress.cache.negative.ttl10 -Djava.security.managerallow -XX:AlwaysPreTouch -Xss1m -Djava.awt.headlesstrue -Dfile.encodingUTF-8 -Djna.nosystrue -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafetrue -Dio.netty.noKeySetOptimizationtrue -Dio.netty.recycler.maxCapacityPerThread0 -Dlog4j.shutdownHookEnabledfalse -Dlog4j2.disable.jmxtrue -Dlog4j2.formatMsgNoLookupstrue -Djava.locale.providersSPI,COMPAT --add-opensjava.base/java.ioALL-UNNAMED -XX:UseG1GC -Djava.io.tmpdir/tmp/elasticsearch-6403631656827745021 -XX:HeapDumpOnOutOfMemoryError -XX:ExitOnOutOfMemoryError -XX:HeapDumpPath/var/lib/elasticsearch -XX:ErrorFile/var/log/elasticsearch/hs_err_pid%p.log “-Xlog:gc*,gcagetrace,safepoint:file/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount32,filesize64m” -Xms1944m -Xmx1944m -XX:MaxDirectMemorySize1019215872 -XX:G1HeapRegionSize4m -XX:InitiatingHeapOccupancyPercent30 -XX:G1ReservePercent15 -Des.distribution.typedeb --module-path /usr/share/elasticsearch/lib --add-modulesjdk.net -m org.elasticsearch.server/org.elasticsearch.bootstrap.Elasticsearch└─103950 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controllerJul 20 14:16:49 skywalking-es-server.ilinux.io systemd[1]: Starting Elasticsearch…Jul 20 14:17:02 skywalking-es-server.ilinux.io systemd[1]: Started Elasticsearch.rootskywalking-es-server:/usr/local/src# ss -tnlState Recv-Q Send-Q Local Address:Port Peer Address:Port ProcessLISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*LISTEN 0 128 0.0.0.0:22 0.0.0.0:*LISTEN 0 4096 *:9200:LISTEN 0 4096 [::ffff:192.168.112.71]:9300:rootskywalking-es-server:/usr/local/src#能够看到9200端口正常监听说明es启动成功部署skywalking准备java环境rootskywalking-server:~# apt install openjdk-11-jdk -y验证java版本信息rootskywalking-server:~# java --versionopenjdk 11.0.31 2026-04-21OpenJDK Runtime Environment (build 11.0.3111-post-1ubuntu1-22.04.2-Ubuntu)OpenJDK 64-Bit Server VM (build 11.0.3111-post-1ubuntu1-22.04.2-Ubuntu, mixed mode, sharing)rootskywalking-server:~#能够使用java --version命令能够正常看到jdk对应版本信息即表示对应版本的javajdk安装成功上传skywalking 二进制包到服务器rootskywalking-server:~# cd /usr/local/src/rootskywalking-server:/usr/local/src# rzrz waiting to receive.zmodem trlC ȡ100% 136193 KB 17024 KB/s 00:00:08 0 Errors.3.0.tar.gz…rootskywalking-server:/usr/local/src# lsapache-skywalking-apm-9.3.0.tar.gzrootskywalking-server:/usr/local/src#解压skywalking二进制包rootskywalking-server:/usr/local/src# tar xf apache-skywalking-apm-9.3.0.tar.gzrootskywalking-server:/usr/local/src# lsapache-skywalking-apm-9.3.0.tar.gz apache-skywalking-apm-binrootskywalking-server:/usr/local/src#软连接skywalkingrootskywalking-server:/usr/local/src# lsapache-skywalking-apm-9.3.0.tar.gz apache-skywalking-apm-binrootskywalking-server:/usr/local/src# ln -s apache-skywalking-apm-bin skywalkingrootskywalking-server:/usr/local/src# lltotal 136208drwxr-xr-x 3 root root 4096 Jul 20 14:37 ./drwxr-xr-x 10 root root 4096 Feb 17 2023 …/-rw-r–r-- 1 root root 139461881 Aug 31 2023 apache-skywalking-apm-9.3.0.tar.gzdrwxr-xr-x 9 root root 4096 Feb 17 2022 apache-skywalking-apm-bin/lrwxrwxrwx 1 root root 25 Jul 20 14:37 skywalking - apache-skywalking-apm-bin/rootskywalking-server:/usr/local/src#配置skywalkingrootskywalking-server:/usr/local/src/skywalking/config# pwd/usr/local/src/skywalking/configrootskywalking-server:/usr/local/src/skywalking/config# vim application.ymlstorage:selector: ${SW_STORAGE:elasticsearch}elasticsearch:namespace: ${SW_NAMESPACE:“”}clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.112.71:9200}打开skywalking/config目录下application.yml配置文件找到storage配置段配置使用es作为存储并在es段里配置对应es集群的地址单个es就填写对应服务器的地址即可编写skywalking.service文件rootskywalking-server:/usr/local/src/skywalking/config# cat /etc/systemd/system/skywalking.service[Unit]DescriptionApacheSkywalkingAfternetwork.target[Service]TypeoneshotUserrootWorkingDirectory/usr/local/src/skywalking/bin/ExecStart/bin/bash /usr/local/src/skywalking/bin/startup.shRemainAfterExityesRestartSec5[Install]WantedBymulti-user.targetrootskywalking-server:/usr/local/src/skywalking/config#使用上述service文件需要注意修改自己环境程序对应pash路径启动skywalkingrootskywalking-server:/usr/local/src/skywalking/config# systemctl daemon-reloadrootskywalking-server:/usr/local/src/skywalking/config# systemctl start skywalkingrootskywalking-server:/usr/local/src/skywalking/config# systemctl enable skywalkingCreated symlink /etc/systemd/system/multi-user.target.wants/skywalking.service → /etc/systemd/system/skywalking.service.rootskywalking-server:/usr/local/src/skywalking/config# ss -tnlState Recv-Q Send-Q Local Address:Port Peer Address:Port ProcessLISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*LISTEN 0 128 0.0.0.0:22 0.0.0.0:*LISTEN 0 4096 *:8080:LISTEN 0 4096 *:11800:LISTEN 0 4096 *:12800:rootskywalking-server:/usr/local/src/skywalking/config#能够看到8080、11800和12800这三个端口处监听状态说明skywalking服务端部署成功验证skywalking web界面image用浏览器访问skywalking服务器的8080端口如果能够正常访问说明skywalking服务器部署成功验证elasticsearch 数据image