Apusic文档中心
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
文档中心
  • 金蝶Apusic监控平台

  • 金蝶Apusic应用性能监控

  • 金蝶Apusic智能日志

    • v2.0

      • 产品白皮书
      • 安装手册
      • 用户手册
      • 适配说明
  • 金蝶Apusic智能告警

安装手册

# 前言

# 产品简介

金蝶Apusic智能日志平台(简称:AILP)是一个通用的日志大数据平台,可以使用各种开源的日志收集工具将日志统一上传,并根据预先定义的解析规则将日志数据结构化存储,提供准实时的搜索和仪表盘对日志进行后续的分析处理。

典型的日志数据包括:

  • Linux系统日志

  • Apache Web服务器日志

  • Nginx Web服务器日志

  • 中间件日志

  • 数据库日志

  • JSON日志

  • 其他任意文件型日志

# 范围和读者

本手册介绍AILPV2.0使用详细说明,适用于该产品的使用用户,产品技术顾问,产品维护人员,以及希望学习了解AILP日志平台的相关人员。

# 约定与术语

一些约定的缩略词诠释:

  • AMP

金蝶Apusic监控平台

  • ElasticSearch

ElasticSearch是一个基于Lucene的搜索服务器

  • ZooKeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务。

  • Kafka

Kafka是由Apache软件基金会开发的一个开源流处理平台

  • Logstash

Logstash是一个开源数据收集引擎

  • Filebeat

Filebeat是用于转发和集中日志数据的轻量级传送工具

# 安装环境要求

# 配置要求

安装日志服务产品的最低配置要求见下表

表2‑1 软件及操作系统环境要求

资源环境 要求
操作系统 Linux Red Hat 5.2或以上(及其他Kernel 2.25或以上linux版本)
CPU Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz或以上
MySQL 5.6或以上
Redis 3.0或以上
内存 16G或以上
硬盘 可用空间1T或以上
浏览器 FireFox 21及以上、Chrome 23及以上、IE 10及以上

# 推荐配置

安装日志服务产品的推荐的配置见下表。

表2-2 软件及操作系统环境推荐配置

资源环境 要求
操作系统 Linux
CPU Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz或以上
MySQL 5.6或以上
Redis 5.0或以上
内存 16G或以上
硬盘 可用空间1T或以上
浏览器 Chrome 60及以上、FireFox 21及以上

# 安装Web控制台

如果您已经安装AMP平台产品,则已经默认包含了Web控制台,您无需重复安装。请跳过本章节,直接参照第4章的说明,安装日志服务并注册到平台,即可使用AILP产品。

如果您需要部署独立的AILP产品,请按照本章安装指引说明进行Web控制台的安装。

# 产品介质说明

Web控制台组件相关安装介质如下

表3-1 Web控制台产品介质

组件名称 文件名 说明
Web控制台 amp-console-prod-xxx.tar.gz Web统一控制台,SpringBoot应用

# 安装Web控制台

# 安装准备

  • JDK

Web控制台应用运行需要JDK8 环境,参考附录6.1节安装说明

  • Redis

Web控制台运行需要Redis缓存服务,参考附录6.2节安装说明。

  • MySQL数据库

系统默认推荐使用MySQL,参考附录6.3节MySQL的安装说明,如已经安装请跳过。如果你使用其他类型的数据库,请参考对应厂商说明帮助手册进行安装。

# 安装说明

创建AILP产品安装根目录,指定${PATH} 为实际路径,将amp-console-prod-xxx.tar.gz解压到对应目录及完成产品包安装,/${PATH}/AMP/amp-console为产品解压后的目录。

# mkdir –p /${PATH}/AMP
# tar –zxvf amp-console-prod-xxx.tar.gz –C /${PATH}/AMP
1
2

如上,即完成Web控制台应用的解压工作,接下来修改相关参数配置。

# 配置参数

  1. 修改amp-console/conf/application.yml文件,该配置文件为SpringBoot应用的默认配置文件,active的值为prod,其对应生效的文件是application-prod.yml,采用的是MySQL数据库连接配置。

系统中提供如下可选的配置文件

表3-2 Web控制台应用配置文件

文件名 说明
application-dev.yml H2数据库作为持数据持久化存储的配置,开发环境阶段使用,生产环境不建议使用
application-prod.yml MySQL数据库作为数据持久化存储的配置,默认使用用该文件
application-samle-dm.yml 达梦数据库作为数据持久化存储的配置
application-sample-gbase8s.yml 南大通用Gbase8s作为数据持久化存储的配置
application-sample-kingbasees.yml 人大进仓KingbaseES作为数据持久化存储的配置
application-sample-shentong.yml 神舟通用数据库作为数据持久化存储的配置
  1. 用户可根据实际部署环境修改application.yml文件中的active值为prod、sample-kingbasees、sample-dm、sample-shentong、sample-gbase-8s来切换不同环境的配置。

下面以采用MySQL配置的application-prod.yml文件为例,说明相关主要参数配置。

vi /${PATH}/AMP/amp-console/conf/application-prod.yml
1
  • server.port 参数指定了该web应用的默认端口,默认值为9000

  • spring.redis 指定了应用连接Redis相关配置,需要根据实际部署环境进行修改。

    • timeout 为超时时间,默认3600s

    • host为redis的ip地址,默认值localhost

    • port为redis端口,默认值6379

    • password 为redis连接密码

  • spring.datasource 为数据库连接配置, 需要根据实际部署环境进行修改。

    • url为数据库JDBC连接配置,包含数据库地址、端口、数据库名称等参数

    • Username 指定数据库连接用户名

    • Password 指定数据库连接密码

