Operations 12 min read

Step-by-Step Guide to Installing Apache SkyWalking with Elasticsearch and InfluxDB

This tutorial walks through installing and configuring Apache SkyWalking, an open‑source APM system for micro‑services and cloud‑native environments, covering its architecture, Elasticsearch and InfluxDB storage setup, agent deployment, service startup, alarm integration, and essential documentation links.

Programmer DD
Programmer DD
Programmer DD
Step-by-Step Guide to Installing Apache SkyWalking with Elasticsearch and InfluxDB

SkyWalking is an open‑source application performance monitoring (APM) platform designed for micro‑service, cloud‑native and container‑based architectures.

It monitors services, service instances and endpoints, provides topology views, metric dashboards and alarm rule configuration.

1. Concept and Architecture

SkyWalking logically consists of four parts: Probes (agents), Platform backend, Storage and UI. Probes collect data and report to the backend, which processes and stores the data; the UI visualizes the information.

2. Download and Installation

SkyWalking provides two distribution types: an Elasticsearch‑based version and a non‑Elasticsearch version. To use Elasticsearch as storage, download the ES version from the official download page.

Download links:

https://skywalking.apache.org/downloads/

https://archive.apache.org/dist/skywalking/

2.1 Install Elasticsearch

# Start
./bin/elasticsearch -d -p pid
# Stop
pkill -F pid

Elasticsearch 7.x requires Java 11+. Adjust system limits and kernel parameters before starting:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

Add the following to /etc/security/limits.conf:

* soft nofile 65536
* hard nofile 65536
* soft nproc  4096
* hard nproc  4096

Update /etc/sysctl.conf:

vm.max_map_count=262144

Modify elasticsearch.yml to set a single master node and enable network access:

cluster.initial_master_nodes: ["node-1"]
network.host: 0.0.0.0

2.2 Install Agent

Copy the agent directory to each service host:

scp -r ./agent user@host:~/

Place optional plugins into the plugins directory. Edit agent/config/agent.config (or use command‑line arguments) to set the service name and collector address, e.g.:

agent.service_name=${SW_AGENT_NAME:user-center}
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.100.17:11800}

Start the Java application with the agent:

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar

3. Start Services

Start the backend (OAP) and UI services using the provided scripts:

bin/startup.sh
# or
bin/oapService.sh
bin/webappService.sh

Check the logs directory for successful startup and open the UI at http://127.0.0.1:8080.

4. Alarm Configuration

Edit alarm-settings.yml to define alarm rules and notification channels. The example integrates DingTalk notifications via a custom Spring Boot project.

Key files: pom.xml – Maven project definition with dependencies on Spring Boot, DingTalk SDK, FastJSON and Lombok. AlarmMessageDTO.java – DTO for alarm payload. DingTalkAlarmService.java – Sends text messages to a DingTalk robot using HmacSHA256 signing. AlarmController.java – Receives SkyWalking alarm POST requests and forwards them to the DingTalk service.

package com.wt.monitor.skywalking.alarm.domain;

import lombok.Data;
import java.io.Serializable;

@Data
public class AlarmMessageDTO implements Serializable {
    private int scopeId;
    private String scope;
    private String name;
    private String id0;
    private String id1;
    private String ruleName;
    private String alarmMessage;
    private long startTime;
}

5. Documentation

Official SkyWalking documentation and resources:

https://skywalking.apache.org/

https://skywalking.apache.org/zh/

https://github.com/apache/skywalking/tree/v8.2.0/docs

https://www.elastic.co/guide/en/elasticsearch/reference/master/index.html

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

monitoringDockerMicroservicesAPMElasticsearchSkyWalking
Programmer DD
Written by

Programmer DD

A tinkering programmer and author of "Spring Cloud Microservices in Action"

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.