问题
前几天在k8s集群安装了skywalking,说什么这种方式不行,客户要求单独在一台linux机器安装skywalking。现在我们来解决这个问题。
步骤
# 移动到/opt目录
cd /opt
# 下载apm安装包
sudo wget https://dlcdn.apache.org/skywalking/9.7.0/apache-skywalking-apm-9.7.0.tar.gz
# 解压压缩包
sudo tar xvf apache-skywalking-apm-9.7.0.tar.gz
配置ES数据库
SW_STORAGE=elasticsearch
SW_NAMESPACE=myapp
sudo vim ./apache-skywalking-apm-bin/config/application.yml
将如下内容:
storage:selector: ${SW_STORAGE:h2}
改成使用ES数据库:
storage:selector: ${SW_STORAGE:h2}
创建用户和用户组
为Skywalking创建一个用户和用户组,使用如下命令:
sudo useradd --system --home /home/skywalking --shell /sbin/nologin --comment "skywalking user" --user-group skywalking
配置用户目录权限
创建好用户和用户组之后,需要将skywalking的相关目录给对应的用户和用户组。
sudo chown -R skywalking:skywalking /opt/apache-skywalking-apm-bin
配置OAP的SysV
sudo vim /etc/systemd/system/skywalking-oap.service
内容如下:
[Unit]
Description=Apache Skywalking OAP
After=syslog.target network.target[Service]
Environment="SW_STORAGE=elasticsearch"
Environment="SW_NAMESPACE=myapp"
Type=simple
User=skywalking
Group=skywalking
WorkingDirectory=/opt/apache-skywalking-apm-bin/
ExecStart=/opt/apache-skywalking-apm-bin/bin/oapService.sh
ExecStop=/bin/kill -15 $MAINPID
SuccessExitStatus=143[Install]
WantedBy=multi-user.target
配置UI的SysV
sudo vim /etc/systemd/system/skywalking-ui.service
内容如下:
[Unit]
Description=Apache Skywalking UI
After=syslog.target network.target[Service]
Environment="SW_SERVER_PORT=8090"
Type=simple
User=skywalking
Group=skywalking
WorkingDirectory=/opt/apache-skywalking-apm-bin/
ExecStart=/opt/apache-skywalking-apm-bin/bin/webappService.sh
ExecStop=/bin/kill -15 $MAINPID
SuccessExitStatus=143[Install]
WantedBy=multi-user.target
测试SysV
sudo systemctl daemon-reload
sudo systemctl start skywalking-oap.service
sudo systemctl enable skywalking-oap.service
sudo systemctl start skywalking-ui.service
sudo systemctl enable skywalking-ui.service
接下来,只要把8090,11800,12800端口放开就可以了。
总结
到这里基本就完成skywalking的配置了,下面是我们访问ui的效果。
参考
- Skywalking下载页面
- SysV参数说明
- Java应用常见服务配置
- Systemd: Start operation timed out. Terminating
- How To Install Apache Skywalking APM Tool on Linux
- Backend setup