配置参考样例如下:

server:
  port: 9000
  servlet:
context-path: / 
  redis:
    timeout: 3600
    host: localhost
    port: 6379
    password: root
datasource:
type: com.zaxxer.hikari.HikariDataSource
    url: jdbc:mysql://localhost:3306/amp_console?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC
    username: root
    password: root
  <省略其他
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 初始化数据库

登录mysql数据库。

mysql -u username –p password
1

执行amp-console/sql/mysql目录下的create.sql数据库创建脚本文件,initial.sql数据库初始化脚本文件,初始化日志服务数据库。

create database amp_console;
use amp_console;
source /${PATH}/AMP/amp_console/sql/mysql/create.sql; 
source /${PATH}/AMP/amp_console/sql/mysql/initial.sql;
exit
1
2
3
4
5

# 安装后工作

# 了解产品目录结构

表3-3 amp-console控制台目录结构

目录 包含
bin 控制台组件的启动脚本。
boot 控制台程序的jar文件。
conf 一些配置文件。
lib 应用程序依赖的一些jar包。
sql 控制台对应的amp_console数据库多种版本的sql创建及初始化脚本文件。
HELP.md 帮助文档,对控制台项目的补充说明。

# 启动Web控制台

  1. 修改完amp-console的配置文件后,后台启动Web控制台。
nohup /${PATH}/AMP/amp-console/bin/startup.sh &
1
  1. 查看Web控制台运行状态,若端口9000存在,表示启动成功。
netstat -lntp | grep 9000
1
  1. 访问浏览器验证:http://amp-console_ip:9000,出现如下图登录页面,输入用户名:admin和密码:admin,登录成功,则表明部署成功。

图3-1控制台登录页

# 停止运行服务

目前可以根据端口号查找出该应用程序的进程,使用kill命令终止Web控制台进程。

# netstat -lntp | grep 9000
tcp6       0      0 :::9000       :::*            LISTEN      19358/java
# kill -9 19358
1
2
3

# 卸载服务

删除AILP安装部署目录,即可完成卸载控制台操作。

rm –rf /${PATH}/AMP/amp-console
1

# 安装日志服务

# 产品介质说明

日志服务产品相关安装介质文件

表4-1 日志服务相关产品组件

组件名称 文件名 说明
日志服务 tar -zxvf ailp-v2.0-amd64.tar.gz 日志服务组件,包含cloudlog服务、elasticsearch、jdk、kafka以及logstash_backend

# 安装前准备

安装前需要为cloudlog创建用户、清除防火墙规则、修改系统文件使用限制以及修改内存与网络设置,这些都需切换root用户操作。

# 创建用户

useradd   adp   ##创建用户adp
passwd   adp   ##设置密码
groupadd  adp   ##创建用户组
1
2
3

# 清除默认的防火墙规则

如果是Centos/RedHat,需要清除默认的防火墙规则

# iptables -P INPUT ACCEPT
# iptables –F
# iptables –X
# iptables –Z
##检查确认
# iptables -L –n  
1
2
3
4
5
6

# 修改文件使用限制

下面操作硬件与软件的数量,如果有设置,则不进行修改

# vim  /etc/security/limits.conf
1
* soft nofile 65536
* hard nofile 65536
hadoop soft nofile 65536
hadoop hard nofile 131072
hadoop soft nproc 2048
hadoop hard nproc 4096
adp soft nproc 10240
adp hard nproc 10240
1
2
3
4
5
6
7
8

# 修改虚拟内存和网络设置

增加如下配置(如果以前有相关的配置,则进行修改)

# vim  /etc/sysctl.conf
1
vm.max_map_count = 655360
vm.swappiness = 1
vm.dirty_backgroud_ratio = 5
vm.dirty_ratio = 60
net.core.wmem_default = 131072
net.core.rmem_default = 131072
net.core.wmem_max = 2097152
net.core.rmem_max = 2097152
net.ipv4.tcp_wmem = 4096 65536 2048000
net.ipv4.tcp_rmem = 4096 65536 2048000
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_max_syn_backlog = 10240
net.core.somaxconn = 10240
net.core.netdev_max_backlog = 10240
1
2
3
4
5
6
7
8
9
10
11
12
13
14

使系统控制权限配置生效,执行下面命令

#/sbin/sysctl -p
1

# 配置环境变量

编辑 ~/.bashrc,在文件末尾增加:

export JAVA_HOME=/home/adp/cloudlog/jdk
export PATH=$PATH:$JAVA_HOME/bin
export LANG=en_US.UTF-8
export LANGUAGE= en_US.UTF-8
export LC_ALL=en_US.UTF-8
####/home/adp/cloudlog将是后面云日志的安装位置
1
2
3
4
5
6

# 安装日志服务

# 安装包说明

本文档以在Linux x86_64环境下为例进行安装过程说明,其他aarch64、mips64等平台安装过程一致,安装过程中选择对应平台的产品包介质进行安装即可,不做重复说明。日志服务安装操作需要用4.1.1创建的用户adp(重新打开一个窗口使用adp用户登录)来进行接下来的产品安装操作。

