시스템 관리자라면 항상 ABBYY Vantage를 모니터링하고 관리하며, 문서 처리 중에 발생할 수 있는 모든 오류와 그 원인을 파악해야 합니다.
ABBYY Vantage는 다음을 사용하여 모니터링할 수 있습니다.
- Vantage 로그 파일
- 내장된 Skill Monitor 서비스: 기존 Vantage 스킬에 대한 통계를 수집하고, 완료되었거나 진행 중인 트랜잭션에 대한 자세한 정보를 제공합니다. 또한 이 서비스는 기술 지원에 필요한 트랜잭션 이벤트 정보를 확인할 수 있게 해 줍니다.
- 타사 서비스: 내부 Vantage 프로세스를 모니터링하고, 특정 워크플로를 모니터링하며, 수집된 데이터를 분석하여 문서 처리를 추가로 세부 조정하고 최적화하며, 로그를 수집 및 분석할 수 있습니다.
기술 지원에 연락할 때, 오류에 대한 정보와 더불어 다음 작업을 수행하여 제품 및 구성 요소의 버전 정보를 함께 제공할 수 있습니다.
- 왼쪽 패널에서 Help를 클릭한 다음 About을 선택하고 Version details를 선택합니다.
- 세부 정보를 복사합니다.
Vantage에서 문서를 처리하는 동안 생성된 로그 파일은 제품이 설치된 머신의 로컬에 저장됩니다.
로그는 다음과 같이 저장됩니다. 모든 Kubernetes 노드에서 실행되는 Fluent Bit 에이전트가 컨테이너 로그를 수집하여 Fluentd aggregator 서비스로 전송합니다. 기본적으로 모든 로그는 영구 볼륨에 아카이브 파일 형태로 저장되며, NFS를 통해 액세스할 수 있습니다. 선택적으로 관리자는 로그를 Elasticsearch 클러스터로도 전송할 수 있습니다.
진단 로그에 액세스하려면:
- 외부 NFS 서버 또는 기타 외부 스토리지를 사용하는 경우, 3단계로 바로 건너뜁니다.
- 클러스터 내 NFS 서버를 사용하는 설치(고가용성 없음 구성의 기본값)에서는 NFS 서버의 IP 주소를 확인합니다.
kubectl -n nfs get po -lapp.kubernetes.io/name=nfs-kernel-server -o jsonpath='{ .items[*].status.hostIP }'
- 공유 위치에 액세스합니다:
- NFS의 경우:
- Linux:
mount –t nfs <nfs server ip>:/ /opt/mount
- Windows: Client for NFS를 설치한 후 파일 탐색기를 열고
\\<nfs server ip>로 이동합니다.
- 기타 유형의 외부 스토리지의 경우: 액세스 방법은 시스템 관리자에게 문의하십시오.
\\<nfs server ip>\<sharename>\<env>\abbyy-monitoring\fluentd-pvc 디렉터리로 이동합니다.
ABBYY 고객 지원팀에 Vantage 로그를 제공하려면:
- 로그 폴더로 이동합니다. 로그는 Kubernetes 클러스터의 네임스페이스와 동일한 이름을 가진 하위 폴더에 저장됩니다. Vantage 로그는
abbyy-vantage 폴더에 있습니다.
- 문제가 발생한 시간대에 해당하는 파일을 복사합니다. 로그는 파일 이름이
Y-M-DD-H 형식을 따르는 gzip 파일로 압축되어 있습니다(예: 2022-12-09-0800.log.gz).
- 해당 파일을 ABBYY 기술 지원팀으로 전송합니다.
Elasticsearch 및 Kibana는 로그를 검색, 분석하고 시각화하는 도구입니다. Elasticsearch 및 Kibana는 ABBYY Vantage와 함께 설치되지 않으며 별도로 설치하고 구성해야 합니다. 이는 제품이 설치되었는지 여부와 관계없이 수행할 수 있습니다. 기존 설치를 사용해도 됩니다.
아래에 설명된 샘플 설정 절차는 단순화된 것이며, 참고용 예시일 뿐입니다.
Elasticsearch 및 Kibana를 설치하려면:
- 리포지토리를 클론합니다:
git clone https://github.com/elastic/cloud-on-k8s.git
cd cloud-on-k8s
git checkout 2.5
cd deploy/eck-operator
- 리소스를 배포하는 Operator를 설치합니다:
helm -n elastic upgrade -i eck-operator . --create-namespace
- 다음과 같은 내용으로
elastic.yaml 파일을 생성합니다:
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: elasticsearch
namespace: elastic
spec:
version: 8.5.1
nodeSets:
- config:
indices.fielddata.cache.size: 38%
xpack.ml.enabled: false
xpack.security.enabled: true
count: 1
name: default
podTemplate:
spec:
containers:
- name: elasticsearch
resources:
limits:
memory: 1Gi
cpu: '1'
requests:
cpu: '1'
memory: 1Gi
initContainers:
- command:
- sh
- '-c'
- sysctl -w vm.max_map_count=262144
name: sysctl
securityContext:
privileged: true
runAsUser: 0
nodeSelector:
kubernetes.io/os: linux
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 128Gi
- 다음 내용을 사용하여
kibana.yaml 파일을 생성합니다:
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: kibana
namespace: elastic
spec:
version: 8.5.1
count: 1
elasticsearchRef:
name: elasticsearch
podTemplate:
spec:
containers:
- name: kibana
env:
- name: NODE_OPTIONS
value: "--max-old-space-size=2048"
resources:
requests:
memory: 512Mi
cpu: 0.5
limits:
memory: 1Gi
cpu: 1
nodeSelector:
kubernetes.io/os: linux
- 다음 명령어를 실행하여 Elasticsearch를 설치합니다:
kubectl -n elastic apply -f elastic.yaml
배포 상태를 확인하세요:
kubectl -n elastic get statefulset
- Kibana를 설치하려면 다음 명령어를 실행합니다:
kubectl -n elastic apply -f kibana.yaml
배포 상태를 확인하세요:
kubectl -n elastic get deployment
- Elasticsearch 사용자 비밀번호를 확인합니다:
kubectl -n elastic get secret elasticsearch-es-elastic-user -o go-template='{{.data.elastic | base64decode }}'
- 다음 Parameter를
env_specific.yaml 파일에 추가합니다:
logging:
enabled: true
elasticsearch:
enabled: true
host: elasticsearch-es-http.elastic.svc.cluster.local
username: elastic
password: elastic_user_password
scheme: https
- 제품을 이미 설치한 후에 Kibana를 설치하는 경우,
env_specific.yaml 파일을 업데이트한 다음 다음 명령을 실행합니다.
ansible-playbook -i inventories/k8s playbooks/6-DeployMonitoring-k8s.yml
Grafana는 Prometheus와 함께 사용하는 데이터 시각화, 모니터링 및 분석 도구입니다. Grafana는 ABBYY Vantage와 함께 설치되지 않으므로 별도로 설치하고 설정해야 합니다. 이미 구축해 둔 Grafana가 있다면 그대로 사용해도 됩니다.
Prometheus는 클러스터 내에서만 사용할 수 있으므로 Grafana는 클러스터에 설치해야 합니다.
아래의 샘플 설정 절차는 단순화된 것이며, 예시로만 제공됩니다.
Grafana를 설치하려면:
grafana.yaml이라는 이름의 파일을 생성합니다.
- 다음 코드를 파일에 복사하여 붙여넣고 저장합니다:
persistence:
enabled: false
rbac:
create: true
namespaced: false
serviceAccount:
create: true
podLabels:
app.kubernetes.io/component: grafana
nodeSelector:
kubernetes.io/os: linux
adminUser: admin
adminPassword: password
plugins:
- grafana-piechart-panel
- flant-statusmap-panel
grafana.ini:
server:
root_url: "%(protocol)s://%(domain)s:%(http_port)s/grafana/"
enable_gzip: "true"
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: abbyy-nginx
nginx.ingress.kubernetes.io/rewrite-target: /$2
tls:
- secretName: platform-wildcard
hosts:
- {{ env }}.{{ domain }}
hosts:
- {{ env }}.{{ domain }}
path: "/grafana(/|$)(.*)"
sidecar:
dashboards:
enabled: true
label: grafana_dashboard
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: Prometheus
editable: true
isDefault: true
jsonData:
timeInterval: 5s
tlsSkipVerify: true
type: prometheus
url: 'http://prometheus-scaling.abbyy-monitoring.svc.cluster.local:9090'
- editable: true
isDefault: true
jsonData:
timeInterval: 5s
tlsSkipVerify: true
name: Victoria
type: prometheus
url: 'http://victoria-metrics-abbyy.abbyy-monitoring.svc.cluster.local:8428'
host Parameter 값을 Vantage 클러스터의 도메인 이름으로 변경하고 초기 관리자 비밀번호를 변경합니다.
- 다음 명령을 실행합니다:
helm repo add grafana https://grafana.github.io/helm-charts
helm -n abbyy-monitoring upgrade -i grafana grafana/grafana -f grafana.yaml