adp用户上传产品包到/home/adp目录后,解压安装包

# tar –zxvf tar -zxvf ailp-v2.0-amd64.tar.gz
1

日志服务产品组件目录为/home/adp/cloudlog,解压后的目录结构如下

[adp@cloudlog cloudlog]$ cd  /home/adp/cloudlog
[adp@cloudlog cloudlog]$ ll 
drwxrwxrwx  2 adp adp 264 Apr 23 16:17 bin
drwxr-xr-x  2 adp adp  73 Apr 23 16:02 config
drwxr-xr-x  8 adp adp 143 Apr 23 16:11 elasticsearch
drwxr-xr-x  8 adp adp 255 Apr 23 14:38 jdk
drwxr-xr-x  7 adp adp 101 Apr 23 16:12 kafka
drwxr-xr-x  2 adp adp  26 Apr 23 14:38 lib
drwxr-xr-x  2 adp adp  44 Apr 23 16:17 logs
drwxr-xr-x 12 adp adp 308 Apr 23 16:15 logstash_backend
drwxr-xr-x  4 adp adp  44 Apr 26 16:20 public
1
2
3
4
5
6
7
8
9
10
11

如果上传软件包是root用户上传,则需要给安装目录赋权

# chown -R adp:adp .
1

# 安装Elasticsearch

  • 普通方式安装

    一般使用这种方式安装,es访问时不需要用户名,密码,不开启xpack ssl证书认证。

修改配置文件/home/adp/cloudlog/elasticsearch/config/elasticsearch.yml

$ vim elasticsearch/config/elasticsearch.yml
1

需要修改的配置示例

cluster.name: elasticsearch 
path.data: /home/adp/datastore/es/data  
path.logs: /home/adp/datastore/es/logs
network.host: 172.0.0.1   ###修改为elasticsearch实际部ip
1
2
3
4

创建elasticsearch数据,日志文件保存目录,并授权给adp用户

$ mkdir -p /home/adp/datastore/es/data
$ mkdir -p /home/adp/datastore/es/logs
$ chown -R adp:adp /home/adp/datastore/es
1
2
3

一般使用不需要开启es的xpack认证, 则es安装完毕,不需要进行下面的操作。

  • 开启xpack security认证

如果es需要开启xpack认证,则需要对es默认的用户设置密码,在上一步普通方式安装的基础上进行操作。

修改elasticsearch/config/elasticsearch.yml配置文件

增加如下配置

xpack.security.enabled: true
1

在启动elasticsearch的情况下,去执行下面命令生成用户名,密码。

进入es的安装目录,生成elasticsearch的用户密码,两种方式,使用命令自动生成密码,或者分别对不同用户设置密码,完成后保存相关密码,这里我们最终统一使用elastic用户。

执行下面命令,生成用户密码。

$ cd /home/adp/cloudlog/elasticsearch 
$./bin/elasticsearch-setup-passwords auto
1
2

或者可以自定义用户密码,使用下面命令,一步步对不同的用户设置密码。

$ cd /home/adp/cloudlog/elasticsearch 
$./bin/elasticsearch-setup-passwords interactive
1
2

该种方式es安装完毕。

  • 开启xpack ssl security证书认证

    在上一步开启用户名,密码的前提下,增加了es的transport ssl访问认证,需要先完成前面普通安装,生成es用户密码步骤,再执行下面操作,生成es的ssl证书。

在启动elasticsearch的情况下,去执行下面命令生成ssl证书。

执行下面命令,生成ssl证书,并移到到es的config目录下, 并将新生成的证书文件权限授权给adp用户,这里直接将es整个目录授权给adp用户。

$ ./bin/elasticsearch-certutil ca 
$./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
$ mv elastic-certificates.p12 config/
$ mv elastic-stack-ca.p12 config/
$ chown -R adp:adp /home/adp/cloudlog/elasticsearch
1
2
3
4
5

根据上面操作生成ssl证书后,将生成的elastic-certificates.p12文件需要进行保存,后续安装cloudlog服务时,需要刚才生成的ssl证书文件。

修改elasticsearch/config/elasticsearch.yml配置文件,增加下列配置

#开启安全特性
xpack.security.enabled: true
#开启transport tls
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
1
2
3
4
5
6
7

Ssl证书方式安装完毕。

# 安装Zookeeper

使用kafka本身自带的zookeeper,单机版本不需要再进行安装,zookeeper使用默认配置。

# 安装Kafka

修改配置文件/home/adp/cloudlog/kafka/config/server.properties

# vim server.properties
1

需要修改的配置示例

###修改为kafka实际部署IP
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://127.0.0.1:9092 
1
2
3

# 安装Logstash

修改配置文件/home/adp/cloudlog/logstash_backend/config/logstash.yml

# vim logstash.yml
1

需要修改的配置示例

###配置外部可以访问(这一步可以略过,即启动成功后,不能通过外部访问验证,只能通过查看端口或本地 curl localhost:9600 方式查看,建议修改为logstash实际部署IP)
http.host: "127.0.0.1"
1
2

# 安装Cloudlog

修改配置文件/home/adp/cloudlog/config/application.properties

# vim application.properties
1

需要修改的配置示例

##修改cloudlog服务host与port
server.port=6888
server.host=127.0.0.1
#修改elasticsearch服务host与port 
elasticsearch.host=127.0.0.1
elasticsearch.port=9300
elasticsearch.http.port=9200
# 修改kafkaServer
recvlog.server=127.0.0.1:9092
# 修改控制台配置
amp.console.url= http://uat-test.com:9000
#修改redis配置
spring.redis.host= localhost
spring.redis.password=
spring.redis.port= 6379
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Es普通方式安装,则cloudlog安装完毕。

如果es开启xpack security认证,application.properties文件则需要增加下面配置。

# xpack security 认证配置, 是否开启,用户名username, 密码password
xpack.security.enabled=true
elasticsearch.username=elastic
elasticsearch.password=elastic
1
2
3
4

如果es开启了xpack ssl 证书认证,application.properties文件则需要增加下面配置,并需要将安装es时生成的ssl证书文件复制上传到cloudlog服务相关目录,如/home/adp/cloudlog/config目录下。

#xpack security 认证配置, 是否开启,用户名username, 密码password
xpack.security.enabled=true
elasticsearch.username=elastic
elasticsearch.password=elastic

# ssl认证配置
# 如果开启ssl认证,智能日志服务则需要elasticsearch生成的elastic-certificates.p12证书文件
xpack.security.transport.ssl.enabled=true
xpack.security.transport.ssl.verification_mode=certificate
xpack.security.transport.ssl.keystore.path=/home/adp/cloudlog/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path=/home/adp/cloudlog/config/elastic-certificates.p12
1
2
3
4
5
6
7
8
9
10
11

# 安装后的工作

以下几个部分描述日志服务产品安装后的工作:

# 了解产品目录结构

在执行完日志服务产品的安装工作之后,日志服务器等目录结构

表 4-2 日志服务平台目录结构

目录 说明
bin 监控服务器组件的启动脚本。
config Cloudlog的配置文件。
elasticsearch elasticsearch的配置文件。
jdk jdk的配置文件。
kafka kafka的配置文件。
lib 日志服务应用程序jar包。
logs Cloudlog日志文件。
logstash_backend logstash_backend的配置文件。
public 保存logstash与logagent数据文件

# 启动日志服务

启动日志服务必需按顺序启动:启动elasticsearch 启动zookeeper, kafka 启动cloudlog 启动logstash。

日志服务所有启动脚本都存放在/home/adp/cloudlog/bin目录下,所有组件启动必须切换到 adp(非root用户)用户执行。

# 启动Elasticsearch
  1. adp用户在/home/adp/cloudlog/bin目录执行Elasticsearch启动命令
# ./start-elastic.sh
1
  1. 查看elasticsearch控制台运行状态,若端口9200与9300存在,表示启动成功。
netstat -ntpl|grep 9200
netstat -ntpl|grep 9300
1
2
  1. 访问 http://localhost: 9200端口验证, 访问到页面则成功
# 启动Zookeeper
  1. adp用户在/home/adp/cloudlog/bin目录执行zookeeper启动命令
# ./ start-zookeeper.sh
1
  1. 查看zookeeper控制台运行状态,若端口2181存在,表示启动成功。
netstat -ntpl|grep 2181
1
# 启动Kafka
  1. adp用户在/home/adp/cloudlog/bin目录执行Kafka启动命令
# ./ start-Kafka.sh
1
  1. 查看Kafka控制台运行状态,若端口9092存在,表示启动成功。
netstat -ntpl|grep 9092
1
# 启动Cloudlog
  1. adp用户在/home/adp/cloudlog/bin目录执行cloudlog启动命令
# ./ start-cloudlog.sh
1
  1. 查看cloudlog控制台运行状态,若端口6888功。
netstat -ntpl|grep 6888
1
  1. 访问 http://localhost:6888端口验证, 访问到页面则成功
# 启动Logstash
  1. adp用户在/home/adp/cloudlog/bin目录执行logstash启动命令
#./ start-logstash-backend.sh
1
  1. 更新logstash配置,使用一个进程定时更新配置,修改ip地址为logstash实际部署的ip地址
#./start-load-logstash-conf.sh  http://127.0.0.1:6888/logstashconfig/logstash.backend.conf
1
  1. 查看logstash控制台运行状态,若端口5601示启动成功。
netstat -ntpl|grep 9600
1
  1. 访问 http://localhost: 9600端口验证, 访问到页面则成功

# 注册为平台服务

日志服务部署完成并注册为平台服务后,用户才可以访问使用。

登录访问Web控制台,选择【平台管理】-\【服务管理】。编辑【日志服务】服务URL址。修改完成,点击服务上线,完成日志服务的注册和上线。

图4-1注册日志服务

控制台首页产品下拉列表中切换至日志服务,出现如下图则表明部署成功 。

图4-2日志服务首页

# 停止运行日志服务

# 停止运行Elasticsearch

查看其端口9200所运行的进程的pid,使用kill命令终止监控服务器进程。

# netstat -lntp | grep 9200
tcp6       0      0 :::9200       :::*            LISTEN      19358 /./jdk/bin/jav
# kill -9 19358
1
2
3

查看其端口9300所运行的进程的pid,使用kill命令终止监控服务器进程。

# netstat -lntp | grep 9300
tcp6       0      0 :::9300       :::*            LISTEN      19358 /./jdk/bin/jav
# kill -9 19358
1
2
3
# 停止运行Zookeeper

查看其端口2181所运行的进程的pid,使用kill命令终止监控服务器进程

# netstat -lntp | grep 2181
tcp6       0      0 :::2181       :::*            LISTEN      19358 /./jdk/bin/jav
# kill -9 19358
1
2
3
# 停止运行Kafka

查看其端口9092所运行的进程的pid,使用kill命令终止监控服务器进程。

# netstat -lntp | grep 9092
tcp6       0      0 :::9092       :::*            LISTEN      19358 /./jdk/bin/jav
# kill -9 19358
1
2
3
# 停止运行Cloudlog

查看其端口6888进程的pid,使用kill命令终止监控服务器进程。

# netstat -lntp | grep 6888
tcp6       0      0 :::6888::*            LISTEN      19358 /java
# kill -9 19358
1
2
3
# 停止运行Logstash

查看其端口5601进程的pid,使用kill命令终止监控服务器进程。

# netstat -lntp | grep 9600
tcp6       0      0 ::: 9600   :::*            LISTEN      19358 /node
# kill -9 19358
1
2
3

# 卸载产品

停止日志产品所有服务,执行下列命令,删除日志服务安装部署目录与数据存储目录即可完成卸载操作。

rm –rf /home/adp/cloudlog
rm –rf /home/adp/datastore
1
2

# 附录:集群高可用安装

# 部署规划

AILP日志服务高可用规划

IP 主机名 CPU 内存 磁盘 用途
172.20 .140.101 linux-140-101 8 16G 500G kafka+zookeeper、es-master1、logstash、 cloudlog
172.20.140.102 linux-140-102 8 16G 500G kafka+zookeeper、es-master2、logstash
172.20.140.103 linux-140-103 8 16G 500G kafka+zookeeper、es-master3

各服务器节点需要安装JDK,如果未安装,可参考附录第六章第一节进行安装JDK。

# 集群安装部署

# Zookeeper集群安装

安装搭建zookeeper集群,我们使用kafka自带的zookeeper进行部署zookeeper集群,也可以根据需求单独使用zookeeper进行部署zookeeper集群。

获取kafka产品包kafka_2.12-2.7.0.tgz,或者从日志服务产品包中获取kafka安装包:cloudlog/kafka。

如果使用日志产品包中的cloudlog/kafka,则不需要解压产品包,直接复制拷贝到对应目录,可以跳过第一步解压产品包,进行后续的操作。

1.解压kafka产品包

在172.20.140.101服务器进行操作

这里统一将kafka解压到/usr/local/kafka目录。

$ cd /usr/local
$ tar -zxvf kafka_2.12-2.7.0.tgz 

$ mv kafka_2.12-2.7.0  kafka
$ cd kafka
1
2
3
4
5

2.修改zookeeper配置文件

在172.20.140.101服务器进行操作

可以使用默认配置,如果在同一台服务器部署多个节点需要修改存储地址,端口。

$  vim config/zookeeper.properties

#zookeeper数据保存目录(该目录需要手动创建)
dataDir=/usr/local/kafka/zookeeper
dataLogDir=/usr/local/kafka/logs/zookeeper
maxClientCnxns=100
tickTime=2000
initLimit=10
syncLimit=5
admin.enableServer=false

#zookeeper端口
clientPort=2181

server.1=172.20.140.101:2888:3888
server.2=172.20.140.102:2888:3888
server.3=172.20.140.103:2888:3888
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

在kafka的zookeeper数据目录添加myid文件,写入broker.id属性值。注意myid文件必须在zookeeper的数据目录下添加,在上面配置中即dataDir的目录/usr/local/kafka/zookeeper目录下进行添加。

#创建zookeeper数据目录并进入该目录
$ mkdir -p /usr/local/kafka/zookeeper
$ cd /usr/local/kafka/zookeeper

# 创建myid文件,写入brokerid, 该值不能相同,其他服务器分别是2,3
$ echo 1  myid
1
2
3
4
5
6

同时将kafka文件夹复制到172.20.140.102, 172.20.140.103两台服务器并修改kafka组件中zookeeper的配置文件zookeeper.properties(可以不修改,三台服务器数据目录保持相同), 其他服务器分别修改myid文件的值,分别写入2,3。

使用下面命令并输入密码,将kafka复制到其他服务器。

#复制安装包到其他两台服务器
$ scp -r /usr/local/kafka  root@172.20.140.102:/usr/local/
$ scp -r /usr/local/kafka  root@172.20.140.102:/usr/local/
1
2
3

3.启动zookeeper

启动三个zookeeper节点,进入kafka安装目录,启动zookeeper

#进入kafka目录
$ cd /usr/local/kafka

$ nohup ./bin/zookeeper-server-start.sh  config/zookeeper.properties &
1
2
3
4

分别启动三台服务器上的zookeeper。

先启动101服务器zookeeper时,成功启动zookeeper服务后,可以看到该zookeeper连接102,103服务器的zookeeper失败,这是正常的,因为其他两台服务器zookeeper还未启动。再启动102服务器zookeeper,成功启动该zookeeper后,可以看到该zookeeper已连接101服务器zookeeper,连接102服务器zookeeper失败。最后启动103服务器zookeeper,可以看到该zookeeper已连接101,102服务器zookeeper,此时已经完成了zookeeper集群搭建。

注意

第一次启动服务时, 可以先使用下面命令进行启动,确认配置正常,zookeeper服务可以正常启动时,关掉该进程,再通过后台方式nohup方式进行启动。

#第一次进行启动zookeeper,确定zookeeper是否启动成功
$ ./bin/zookeeper-server-start.sh  config/zookeeper.properties
1
2

4.检查zookeeper是否正常启动

分别检查三台服务器zookeeper端口2181是否正常。

$  netstat -ntlp |grep 2181
1

# Kafka集群安装

上一步在Zookeeper集群安装时,已经成功拷贝并解压kafka的安装包,下面进行修改kafka配置文件,并进行安装kafka集群。

1.修改kafka配置文件

在172.20.140.101服务器,进入kafka安装目录, 修改kafka配置文件sever.properties。

#进入kafka目录
$ cd /usr/local/kafka

$  vim config/server.properties

#修改id为1
broker.id=1

#kafka数据保存目录
log.dirs=/usr/local/kafka/kafka-logs

# 下面的ip分别为对应服务器的ip
listeners=PLAINTEXT://172.20.140.101:9092
advertised.listeners=PLAINTEXT://172.20.140.101:9092

#zookeeper地址
zookeeper.connect=172.20.140.101:2181,172.20.140.102:2181,172.20.140.103:2181
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

同时修改172.20.140.102, 172.20.140.103其他两台服务器上的kafka配置文件,分别修改broker.id为2,3,修改listeners监听地址为对应服务器的ip地址,修改zookeeper连接地址。

2.启动kafka

分别进入各服务器kafka安装目录,启动kafka。

#进入kafka目录
$ cd /usr/local/kafka

#启动kafka
$ nohup ./bin/kafka-server-start.sh  config/server.properties  &
1
2
3
4
5

分别启动三台服务器的kafka组件。

注意

第一次启动服务时, 可以先使用下面命令进行启动,确认配置正常,kafka服务可以正常启动时,关掉该进程,再通过后台方式nohup方式进行启动。

#第一次进行启动kafka,确定kafka是否启动成功
$ ./bin/kafkar-server-start.sh  config/server.properties
1
2

3.检查kafka是否正常启动

判断kafka是否正常启动,判断kafka服务端口9092是否正常启动

#判断端口是否正常启动
$ netstat -ntlp|grep 9092
1
2

分别检查三台服务器kafka是否正常启动。

# Elasticsearch集群安装

获取elasticsearch产品包elasticsearch-7.5.0.tar.gz,或者从日志服务产品包中获取elasticsearch安装包:cloudlog/elasticsearch。

在三台服务器部署elasticsearch, 三个es节点都作为master主节点方式,并且都保存数据。

如果使用日志产品包中的cloudlog/elasticsearch,则不需要解压产品包,直接复制拷贝到对应目录,可以跳过第一步解压产品包,进行后续的操作。

1.解压产品包

解压安装elasticsearch, 在三台服务于器101~103各节点都要执行,我们统一将elasticsearch安装到/opt/data目录下

在172.20.140.101服务器进行操作

# 创建elasticsearch安装目录
$ mkdir -p /opt/data/elasticsearch
#进入目录
$ cd /opt/data

# 拷贝产品包到/opt/data目录,解压产品包
$ tar -zxvf elasticsearch-7.5.0.tar.gz 
$ mv elasticsearch-7.5.0  elasticsearch
$ cd elasticsearch
1
2
3
4
5
6
7
8
9

2.修改配置文件

在172.20.140.101服务器进行操作,修改elasticsearch.yml配置文件。

$  vim config/elasticsearch.yml

# 定义集群名称,多个节点集群名称保持一致
cluster.name: elasticsearch
# 可以使用本机的hostname,多台服务器的名称不能相同
node.name: linux-140-101
node.master: true
node.data: true
# data和logs目录
path.data: /opt/data/elasticsearch/app/data
path.logs: /opt/data/elasticsearch/app/logs

network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300

# 集群配置
discovery.zen.ping.unicast.hosts: ["172.20.140.101:9300", "172.20.140.102:9300", "172.20.140.103:9300"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 3s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

3.创建启动用户,并授权

Elasticsearch需要使用非root用户启动,创建elasticsearch用户,并创建数据,日志保存目录。

# 创建用户
$ sudo useradd elasticsearch

# 创建elasticsearch的data和log目录
$ mkdir -p  /opt/data/elasticsearch/app/data
$ mkdir -p  /opt/data/elasticsearch/app/logs

$ chown -R elasticsearch:elasticsearch  /opt/data/elasticsearch
1
2
3
4
5
6
7
8

拷贝产品包到其他两台服务器172.20.140.102, 172.20.140.103,修改配置文件elasticsearch.yml,node.name在每个节点的名称不相同。

4.启动es服务

# 进入elasticsearch目录安装目录
$ cd /opt/data/elasticsearch
# 切换到elasticsearch用户
$ su elasticsearch

$ ./bin/elasticsearch
# 确认无误后,使用后台方式启动
$ sudo  ./bin/elasticsearch -d
1
2
3
4
5
6
7
8

其他两台服务器,也进行启动。

启动后查看各服务器9200,9300是否正常启动。

# 查看elasticsearch是否正常启动
$ netstat -ntlp|grep 9200
1
2

5.查看集群状态

查看es集群状态,*号代表的是该节点为es当前的master节点。

# Cloudlog安装

选择在 172.20.140.101上部署一个云日志服务,云日志服务是用于配置和查看日志,部署单节点即可。

1.修改配置文件/home/adp/cloudlog/config/application.properties

$  vim  application.properties
1

修改配置文件中的下面内容

elasticsearch使用集群方式存储,修改为多个elasticsearch节点地址。

Kafka使用集群方式存储,修改为多个kafka节点地址。

控制台及cloulog应用的redis存储如果使用哨兵集群方式进行存储,修改对应redis相关的配置。

如果redis仍是单节点部署,可以使用单节点部署cloudlog的redis配置。

##修改cloudlog服务host与port
server.port=6888
server.host=172.20.140.101

# elasticsearch集群配置 elasticsearch节点, 多个节点使用英文逗号分隔
elasticsearch.host=172.20.140.101,172.20.140.102,172.20.140.103
# elasticsearch内部tcp通信端口,多个节点的端口使用英文逗号分隔
elasticsearch.port=9300,9300,9300
# elasticsearch外部http通信端口,多个节点的端口使用英文逗号分隔
elasticsearch.http.port=9200,9200,9200

# kafka集群配置,修改kafkaServer
recvlog.server=172.20.140.101:9092,172.20.140.102:9092,172.20.140.103:9092

# 修改控制台配置
amp.console.url= http://console.com:9000

# redis哨兵集群配置,修改redis
spring.data.redis.repositories.enabled=false
spring.redis.password=
spring.redis.sentinel.nodes=172.24.4.110:26379,172.24.4.111:26379,172.24.4.112:26379
spring.redis.sentinel.master=mymaster
spring.redis.timeout= 3600
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

2.启动cloudlog服务

$  cd  /home/adp/cloudlog/bin
$  ./start-cloudlog.sh
1
2

3.验证

查看端口

$  netstat -ntlp |grep 6888
1

# Logstash安装

安装两个Logstash节点,利用kafka的groupId实现logstash的高可用。在172.20.140.101,172.20.140.102服务器上面安装logstash。

根据服务器操作系统,获取x86环境下安装包logstash-7.12.0-linux-x86_64.tar.gz或者arm64环境下安装包logstash-7.12.0-linux-aarch64.tar.gz,也可以从日志服务产品包中获取logstash安装包:cloudlog/logstash_backend。

部署logstash时,需要先成功部署cloudlog服务,并启动。

如果使用日志产品包中的cloudlog/logstash_backend,则不需要解压产品包,直接复制拷贝到对应目录,可以跳过第一步解压产品包,进行后续的操作。

1.解压产品包

我们将logstasth安装在/opt/data目录下,这里以x86安装包进行说明。

$ cd /opt/data
$ tar -zxvf logstash-7.12.0-linux-x86_64.tar.gz

$ mv logstash-7.12.0  logstash
1
2
3
4

修改配置文件

# 进入logstash安装目录
$ cd  logstash

$ vim logstash.yml

# 配置外部可以访问(这一步可以略过,即启动成功后,不能通过外部访问验证,只能通过查看端口或本地 curl localhost:9600 方式查看,建议修改为logstash实际部署IP)

http.host: "172.20.140.101"  
1
2
3
4
5
6
7
8

2.拉去最新配置文件信息

在日志服务cloudlog/bin目录下。拷贝下面文件load_node_logstash_conf.sh, start-load-node-logstash-conf.sh到当前服务器logstash的安装目录下/opt/data/logstash

更新logstash配置,使用一个进程定时更新配置,修改ip地址为cloudlog实际部署的ip地址

下面内容在一行中执行。

$ ./start-load-node-logstash-conf.sh  http://172.20.140.101:6888/logstashconfig/logstash.backend.conf
1

查看该进程是否启动成功

$ ps -aux|grep logstash
1

3.启动logstash

进入logstash安装目录,执行logstash启动命令

$ ./bin/logstash -f ./logstash.backend.conf --config.reload.automatic

# 判断无误后,可以使用后台方式启动
nohup ./bin/logstash -f ./logstash.backend.conf --config.reload.automatic logstash.log &
1
2
3
4

4.验证是否启动成功

查看logstash控制台运行状态,若端口9600正常则启动成功。

netstat -ntpl|grep 9600
1

或者访问 http://172.20.140.101: 9600端口验证, 访问到页面则成功。

如果多台服务器需要部署,可以重复以上操作进行部署。

# 附录:环境组件安装

# 安装JDK

进入Oracle官网(<https://www.oracle.com/technetwork/java/javase/downloads/index.html),下载对应的JDK版本包进行安装,这里以jdk-8u181-linux-x64.tar.gz版本为例介绍JDK安装流程。

1.创建存放java的目录,将jdk安装包解压到特定目录下。

mkdir /usr/local/java 
tar –zxvf jdk-8u181-linux-x64.tar.gz  -C /usr/local/java
1
2

2.配置java环境变量。

vi /etc/profile
1

3.在/etc/profile里面添加如下内容,修改完成后,wq保存并退出(先按Esc,接着输入 :wq)。

export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export JAVA_BIN=/usr/local/java/jdk1.8.0_181/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
1
2
3
4
5

4.配置完成后,输入source profile,再输入java -version命令查看是否配置成功,如果显示java version " jdk1.8.0_181"信息,则表示已经配置成功。

source profile
java -version
1
2

# 安装Redis

Web控制台运行需要Redis缓存服务,以下是Redis的简要安装步骤。

1.下载5.05版本在 /usr/local/ 下新建一个 redis 文件夹。

wget http://download.redis.io/releases/redis-5.0.4.tar.gz
1

2.在 /usr/local/ 下新建一个 redis 文件夹。

cd /usr/local
mkdir redis
1
2

3.解压redis-5.0.5.tar.gz安装包。

tar -zxvf redis-5.0.5.tar.gz
1

4.安装 gcc 环境。

yum ././assets/images/install gcc-c++
1

5.进入解压后的 redis-5.0.5 目录,执行 make 命令。

cd redis-5.0.5
make
1
2

6.进入 redis-5.0.5的src 目录后执行 make ././assets/images/install命令。

cd src/
make ././assets/images/install
1
2

7.在 redis 目录下创建 bin 和 etc 两个文件夹。

mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc
1
2

8.redis-5.0.5 里的主配置文件 redis.conf 移动到刚创建的 etc 文件夹。

cd redis-5.0.5
mv redis.conf /usr/local/redis/etc/
1
2

9.将 src 目录里带有绿色标识的文件全都移动到刚创建的 bin 文件夹。

cd src/
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel  redis-server redis-trib.rb /usr/local/redis/bin/
1
2

10.进入 etc 目录,修改 redis.conf 文件。

cd /usr/local/redis/etc/
vi redis.conf
1
2

11.注释掉 bind 127.0.0.1 这一行。

#bind 127.0.0.1
1

12.将 protected-mode 属性改为 no (关闭保护模式,不然会阻止远程访问;同上,正式服务器项目上线可不修改)。

protected-mode no
1

13.将 daemonize 属性改为 yes (这样启动时就在后台启动)。

daemonize yes
1

14.设置密码(可选,建议还是设个密码), 修改完成后,保存并退出。

requirepass redispassword
1

15.在 redis 目录下执行,启动redis,查看redis是否成功启动。

cd /usr/local/redis/
./bin/redis-server /usr/local/redis/etc/redis.conf
ps -ef | grep redis
1
2
3

# 安装MySQL

AILP的监控平台的运行依赖数据库服务,当前支持MySQL,人大金仓等多种类型的关系数据库部署。此处以MySQL为例介绍数据库的安装过程,其他类型数据库请参考数据库厂商产品安装指南进行。

1.首先关闭linux的防火墙,执行命令。

chkconfig iptables off
1

2.从mysql官网上下载自己适合的mysql版本"https://dev.mysql.com/downloads/mysql/5.6.html#downloads", 进入mysql官网,进行下载,以下载mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz为例。

3.将下载好的mysql压缩文件放置在linux的/usr/local文件夹下,解压mysql安装包。

tar zxvf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
1

4.将解压后的文件重命名为mysql。

mv mysql-5.6.46-linux-glibc2.12-x86_64 mysql
1

5.创建mysql用户组及用户。

groupadd mysql
useradd -r -g mysql mysql
1
2

6.进入到mysql目录,执行添加MySQL配置的操作。

cp support-files/my-medium.cnf /etc/my.cnf
或:cp support-files/my-default.cnf /etc/my.cnf
1
2

是否覆盖?按y 回车

7.编辑/etc/my.cnf文件。

vi /etc/my.cnf
1

8.在my.cnf文件中添加或者修改相关配置,更改完成后保存退出。

#These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
character-set-server = utf8
skip-name-resolve
log-err = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
1
2
3
4
5
6
7
8
9
10

9.在mysql当前目录下设定目录的访问权限(注意后面的小点,表示当前目录)。

chown -R mysql .
chgrp -R mysql .
scripts/mysql_././assets/images/install_db --user=mysql
chown -R root .
chown -R mysql data
1
2
3
4
5

10.面第三步执行可能会出现下面的错误。

[root@localhost mysql-mult]# ./scripts/mysql_././assets/images/install_db  --defaults-file=conf/3306my.cnf
FATAL ERROR: please ././assets/images/install the following Perl modules before executing ./scripts/mysql_././assets/images/install_db:
1
2

11.解决方法 :安装autoconf库。

yum -y ././assets/images/install autoconf
1

12.初始化数据(在mysql/bin或者mysql/scripts下有个 mysql_././assets/images/install_db 可执行文件初始化数据库),进入mysql/bin或者mysql/scripts目录下,执行下面命令。

./mysql_././assets/images/install_db --verbose --user=root --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql 
1

13.启动mysql,进入/usr/local/mysql/bin目录,执行下面命令。

./mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root &
1

注意,如果光标停留在屏幕上,表示启动成功,需要我们先关闭shell终端,再开启一个新的shell终端,不要执行退出操作。如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题。

14.设置开机启动,新开启shell中断后,进入mysql目录,执行下面命令。

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
chmod 700 /etc/init.d/mysql
chkconfig --add mysqld
chkconfig --level 2345 mysqld on
chown mysql:mysql -R /usr/local/mysql/
1
2
3
4
5
6

15.重启linux。

reboot
1

16.查看mysql状态。

service mysqld status
1

17.添加远程访问权限

1)添加mysql命令。

ln  -s /usr/local/mysql/bin/mysql  /usr/bin
1

2)登录mysql,更改访问权限。

mysql -uroot –p  #密码为空直接回车,运行以下三条命令。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' with grant option;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'yourpassword' with grant option;
1
2
3

3)退出mysql。

exit
1

18.mysql安装完毕。

编辑页面 (opens new window)

← 产品白皮书 用户手册→

  • 浅色模式