├── .gitignore
├── pics
├── Disks.png
├── Logs.png
├── Main.png
├── Cooling.png
├── Network.png
└── System.png
├── docker
├── entrypoint.sh
├── Makefile
├── Dockerfile
└── QTS.mib
├── charts
└── qnap-exporter
│ ├── Chart.yaml
│ ├── Makefile
│ ├── templates
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ ├── tests
│ │ └── test-connection.yaml
│ ├── configmap_grafana_dashboard.yaml
│ ├── servicemonitor.yaml
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── ingress.yaml
│ ├── deployment.yaml
│ └── configmap_telegraf.yaml
│ ├── .helmignore
│ └── values.yaml
├── .github
└── workflows
│ ├── build-docker.yml
│ ├── build.yml
│ └── build-helm-chart.yml
├── README.md
└── LICENSE
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode/*
2 |
3 | # Local History for Visual Studio Code
4 | .history/
--------------------------------------------------------------------------------
/pics/Disks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bsosnowski/qnap-exporter/HEAD/pics/Disks.png
--------------------------------------------------------------------------------
/pics/Logs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bsosnowski/qnap-exporter/HEAD/pics/Logs.png
--------------------------------------------------------------------------------
/pics/Main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bsosnowski/qnap-exporter/HEAD/pics/Main.png
--------------------------------------------------------------------------------
/pics/Cooling.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bsosnowski/qnap-exporter/HEAD/pics/Cooling.png
--------------------------------------------------------------------------------
/pics/Network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bsosnowski/qnap-exporter/HEAD/pics/Network.png
--------------------------------------------------------------------------------
/pics/System.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bsosnowski/qnap-exporter/HEAD/pics/System.png
--------------------------------------------------------------------------------
/docker/entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | if [ "${1:0:1}" = '-' ]; then
5 | set -- telegraf "$@"
6 | fi
7 |
8 | exec "$@"
--------------------------------------------------------------------------------
/charts/qnap-exporter/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v2
2 | name: qnap-exporter
3 | description: Qnap Export Helm Chart for Kubernetes
4 | type: application
5 | version: 0.1.1
6 | appVersion: "v0.1.1"
7 |
--------------------------------------------------------------------------------
/docker/Makefile:
--------------------------------------------------------------------------------
1 | build:
2 | DOCKER_BUILDKIT=1 docker buildx build \
3 | --platform linux/amd64,linux/arm64 \
4 | --build-arg TELEGRAF_VERSION=1.32.2 \
5 | --build-arg VERSION=9.9.9 \
6 | -t telegraf-qnap:9.9.9 \
7 | --output="type=image" \
8 | --no-cache \
9 | --load \
10 | .
--------------------------------------------------------------------------------
/charts/qnap-exporter/Makefile:
--------------------------------------------------------------------------------
1 | template:
2 | clear & helm template . --name-template qnap-exporter --namespace qnap-monitoring --values values.yaml
3 |
4 | install:
5 | helm install qnap-exporter oci://ghcr.io/bsosnowski/charts/qnap-exporter
6 |
7 | upgrade:
8 | helm upgrade qnap-exporter oci://ghcr.io/bsosnowski/charts/qnap-exporter
9 |
10 | delete:
11 | helm delete qnap-exporter
--------------------------------------------------------------------------------
/charts/qnap-exporter/templates/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.serviceAccount.create -}}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "telegraf-qnap.serviceAccountName" . }}
6 | labels:
7 | {{- include "telegraf-qnap.labels" . | nindent 4 }}
8 | {{- with .Values.serviceAccount.annotations }}
9 | annotations:
10 | {{- toYaml . | nindent 4 }}
11 | {{- end }}
12 | {{- end }}
13 |
--------------------------------------------------------------------------------
/charts/qnap-exporter/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *.orig
18 | *~
19 | # Various IDEs
20 | .project
21 | .idea/
22 | *.tmproj
23 | .vscode/
24 |
--------------------------------------------------------------------------------
/charts/qnap-exporter/templates/service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ include "telegraf-qnap.fullname" . }}
5 | labels:
6 | {{- include "telegraf-qnap.labels" . | nindent 4 }}
7 | spec:
8 | type: {{ .Values.service.type }}
9 | ports:
10 | - port: {{ .Values.service.port }}
11 | targetPort: {{ .Values.service.port }}
12 | protocol: TCP
13 | name: metrics
14 | selector:
15 | {{- include "telegraf-qnap.selectorLabels" . | nindent 4 }}
16 |
--------------------------------------------------------------------------------
/charts/qnap-exporter/templates/tests/test-connection.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Pod
3 | metadata:
4 | name: "{{ include "telegraf-qnap.fullname" . }}-test-connection"
5 | labels:
6 | {{- include "telegraf-qnap.labels" . | nindent 4 }}
7 | annotations:
8 | "helm.sh/hook": test
9 | spec:
10 | containers:
11 | - name: wget
12 | image: busybox
13 | command: ['wget']
14 | args: ['{{ include "telegraf-qnap.fullname" . }}:{{ .Values.service.port }}']
15 | restartPolicy: Never
16 |
--------------------------------------------------------------------------------
/charts/qnap-exporter/templates/configmap_grafana_dashboard.yaml:
--------------------------------------------------------------------------------
1 | {{- $values := .Values -}}
2 | {{ range $path, $_ := .Files.Glob "dashboards/*.json" }}
3 | apiVersion: v1
4 | kind: ConfigMap
5 | metadata:
6 | labels:
7 | # app: kube-prometheus-stack-grafana
8 | grafana_dashboard: '1'
9 | # release: kube-monitoring
10 | name: {{ base $path | replace (ext $path) "" }}
11 | namespace: "{{ $values.metrics.prometheusNamespace }}"
12 | data:
13 | {{ base $path }}: |
14 | {{ $.Files.Get $path | indent 4}}
15 | ---
16 | {{- end }}
--------------------------------------------------------------------------------
/charts/qnap-exporter/templates/servicemonitor.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.metrics.enabled }}
2 | apiVersion: monitoring.coreos.com/v1
3 | kind: ServiceMonitor
4 | metadata:
5 | name: {{ include "telegraf-qnap.fullname" . }}
6 | labels:
7 | {{- include "telegraf-qnap.labels" . | nindent 4 }}
8 | {{- with .Values.metrics.serviceMonitor.labels }}
9 | {{- toYaml . | nindent 4 }}
10 | {{- end }}
11 | spec:
12 | selector:
13 | matchLabels:
14 | {{- include "telegraf-qnap.selectorLabels" . | nindent 6 }}
15 | namespaceSelector:
16 | matchNames:
17 | - {{ .Release.Namespace }}
18 | endpoints:
19 | - port: metrics
20 | {{- with .Values.metrics.serviceMonitor.interval }}
21 | interval: {{ . }}
22 | {{- end }}
23 | {{- with .Values.metrics.serviceMonitor.scrapeTimeout }}
24 | scrapeTimeout: {{ . }}
25 | {{- end }}
26 | path: /metrics
27 | {{- end }}
--------------------------------------------------------------------------------
/docker/Dockerfile:
--------------------------------------------------------------------------------
1 | ARG TELEGRAF_VERSION
2 | FROM telegraf:$TELEGRAF_VERSION
3 |
4 | ARG TELEGRAF_VERSION
5 | ARG TARGETPLATFORM
6 | ARG BUILD_DATE
7 | ARG REVISION
8 | ARG VERSION
9 | ARG REF
10 |
11 | ENV TELEGRAF_VERSION=$TELEGRAF_VERSION
12 | ENV TARGETPLATFORM=${TARGETPLATFORM}
13 | ENV BUILD_DATE=${BUILD_DATE}
14 | ENV REVISION=${REVISION}
15 | ENV VERSION=${VERSION}
16 | ENV REF=${REF}
17 |
18 | LABEL org.opencontainers.image.version="${VERSION}" \
19 | org.opencontainers.image.authors="bartosz.sosnowski" \
20 | org.opencontainers.image.created="${BUILD_DATE}" \
21 | org.opencontainers.image.url="https://github.com/bsosnowski/qnap-exporter" \
22 | org.opencontainers.image.documentation="https://github.com/bsosnowski/qnap-exporter/blob/main/README.md" \
23 | org.opencontainers.image.source="https://raw.githubusercontent.com/bsosnowski/qnap-exporter/refs/heads/main/docker/Dockerfile" \
24 | org.opencontainers.image.revision="${REVISION}" \
25 | org.opencontainers.image.ref.name="${REF}" \
26 | org.opencontainers.image.title="Qnap Exporter" \
27 | org.opencontainers.image.description="SNMP Qnap Exporter" \
28 | arch="${TARGETPLATFORM}" \
29 | telegraf.version="${TELEGRAF_VERSION}"
30 |
31 | RUN echo "deb http://deb.debian.org/debian bookworm main contrib non-free" >> /etc/apt/sources.list && \
32 | apt-get update && \
33 | apt-get install --yes --no-install-recommends snmp-mibs-downloader && \
34 | rm -rf /var/lib/apt/lists/*
35 |
36 | COPY NAS.mib QTS.mib /usr/share/snmp/mibs/
37 |
38 | COPY --chmod=755 entrypoint.sh /entrypoint.sh
39 |
40 | RUN chmod +x /entrypoint.sh
41 |
42 | RUN download-mibs && sed -i "s/^\(mibs *:\).*/#\1/" /etc/snmp/snmp.conf
43 |
44 | ENTRYPOINT ["/entrypoint.sh"]
45 | CMD ["telegraf"]
46 |
--------------------------------------------------------------------------------
/charts/qnap-exporter/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | 1. Get the application URL by running these commands:
2 | {{- if .Values.ingress.enabled }}
3 | {{- range $host := .Values.ingress.hosts }}
4 | {{- range .paths }}
5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
6 | {{- end }}
7 | {{- end }}
8 | {{- else if contains "NodePort" .Values.service.type }}
9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "telegraf-qnap.fullname" . }})
10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
11 | echo http://$NODE_IP:$NODE_PORT
12 | {{- else if contains "LoadBalancer" .Values.service.type }}
13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available.
14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "telegraf-qnap.fullname" . }}'
15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "telegraf-qnap.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
16 | echo http://$SERVICE_IP:{{ .Values.service.port }}
17 | {{- else if contains "ClusterIP" .Values.service.type }}
18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "telegraf-qnap.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
19 | export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
20 | echo "Visit http://127.0.0.1:8080 to use your application"
21 | kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
22 | {{- end }}
23 |
--------------------------------------------------------------------------------
/charts/qnap-exporter/values.yaml:
--------------------------------------------------------------------------------
1 | # Default values for qnap-exporter
2 | replicaCount: 1
3 |
4 | image:
5 | repository: ghcr.io/bsosnowski/docker/qnap-exporter
6 | pullPolicy: IfNotPresent
7 | # Overrides the image tag whose default is the chart appVersion.
8 | tag:
9 |
10 | imagePullSecrets: []
11 | nameOverride: ""
12 | fullnameOverride: ""
13 |
14 | serviceAccount:
15 | # Specifies whether a service account should be created
16 | create: false
17 | # Annotations to add to the service account
18 | annotations: {}
19 | # The name of the service account to use.
20 | # If not set and create is true, a name is generated using the fullname template
21 | name: ""
22 |
23 | podAnnotations: {}
24 |
25 | podSecurityContext: {}
26 | # fsGroup: 2000
27 |
28 | securityContext: {}
29 | # capabilities:
30 | # drop:
31 | # - ALL
32 | # readOnlyRootFilesystem: true
33 | # runAsNonRoot: true
34 | # runAsUser: 1000
35 |
36 | service:
37 | type: ClusterIP
38 | port: 9273
39 |
40 | ingress:
41 | enabled: false
42 | className: ""
43 | annotations: {}
44 | # kubernetes.io/ingress.class: nginx
45 | # kubernetes.io/tls-acme: "true"
46 | hosts:
47 | - host: chart-example.local
48 | paths:
49 | - path: /
50 | pathType: ImplementationSpecific
51 | tls: []
52 | # - secretName: chart-example-tls
53 | # hosts:
54 | # - chart-example.local
55 |
56 | resources: {}
57 | # limits:
58 | # cpu: 500m
59 | # memory: 256Mi
60 | # requests:
61 | # cpu: 200m
62 | # memory: 256Mi
63 |
64 | nodeSelector: {}
65 |
66 | tolerations: []
67 |
68 | affinity: {}
69 |
70 | nas:
71 | hostname: NAS453D
72 | snmp:
73 | agent: "udp://192.168.1.100:161"
74 | timeout: "110s"
75 | version: 2
76 | community: "snmp-telegraf"
77 | retries: 0
78 |
79 | metrics:
80 | enabled: true
81 | serviceMonitor:
82 | interval: 120s
83 | scrapeTimeout: 30s
84 | labels:
85 | release: kube-monitoring
--------------------------------------------------------------------------------
/charts/qnap-exporter/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/*
2 | Expand the name of the chart.
3 | */}}
4 | {{- define "telegraf-qnap.name" -}}
5 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
6 | {{- end }}
7 |
8 | {{/*
9 | Create a default fully qualified app name.
10 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
11 | If release name contains chart name it will be used as a full name.
12 | */}}
13 | {{- define "telegraf-qnap.fullname" -}}
14 | {{- if .Values.fullnameOverride }}
15 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
16 | {{- else }}
17 | {{- $name := default .Chart.Name .Values.nameOverride }}
18 | {{- if contains $name .Release.Name }}
19 | {{- .Release.Name | trunc 63 | trimSuffix "-" }}
20 | {{- else }}
21 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
22 | {{- end }}
23 | {{- end }}
24 | {{- end }}
25 |
26 | {{/*
27 | Create chart name and version as used by the chart label.
28 | */}}
29 | {{- define "telegraf-qnap.chart" -}}
30 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
31 | {{- end }}
32 |
33 | {{/*
34 | Common labels
35 | */}}
36 | {{- define "telegraf-qnap.labels" -}}
37 | helm.sh/chart: {{ include "telegraf-qnap.chart" . }}
38 | {{ include "telegraf-qnap.selectorLabels" . }}
39 | {{- if .Chart.AppVersion }}
40 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
41 | {{- end }}
42 | app.kubernetes.io/managed-by: {{ .Release.Service }}
43 | {{- end }}
44 |
45 | {{/*
46 | Selector labels
47 | */}}
48 | {{- define "telegraf-qnap.selectorLabels" -}}
49 | app.kubernetes.io/name: {{ include "telegraf-qnap.name" . }}
50 | app.kubernetes.io/instance: {{ .Release.Name }}
51 | {{- end }}
52 |
53 | {{/*
54 | Create the name of the service account to use
55 | */}}
56 | {{- define "telegraf-qnap.serviceAccountName" -}}
57 | {{- if .Values.serviceAccount.create }}
58 | {{- default (include "telegraf-qnap.fullname" .) .Values.serviceAccount.name }}
59 | {{- else }}
60 | {{- default "default" .Values.serviceAccount.name }}
61 | {{- end }}
62 | {{- end }}
63 |
--------------------------------------------------------------------------------
/.github/workflows/build-docker.yml:
--------------------------------------------------------------------------------
1 | name: .Docker builder
2 |
3 | on:
4 | workflow_call:
5 | inputs:
6 | docker-image-name:
7 | required: true
8 | type: string
9 | description: Name of Container image
10 | docker-registry:
11 | required: true
12 | type: string
13 | description: Docker registry name
14 | docker-repository:
15 | required: true
16 | type: string
17 | description: Docker repository directory name
18 | version:
19 | required: true
20 | type: string
21 | description: Container image version
22 | context-path:
23 | required: false
24 | type: string
25 | default: .
26 | description: Context path
27 |
28 | jobs:
29 | build:
30 | name: Build
31 | runs-on: ubuntu-latest
32 | steps:
33 | - name: Checkout repository
34 | uses: actions/checkout@v4
35 |
36 | - name: Docker Setup Buildx
37 | uses: docker/setup-buildx-action@v3
38 | with:
39 | install: true
40 |
41 | - name: Login to Container registry
42 | uses: docker/login-action@v3
43 | with:
44 | registry: ${{ inputs.docker-registry }}
45 | username: ${{ secrets.DOCKER_REGISTRY_USERNAME }}
46 | password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
47 |
48 | - name: Get build date
49 | id: date
50 | run: echo "date=$(date +'%Y-%m-%d %H:%m:%S')" >> $GITHUB_OUTPUT
51 |
52 | - name: Build and push Docker image
53 | uses: docker/build-push-action@v6
54 | with:
55 | context: ${{ inputs.context-path }}
56 | push: true
57 | platforms: linux/amd64,linux/arm64
58 | tags: ${{ inputs.docker-registry }}/${{ inputs.docker-repository }}/${{ inputs.docker-image-name }}:${{ inputs.version }},${{ inputs.docker-registry }}/${{ inputs.docker-repository }}/${{ inputs.docker-image-name }}:latest
59 | build-args: |
60 | "APP_NAME=${{ inputs.docker-image-name }}"
61 | "VERSION=${{ inputs.version }}"
62 | "BUILD_DATE=${{ steps.date.outputs.date }}"
63 | "TELEGRAF_VERSION=1.32.2"
64 | "REVISION=${{ github.sha }}"
65 | "REF=${{ github.ref }}"
--------------------------------------------------------------------------------
/charts/qnap-exporter/templates/ingress.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ingress.enabled -}}
2 | {{- $fullName := include "telegraf-qnap.fullname" . -}}
3 | {{- $svcPort := .Values.service.port -}}
4 | {{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
5 | {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
6 | {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
7 | {{- end }}
8 | {{- end }}
9 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
10 | apiVersion: networking.k8s.io/v1
11 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
12 | apiVersion: networking.k8s.io/v1beta1
13 | {{- else -}}
14 | apiVersion: extensions/v1beta1
15 | {{- end }}
16 | kind: Ingress
17 | metadata:
18 | name: {{ $fullName }}
19 | labels:
20 | {{- include "telegraf-qnap.labels" . | nindent 4 }}
21 | {{- with .Values.ingress.annotations }}
22 | annotations:
23 | {{- toYaml . | nindent 4 }}
24 | {{- end }}
25 | spec:
26 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
27 | ingressClassName: {{ .Values.ingress.className }}
28 | {{- end }}
29 | {{- if .Values.ingress.tls }}
30 | tls:
31 | {{- range .Values.ingress.tls }}
32 | - hosts:
33 | {{- range .hosts }}
34 | - {{ . | quote }}
35 | {{- end }}
36 | secretName: {{ .secretName }}
37 | {{- end }}
38 | {{- end }}
39 | rules:
40 | {{- range .Values.ingress.hosts }}
41 | - host: {{ .host | quote }}
42 | http:
43 | paths:
44 | {{- range .paths }}
45 | - path: {{ .path }}
46 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
47 | pathType: {{ .pathType }}
48 | {{- end }}
49 | backend:
50 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
51 | service:
52 | name: {{ $fullName }}
53 | port:
54 | number: {{ $svcPort }}
55 | {{- else }}
56 | serviceName: {{ $fullName }}
57 | servicePort: {{ $svcPort }}
58 | {{- end }}
59 | {{- end }}
60 | {{- end }}
61 | {{- end }}
62 |
--------------------------------------------------------------------------------
/charts/qnap-exporter/templates/deployment.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apps/v1
2 | kind: Deployment
3 | metadata:
4 | name: {{ include "telegraf-qnap.fullname" . }}
5 | labels:
6 | {{- include "telegraf-qnap.labels" . | nindent 4 }}
7 | spec:
8 | replicas: {{ .Values.replicaCount }}
9 | selector:
10 | matchLabels:
11 | {{- include "telegraf-qnap.selectorLabels" . | nindent 6 }}
12 | template:
13 | metadata:
14 | {{- with .Values.podAnnotations }}
15 | annotations:
16 | {{- toYaml . | nindent 8 }}
17 | {{- end }}
18 | labels:
19 | {{- include "telegraf-qnap.selectorLabels" . | nindent 8 }}
20 | spec:
21 | {{- with .Values.imagePullSecrets }}
22 | imagePullSecrets:
23 | {{- toYaml . | nindent 8 }}
24 | {{- end }}
25 | serviceAccountName: {{ include "telegraf-qnap.serviceAccountName" . }}
26 | securityContext:
27 | {{- toYaml .Values.podSecurityContext | nindent 8 }}
28 | containers:
29 | - name: {{ .Chart.Name }}
30 | securityContext:
31 | {{- toYaml .Values.securityContext | nindent 12 }}
32 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
33 | imagePullPolicy: {{ .Values.image.pullPolicy }}
34 | ports:
35 | - name: http
36 | containerPort: {{ .Values.service.port }}
37 | protocol: TCP
38 | livenessProbe:
39 | httpGet:
40 | path: /metrics
41 | port: http
42 | readinessProbe:
43 | httpGet:
44 | path: /metrics
45 | port: http
46 | resources:
47 | {{- toYaml .Values.resources | nindent 12 }}
48 | volumeMounts:
49 | - name: {{ include "telegraf-qnap.fullname" . }}-volume
50 | mountPath: /etc/telegraf/telegraf.conf
51 | subPath: telegraf.conf
52 | {{- with .Values.nodeSelector }}
53 | nodeSelector:
54 | {{- toYaml . | nindent 8 }}
55 | {{- end }}
56 | {{- with .Values.affinity }}
57 | affinity:
58 | {{- toYaml . | nindent 8 }}
59 | {{- end }}
60 | {{- with .Values.tolerations }}
61 | tolerations:
62 | {{- toYaml . | nindent 8 }}
63 | {{- end }}
64 | volumes:
65 | - name: {{ include "telegraf-qnap.fullname" . }}-volume
66 | configMap:
67 | name: {{ include "telegraf-qnap.fullname" . }}
68 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Build and Release
2 |
3 | run-name: ${{ github.actor }} is building new image 🚀
4 | on:
5 | workflow_dispatch:
6 | push:
7 | branches:
8 | - main
9 |
10 | jobs:
11 | sem-version:
12 | name: Semantic versioning
13 | runs-on: ubuntu-latest
14 | outputs:
15 | version_tag: ${{ steps.semver.outputs.version_tag }}
16 | version: ${{ steps.semver.outputs.version }}
17 | steps:
18 | - run: echo "🔎 Relesing from branch ${{ github.ref }}."
19 | - name: Checkout repository
20 | uses: actions/checkout@v4
21 | with:
22 | fetch-depth: 0
23 | fetch-tags: 'true'
24 | - name: Semantic versioning
25 | uses: paulhatch/semantic-version@v5.4.0
26 | id: semver
27 | with:
28 | tag_prefix: "v"
29 | enable_prerelease_mode: true
30 | debug: false
31 | # bump_each_commit: true
32 | - name: Log version
33 | run: |
34 | echo "::notice::Version: ${{ steps.semver.outputs.version_tag }}"
35 |
36 | docker-build:
37 | name: Build Container
38 | uses: ./.github/workflows/build-docker.yml
39 | secrets: inherit
40 | needs: sem-version
41 | with:
42 | docker-image-name: qnap-exporter
43 | docker-registry: ghcr.io
44 | docker-repository: bsosnowski/docker
45 | version: ${{ needs.sem-version.outputs.version_tag }}
46 | context-path: docker
47 |
48 | helm-build:
49 | name: Build Helm chart
50 | uses: ./.github/workflows/build-helm-chart.yml
51 | secrets: inherit
52 | needs: sem-version
53 | with:
54 | version: ${{ needs.sem-version.outputs.version }}
55 | context-path: charts/qnap-exporter
56 | helm-registry-directory: charts
57 | helm-registry: oci://ghcr.io/bsosnowski
58 |
59 | release:
60 | name: Create Release
61 | needs: [sem-version,docker-build,helm-build]
62 | runs-on: ubuntu-latest
63 | steps:
64 | - name: Checkout repository
65 | uses: actions/checkout@v4
66 | # https://github.blog/2022-04-12-git-security-vulnerability-announced/
67 | - name: Set git repository ownership
68 | run: |
69 | # this is to fix GIT not liking owner of the checkout dir
70 | chown -R $(id -u):$(id -g) $PWD
71 | - name: Create GitHub Release
72 | run: |
73 | gh release create ${{ needs.sem-version.outputs.version_tag }} -t qnap-exporter-${{ needs.sem-version.outputs.version_tag }} --generate-notes
74 | env:
75 | GH_TOKEN: ${{ github.token }}
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # QNAP exporter
2 |
3 | ## Description
4 | This repository provides a metrics exporter for Qnap NAS. It uses Telegraf with SNMP input and Prometheus output. Grafana Dashboard is included as k8's ConfigMap.
5 |
6 | ## Container image 
7 | qnap-exporter container images are built for architectures:
8 | - linux/amd64
9 | - linux/arm64
10 |
11 | ## How to configure NAS
12 |
13 | * Open Control Panel and locate the SNMP section
14 | * Enable SNMP with options:
15 | * Port: 161
16 | * SNMP Version: SNMP V1/V2
17 | * Community: snmp-telegraf
18 |
19 | ## Grafana dashboard overview
20 |
21 | ### Main
22 | 
23 | ### System
24 | 
25 | ### Cooling
26 | 
27 | ### Disks
28 | 
29 | ### Network
30 | 
31 | ### Logs
32 | This section queries Loki for syslog logs. Logs should be sent in a separate process.
33 | 
34 |
35 | ## Helm Chart Configuration
36 | Most important Helm configuration properties.
37 |
38 | | Property | Description | Example |
39 | | --------------------------------------| ------------------------------------ | ------------------------ |
40 | | nas.hostname | Hostname of you NAS | NAS453D |
41 | | nas.snmp.agent | URL for SNMP agent | udp://192.168.1.100:161 |
42 | | nas.snmp.timeout | SNMP timeout | 110s |
43 | | nas.snmp.version | SNMP version | 2 |
44 | | nas.snmp.community | SNMP community name | snmp-telegraf |
45 | | nas.snmp.retries | Number of retries | 0 |
46 | | metrics.enabled | Enable metrics scraping | true |
47 | | metrics.serviceMonitor.labels.release | Release name for Prometheus operator | kube-monitoring |
48 |
49 | ## Helm install
50 | ```shell
51 | helm install qnap-exporter oci://ghcr.io/bsosnowski/charts/qnap-exporter --version 0.1.1
52 | ```
53 | or just pull:
54 | ```shell
55 | helm pull oci://ghcr.io/bsosnowski/charts/qnap-exporter --version 0.1.1
56 | ```
57 |
58 | ## TODO
59 | - [ ] add support for Syslog -> Loki
60 | - [ ] add support for Prometheus rules
--------------------------------------------------------------------------------
/.github/workflows/build-helm-chart.yml:
--------------------------------------------------------------------------------
1 | name: .Build Helm chart
2 |
3 | on:
4 | workflow_call:
5 | inputs:
6 | version:
7 | required: true
8 | type: string
9 | description: Chart version to release
10 | context-path:
11 | required: true
12 | type: string
13 | description: Path to Chart in Git repository
14 | helm-registry:
15 | required: true
16 | type: string
17 | description: Helm remote repository name
18 | helm-registry-directory:
19 | required: true
20 | type: string
21 | description: Helm remote repository directory
22 |
23 | jobs:
24 | build:
25 | name: Build
26 | runs-on: ubuntu-latest
27 | steps:
28 | - name: Checkout repository
29 | uses: actions/checkout@v4
30 |
31 | # https://github.blog/2022-04-12-git-security-vulnerability-announced/
32 | - name: Set git settings and fix repository ownership
33 | run: |
34 | # this is to fix GIT not liking owner of the checkout dir
35 | chown -R $(id -u):$(id -g) $PWD
36 | git config user.email "actions@github.com"
37 | git config user.name "GitHub Actions"
38 | git config --global --add --bool push.autoSetupRemote true
39 |
40 | - name: Set variables
41 | id: vars
42 | shell: bash
43 | working-directory: ${{ inputs.context-path }}
44 | run: |
45 | echo "chart-name=$(yq -r '.name' Chart.yaml)" >> $GITHUB_OUTPUT
46 |
47 | - name: Update Chart version
48 | shell: bash
49 | working-directory: ${{ inputs.context-path }}
50 | run: |
51 | yq e -i '.appVersion = "v${{ inputs.version }}"' Chart.yaml
52 | yq e -i '.version = "${{ inputs.version }}"' Chart.yaml
53 |
54 | - name: Login to Docker Registry
55 | id: docker-login
56 | uses: docker/login-action@v3
57 | with:
58 | registry: ghcr.io
59 | username: ${{ secrets.DOCKER_REGISTRY_USERNAME }}
60 | password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
61 |
62 | - name: Deploy chart
63 | shell: bash
64 | working-directory: ${{ inputs.context-path }}
65 | run: |
66 | helm package .
67 | helm push ${{ steps.vars.outputs.chart-name}}-${{ inputs.version }}.tgz ${{ inputs.helm-registry }}/${{ inputs.helm-registry-directory }}
68 |
69 | - name: Commit and push
70 | shell: bash
71 | working-directory: ${{ inputs.context-path }}
72 | run: |
73 | git add Chart.yaml
74 | git commit -a -m "Helm chart version bumped to ${{ inputs.version }}"
75 | git push
76 |
77 | - name: Summary Helm release
78 | run: |
79 | echo "### Helm Chart :white_check_mark:" >> $GITHUB_STEP_SUMMARY
80 | echo "| | |" >> $GITHUB_STEP_SUMMARY
81 | echo "|-------------|-------------|" >> $GITHUB_STEP_SUMMARY
82 | echo "|Name |${{ steps.vars.outputs.chart-name}}|" >> $GITHUB_STEP_SUMMARY
83 | echo "|Version |${{ inputs.version }}|" >> $GITHUB_STEP_SUMMARY
84 | echo "|URL |${{ inputs.helm-registry }}/${{ inputs.helm-registry-directory }}/${{ steps.vars.outputs.chart-name}}/${{ steps.vars.outputs.chart-name}}-${{ inputs.version }}.tgz|" >> $GITHUB_STEP_SUMMARY
--------------------------------------------------------------------------------
/charts/qnap-exporter/templates/configmap_telegraf.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: ConfigMap
3 | metadata:
4 | labels:
5 | {{- include "telegraf-qnap.labels" . | nindent 4 }}
6 | name: {{ include "telegraf-qnap.fullname" . }}
7 | data:
8 | telegraf.conf: |
9 | [agent]
10 | interval = "{{ .Values.metrics.serviceMonitor.interval }}"
11 | round_interval = true
12 | metric_batch_size = 5000
13 | metric_buffer_limit = 20000
14 | collection_jitter = "0s"
15 | flush_interval = "30s"
16 | flush_jitter = "1s"
17 | precision = ""
18 | hostname = "{{ .Values.nas.hostname }}"
19 | omit_hostname = false
20 |
21 | [[outputs.prometheus_client]]
22 | listen = ":9273"
23 | expiration_interval = 0
24 |
25 | [[inputs.snmp]]
26 | agents = ["{{ .Values.nas.snmp.agent }}"]
27 | timeout = "{{ .Values.nas.snmp.timeout }}"
28 | # ## SNMP version; can be 1, 2, or 3.
29 | version = {{ .Values.nas.snmp.version }}
30 | community = "{{ .Values.nas.snmp.community }}"
31 | retries = {{ .Values.nas.snmp.retries }}
32 | [[inputs.snmp.table]]
33 | name = "snmp.QNAP.cpuTable"
34 | oid = "NAS-MIB::cpuTable"
35 | [[inputs.snmp.table.field]]
36 | name = "cpuIndex"
37 | oid = "NAS-MIB::cpuIndex"
38 | is_tag = true
39 | [[inputs.snmp.table.field]]
40 | name = "cpuID"
41 | oid = "NAS-MIB::cpuID"
42 | is_tag = true
43 | [[inputs.snmp.table.field]]
44 | name = "cpuUsage"
45 | oid = "NAS-MIB::cpuUsage"
46 |
47 | [[inputs.snmp.table]]
48 | name = "snmp.QNAP.systemTable"
49 | # Memory
50 | [[inputs.snmp.table.field]]
51 | name = "systemTotalMemEX"
52 | oid = "NAS-MIB::systemTotalMemEX"
53 | [[inputs.snmp.table.field]]
54 | name = "systemFreeMemEX"
55 | oid = "NAS-MIB::systemFreeMemEX"
56 | # System temp
57 | [[inputs.snmp.table.field]]
58 | name = "cpu-TemperatureEX"
59 | oid = "NAS-MIB::cpu-TemperatureEX"
60 | [[inputs.snmp.table.field]]
61 | name = "systemTemperatureEX"
62 | oid = "NAS-MIB::systemTemperatureEX"
63 | # Uptime
64 | [[inputs.snmp.field]]
65 | name = "systemUptime"
66 | oid = "NAS-MIB::systemUptimeEX"
67 | # Uptime
68 | [[inputs.snmp.field]]
69 | name = "systemCPU-UsageEX"
70 | oid = "NAS-MIB::systemCPU-UsageEX"
71 |
72 | # Enclosures
73 | [[inputs.snmp.table]]
74 | name = "snmp.QNAP.enclosureTable"
75 | oid = "NAS-MIB::enclosureTable"
76 | # Memory
77 | [[inputs.snmp.table.field]]
78 | name = "enclosureID"
79 | oid = "NAS-MIB::enclosureID"
80 | is_tag = true
81 | [[inputs.snmp.table.field]]
82 | name = "enclosureModel"
83 | oid = "NAS-MIB::enclosureModel"
84 | is_tag = true
85 | [[inputs.snmp.table.field]]
86 | name = "enclosureName"
87 | oid = "NAS-MIB::enclosureName"
88 | is_tag = true
89 | [[inputs.snmp.table.field]]
90 | name = "enclosureSystemTemp"
91 | oid = "NAS-MIB::enclosureSystemTemp"
92 | # Fan
93 | [[inputs.snmp.table]]
94 | name = "snmp.QNAP.systemFanTableEx"
95 | oid = "NAS-MIB::systemFanTableEx"
96 | [[inputs.snmp.table.field]]
97 | name = "sysFanIndexEX"
98 | oid = "NAS-MIB::sysFanIndexEX"
99 | is_tag = true
100 | [[inputs.snmp.table.field]]
101 | name = "sysFanDescrEX"
102 | oid = "NAS-MIB::sysFanDescrEX"
103 | is_tag = true
104 | [[inputs.snmp.table.field]]
105 | name = "sysFanSpeedEX"
106 | oid = "NAS-MIB::sysFanSpeedEX"
107 |
108 | # Disk
109 | [[inputs.snmp.table]]
110 | name = "snmp.QNAP.diskTable"
111 | oid = "NAS-MIB::diskTable"
112 | [[inputs.snmp.table.field]]
113 | name = "diskIndex"
114 | oid = "NAS-MIB::diskIndex"
115 | is_tag = true
116 | [[inputs.snmp.table.field]]
117 | name = "diskID"
118 | oid = "NAS-MIB::diskID"
119 | is_tag = true
120 | [[inputs.snmp.table.field]]
121 | name = "diskEnclosureID"
122 | oid = "NAS-MIB::diskEnclosureID"
123 | is_tag = true
124 | [[inputs.snmp.table.field]]
125 | name = "diskSummary"
126 | oid = "NAS-MIB::diskSummary"
127 | [[inputs.snmp.table.field]]
128 | name = "diskSmartInfo"
129 | oid = "NAS-MIB::diskSmartInfo"
130 | [[inputs.snmp.table.field]]
131 | name = "diskTemperture"
132 | oid = "NAS-MIB::diskTemperture"
133 | [[inputs.snmp.table.field]]
134 | name = "diskGlobalSpare"
135 | oid = "NAS-MIB::diskGlobalSpare"
136 | [[inputs.snmp.table.field]]
137 | name = "diskModel"
138 | oid = "NAS-MIB::diskModel"
139 | is_tag = true
140 | [[inputs.snmp.table.field]]
141 | name = "diskCapacity"
142 | oid = "NAS-MIB::diskCapacity"
143 | is_tag = true
144 |
145 | # Volumes
146 | [[inputs.snmp.table]]
147 | name = "snmp.QNAP.systemVolumeTableEx"
148 | oid = "NAS-MIB::systemVolumeTableEx"
149 | [[inputs.snmp.table.field]]
150 | name = "sysVolumeIndexEX"
151 | oid = "NAS-MIB::sysVolumeIndexEX"
152 | is_tag = true
153 | [[inputs.snmp.table.field]]
154 | name = "sysVolumeDescrEX"
155 | oid = "NAS-MIB::sysVolumeDescrEX"
156 | is_tag = true
157 | [[inputs.snmp.table.field]]
158 | name = "sysVolumeFSEX"
159 | oid = "NAS-MIB::sysVolumeFSEX"
160 | is_tag = true
161 | [[inputs.snmp.table.field]]
162 | name = "sysVolumeTotalSizeEX"
163 | oid = "NAS-MIB::sysVolumeTotalSize"
164 | [[inputs.snmp.table.field]]
165 | name = "sysVolumeFreeSize"
166 | oid = "NAS-MIB::sysVolumeFreeSizeEX"
167 | [[inputs.snmp.table.field]]
168 | name = "sysVolumeStatus"
169 | oid = "NAS-MIB::sysVolumeStatusEX"
170 |
171 | # Disk Performance
172 | [[inputs.snmp.table]]
173 | name = "snmp.QNAP.diskPerformanceTable"
174 | oid = "NAS-MIB::diskPerformanceTable"
175 | [[inputs.snmp.table.field]]
176 | name = "diskPerformanceIndex"
177 | oid = "NAS-MIB::diskPerformanceIndex"
178 | is_tag = true
179 | [[inputs.snmp.table.field]]
180 | name = "blvID"
181 | oid = "NAS-MIB::blvID"
182 | is_tag = true
183 | [[inputs.snmp.table.field]]
184 | name = "iops"
185 | oid = "NAS-MIB::iops"
186 | [[inputs.snmp.table.field]]
187 | name = "latency"
188 | oid = "NAS-MIB::latency"
189 |
190 | # JBOD
191 | [[inputs.snmp.table]]
192 | name = "snmp.QNAP.jBODHdTable1"
193 | oid = "NAS-MIB::jBODHdTable1"
194 | [[inputs.snmp.table.field]]
195 | name = "jBODHdIndex1"
196 | oid = "NAS-MIB::jBODHdIndex1"
197 | is_tag = true
198 | [[inputs.snmp.table.field]]
199 | name = "jBODHdDescr1"
200 | oid = "NAS-MIB::jBODHdDescr1"
201 | is_tag = true
202 | [[inputs.snmp.table.field]]
203 | name = "jBODHdTemperature1"
204 | oid = "NAS-MIB::sysVolumeFSEX"
205 | [[inputs.snmp.table.field]]
206 | name = "jBODHdStatus1"
207 | oid = "NAS-MIB::jBODHdStatus1"
208 | [[inputs.snmp.table.field]]
209 | name = "jBODHdModel1"
210 | oid = "NAS-MIB::jBODHdModel1"
211 | is_tag = true
212 | [[inputs.snmp.table.field]]
213 | name = "jBODHdCapacity1 "
214 | oid = "NAS-MIB::jBODHdCapacity1"
215 | [[inputs.snmp.table.field]]
216 | name = "jBODHdSmartInfo1"
217 | oid = "NAS-MIB::jBODHdSmartInfo1"
218 |
219 | # Power
220 | [[inputs.snmp.table]]
221 | name = "snmp.QNAP.systemPowerTable"
222 | oid = "NAS-MIB::systemPowerTable"
223 | [[inputs.snmp.table.field]]
224 | name = "systemPowerIndex"
225 | oid = "NAS-MIB::systemPowerIndex"
226 | is_tag = true
227 | [[inputs.snmp.table.field]]
228 | name = "systemPowerID"
229 | oid = "NAS-MIB::systemPowerID"
230 | is_tag = true
231 | [[inputs.snmp.table.field]]
232 | name = "systemPowerEnclosureID"
233 | oid = "NAS-MIB::systemPowerEnclosureID"
234 | is_tag = true
235 | [[inputs.snmp.table.field]]
236 | name = "systemPowerStatus"
237 | oid = "NAS-MIB::systemPowerStatus"
238 | [[inputs.snmp.table.field]]
239 | name = "systemPowerFanSpeed"
240 | oid = "NAS-MIB::systemPowerFanSpeed"
241 | [[inputs.snmp.table.field]]
242 | name = "systemPowerFanSpeed"
243 | oid = "NAS-MIB::systemPowerFanSpeed"
244 | [[inputs.snmp.table.field]]
245 | name = "systemPowerTemp"
246 | oid = "NAS-MIB::systemPowerTemp"
247 |
248 | # Interfaces
249 | [[inputs.snmp.table]]
250 | name = "snmp.QNAP.systemIfTableEx"
251 | oid = "NAS-MIB::systemIfTableEx"
252 | [[inputs.snmp.table.field]]
253 | name = "ifIndexEX"
254 | oid = "NAS-MIB::ifIndexEX"
255 | is_tag = true
256 | [[inputs.snmp.table.field]]
257 | name = "ifDescrEX"
258 | oid = "NAS-MIB::ifDescrEX"
259 | is_tag = true
260 | [[inputs.snmp.table.field]]
261 | name = "ifPacketsReceivedEX"
262 | oid = "NAS-MIB::ifPacketsReceivedEX"
263 | [[inputs.snmp.table.field]]
264 | name = "ifPacketsSentEX"
265 | oid = "NAS-MIB::ifPacketsSentEX"
266 | [[inputs.snmp.table.field]]
267 | name = "ifErrorPacketsEX"
268 | oid = "NAS-MIB::ifErrorPacketsEX"
269 |
270 | # QTS-MIB
271 | # System total memory
272 | [[inputs.snmp.field]]
273 | name = "QTS.systemTotalMem"
274 | oid = "QTS-MIB::systemTotalMem.0"
275 | # System free memory
276 | [[inputs.snmp.field]]
277 | name = "QTS.systemFreeMem"
278 | oid = "QTS-MIB::systemFreeMem.0"
279 | # System available memory
280 | [[inputs.snmp.field]]
281 | name = "QTS.systemAvailableMem"
282 | oid = "QTS-MIB::systemAvailableMem.0"
283 | # System used memory
284 | [[inputs.snmp.field]]
285 | name = "QTS.systemUsedMemory"
286 | oid = "QTS-MIB::systemUsedMemory.0"
287 | # System cached memory
288 | [[inputs.snmp.field]]
289 | name = "QTS.systemCacheMemory"
290 | oid = "QTS-MIB::systemCacheMemory.0"
291 | # System buffered memory
292 | [[inputs.snmp.field]]
293 | name = "QTS.systemBufferMemory"
294 | oid = "QTS-MIB::systemBufferMemory.0"
295 |
296 | # Uptime
297 | [[inputs.snmp.field]]
298 | name = "QTS.sysUptime"
299 | oid = "QTS-MIB::sysUptime.0"
300 |
301 | # Services status
302 | [[inputs.snmp.field]]
303 | name = "QTS.nfsV2V3IsEnabled"
304 | oid = "QTS-MIB::nfsV2V3IsEnabled.0"
305 |
306 | [[inputs.snmp.field]]
307 | name = "QTS.nfsV4IsEnabled"
308 | oid = "QTS-MIB::nfsV4IsEnabled.0"
309 |
310 | [[inputs.snmp.field]]
311 | name = "QTS.sshIsEnabled"
312 | oid = "QTS-MIB::sshIsEnabled.0"
313 |
314 | [[inputs.snmp.field]]
315 | name = "QTS.sshSFTPEnabled"
316 | oid = "QTS-MIB::sshSFTPEnabled.0"
317 |
318 | [[inputs.snmp.field]]
319 | name = "QTS.telnetIsEnabled"
320 | oid = "QTS-MIB::telnetIsEnabled.0"
321 |
322 | [[inputs.snmp.field]]
323 | name = "QTS.ftpEnabled"
324 | oid = "QTS-MIB::ftpEnabled.0"
325 |
326 | # Interfaces
327 | [[inputs.snmp.table]]
328 | name = "snmp.IF.ifTable"
329 | oid = "IF-MIB::ifTable"
330 | [[inputs.snmp.table.field]]
331 | name = "ifIndex"
332 | oid = "IF-MIB::ifIndex"
333 | [[inputs.snmp.table.field]]
334 | name = "ifDescr"
335 | oid = "IF-MIB::ifDescr"
336 | is_tag = true
337 | [[inputs.snmp.table.field]]
338 | name = "ifType"
339 | oid = "IF-MIB::ifType"
340 | [[inputs.snmp.table.field]]
341 | name = "ifMtu"
342 | oid = "IF-MIB::ifMtu"
343 | [[inputs.snmp.table.field]]
344 | name = "ifSpeed"
345 | oid = "IF-MIB::ifSpeed"
346 | [[inputs.snmp.table.field]]
347 | name = "ifPhysAddress"
348 | oid = "IF-MIB::ifPhysAddress"
349 | [[inputs.snmp.table.field]]
350 | name = "ifAdminStatus"
351 | oid = "IF-MIB::ifAdminStatus"
352 | [[inputs.snmp.table.field]]
353 | name = "ifOperStatus"
354 | oid = "IF-MIB::ifOperStatus"
355 | [[inputs.snmp.table.field]]
356 | name = "ifLastChange"
357 | oid = "IF-MIB::ifLastChange"
358 | [[inputs.snmp.table.field]]
359 | name = "ifInOctets"
360 | oid = "IF-MIB::ifInOctets"
361 | [[inputs.snmp.table.field]]
362 | name = "ifInUcastPkts"
363 | oid = "IF-MIB::ifInUcastPkts"
364 | [[inputs.snmp.table.field]]
365 | name = "ifInDiscards"
366 | oid = "IF-MIB::ifInDiscards"
367 | [[inputs.snmp.table.field]]
368 | name = "ifInErrors"
369 | oid = "IF-MIB::ifInErrors"
370 | [[inputs.snmp.table.field]]
371 | name = "ifInUnknownProtos"
372 | oid = "IF-MIB::ifInUnknownProtos"
373 | [[inputs.snmp.table.field]]
374 | name = "ifOutOctets"
375 | oid = "IF-MIB::ifOutOctets"
376 | [[inputs.snmp.table.field]]
377 | name = "ifOutUcastPkts"
378 | oid = "IF-MIB::ifOutUcastPkts"
379 | [[inputs.snmp.table.field]]
380 | name = "ifOutDiscards"
381 | oid = "IF-MIB::ifOutDiscards"
382 | [[inputs.snmp.table.field]]
383 | name = "ifOutErrors"
384 | oid = "IF-MIB::ifOutErrors"
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU General Public License is a free, copyleft license for
11 | software and other kinds of works.
12 |
13 | The licenses for most software and other practical works are designed
14 | to take away your freedom to share and change the works. By contrast,
15 | the GNU General Public License is intended to guarantee your freedom to
16 | share and change all versions of a program--to make sure it remains free
17 | software for all its users. We, the Free Software Foundation, use the
18 | GNU General Public License for most of our software; it applies also to
19 | any other work released this way by its authors. You can apply it to
20 | your programs, too.
21 |
22 | When we speak of free software, we are referring to freedom, not
23 | price. Our General Public Licenses are designed to make sure that you
24 | have the freedom to distribute copies of free software (and charge for
25 | them if you wish), that you receive source code or can get it if you
26 | want it, that you can change the software or use pieces of it in new
27 | free programs, and that you know you can do these things.
28 |
29 | To protect your rights, we need to prevent others from denying you
30 | these rights or asking you to surrender the rights. Therefore, you have
31 | certain responsibilities if you distribute copies of the software, or if
32 | you modify it: responsibilities to respect the freedom of others.
33 |
34 | For example, if you distribute copies of such a program, whether
35 | gratis or for a fee, you must pass on to the recipients the same
36 | freedoms that you received. You must make sure that they, too, receive
37 | or can get the source code. And you must show them these terms so they
38 | know their rights.
39 |
40 | Developers that use the GNU GPL protect your rights with two steps:
41 | (1) assert copyright on the software, and (2) offer you this License
42 | giving you legal permission to copy, distribute and/or modify it.
43 |
44 | For the developers' and authors' protection, the GPL clearly explains
45 | that there is no warranty for this free software. For both users' and
46 | authors' sake, the GPL requires that modified versions be marked as
47 | changed, so that their problems will not be attributed erroneously to
48 | authors of previous versions.
49 |
50 | Some devices are designed to deny users access to install or run
51 | modified versions of the software inside them, although the manufacturer
52 | can do so. This is fundamentally incompatible with the aim of
53 | protecting users' freedom to change the software. The systematic
54 | pattern of such abuse occurs in the area of products for individuals to
55 | use, which is precisely where it is most unacceptable. Therefore, we
56 | have designed this version of the GPL to prohibit the practice for those
57 | products. If such problems arise substantially in other domains, we
58 | stand ready to extend this provision to those domains in future versions
59 | of the GPL, as needed to protect the freedom of users.
60 |
61 | Finally, every program is threatened constantly by software patents.
62 | States should not allow patents to restrict development and use of
63 | software on general-purpose computers, but in those that do, we wish to
64 | avoid the special danger that patents applied to a free program could
65 | make it effectively proprietary. To prevent this, the GPL assures that
66 | patents cannot be used to render the program non-free.
67 |
68 | The precise terms and conditions for copying, distribution and
69 | modification follow.
70 |
71 | TERMS AND CONDITIONS
72 |
73 | 0. Definitions.
74 |
75 | "This License" refers to version 3 of the GNU General Public License.
76 |
77 | "Copyright" also means copyright-like laws that apply to other kinds of
78 | works, such as semiconductor masks.
79 |
80 | "The Program" refers to any copyrightable work licensed under this
81 | License. Each licensee is addressed as "you". "Licensees" and
82 | "recipients" may be individuals or organizations.
83 |
84 | To "modify" a work means to copy from or adapt all or part of the work
85 | in a fashion requiring copyright permission, other than the making of an
86 | exact copy. The resulting work is called a "modified version" of the
87 | earlier work or a work "based on" the earlier work.
88 |
89 | A "covered work" means either the unmodified Program or a work based
90 | on the Program.
91 |
92 | To "propagate" a work means to do anything with it that, without
93 | permission, would make you directly or secondarily liable for
94 | infringement under applicable copyright law, except executing it on a
95 | computer or modifying a private copy. Propagation includes copying,
96 | distribution (with or without modification), making available to the
97 | public, and in some countries other activities as well.
98 |
99 | To "convey" a work means any kind of propagation that enables other
100 | parties to make or receive copies. Mere interaction with a user through
101 | a computer network, with no transfer of a copy, is not conveying.
102 |
103 | An interactive user interface displays "Appropriate Legal Notices"
104 | to the extent that it includes a convenient and prominently visible
105 | feature that (1) displays an appropriate copyright notice, and (2)
106 | tells the user that there is no warranty for the work (except to the
107 | extent that warranties are provided), that licensees may convey the
108 | work under this License, and how to view a copy of this License. If
109 | the interface presents a list of user commands or options, such as a
110 | menu, a prominent item in the list meets this criterion.
111 |
112 | 1. Source Code.
113 |
114 | The "source code" for a work means the preferred form of the work
115 | for making modifications to it. "Object code" means any non-source
116 | form of a work.
117 |
118 | A "Standard Interface" means an interface that either is an official
119 | standard defined by a recognized standards body, or, in the case of
120 | interfaces specified for a particular programming language, one that
121 | is widely used among developers working in that language.
122 |
123 | The "System Libraries" of an executable work include anything, other
124 | than the work as a whole, that (a) is included in the normal form of
125 | packaging a Major Component, but which is not part of that Major
126 | Component, and (b) serves only to enable use of the work with that
127 | Major Component, or to implement a Standard Interface for which an
128 | implementation is available to the public in source code form. A
129 | "Major Component", in this context, means a major essential component
130 | (kernel, window system, and so on) of the specific operating system
131 | (if any) on which the executable work runs, or a compiler used to
132 | produce the work, or an object code interpreter used to run it.
133 |
134 | The "Corresponding Source" for a work in object code form means all
135 | the source code needed to generate, install, and (for an executable
136 | work) run the object code and to modify the work, including scripts to
137 | control those activities. However, it does not include the work's
138 | System Libraries, or general-purpose tools or generally available free
139 | programs which are used unmodified in performing those activities but
140 | which are not part of the work. For example, Corresponding Source
141 | includes interface definition files associated with source files for
142 | the work, and the source code for shared libraries and dynamically
143 | linked subprograms that the work is specifically designed to require,
144 | such as by intimate data communication or control flow between those
145 | subprograms and other parts of the work.
146 |
147 | The Corresponding Source need not include anything that users
148 | can regenerate automatically from other parts of the Corresponding
149 | Source.
150 |
151 | The Corresponding Source for a work in source code form is that
152 | same work.
153 |
154 | 2. Basic Permissions.
155 |
156 | All rights granted under this License are granted for the term of
157 | copyright on the Program, and are irrevocable provided the stated
158 | conditions are met. This License explicitly affirms your unlimited
159 | permission to run the unmodified Program. The output from running a
160 | covered work is covered by this License only if the output, given its
161 | content, constitutes a covered work. This License acknowledges your
162 | rights of fair use or other equivalent, as provided by copyright law.
163 |
164 | You may make, run and propagate covered works that you do not
165 | convey, without conditions so long as your license otherwise remains
166 | in force. You may convey covered works to others for the sole purpose
167 | of having them make modifications exclusively for you, or provide you
168 | with facilities for running those works, provided that you comply with
169 | the terms of this License in conveying all material for which you do
170 | not control copyright. Those thus making or running the covered works
171 | for you must do so exclusively on your behalf, under your direction
172 | and control, on terms that prohibit them from making any copies of
173 | your copyrighted material outside their relationship with you.
174 |
175 | Conveying under any other circumstances is permitted solely under
176 | the conditions stated below. Sublicensing is not allowed; section 10
177 | makes it unnecessary.
178 |
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180 |
181 | No covered work shall be deemed part of an effective technological
182 | measure under any applicable law fulfilling obligations under article
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184 | similar laws prohibiting or restricting circumvention of such
185 | measures.
186 |
187 | When you convey a covered work, you waive any legal power to forbid
188 | circumvention of technological measures to the extent such circumvention
189 | is effected by exercising rights under this License with respect to
190 | the covered work, and you disclaim any intention to limit operation or
191 | modification of the work as a means of enforcing, against the work's
192 | users, your or third parties' legal rights to forbid circumvention of
193 | technological measures.
194 |
195 | 4. Conveying Verbatim Copies.
196 |
197 | You may convey verbatim copies of the Program's source code as you
198 | receive it, in any medium, provided that you conspicuously and
199 | appropriately publish on each copy an appropriate copyright notice;
200 | keep intact all notices stating that this License and any
201 | non-permissive terms added in accord with section 7 apply to the code;
202 | keep intact all notices of the absence of any warranty; and give all
203 | recipients a copy of this License along with the Program.
204 |
205 | You may charge any price or no price for each copy that you convey,
206 | and you may offer support or warranty protection for a fee.
207 |
208 | 5. Conveying Modified Source Versions.
209 |
210 | You may convey a work based on the Program, or the modifications to
211 | produce it from the Program, in the form of source code under the
212 | terms of section 4, provided that you also meet all of these conditions:
213 |
214 | a) The work must carry prominent notices stating that you modified
215 | it, and giving a relevant date.
216 |
217 | b) The work must carry prominent notices stating that it is
218 | released under this License and any conditions added under section
219 | 7. This requirement modifies the requirement in section 4 to
220 | "keep intact all notices".
221 |
222 | c) You must license the entire work, as a whole, under this
223 | License to anyone who comes into possession of a copy. This
224 | License will therefore apply, along with any applicable section 7
225 | additional terms, to the whole of the work, and all its parts,
226 | regardless of how they are packaged. This License gives no
227 | permission to license the work in any other way, but it does not
228 | invalidate such permission if you have separately received it.
229 |
230 | d) If the work has interactive user interfaces, each must display
231 | Appropriate Legal Notices; however, if the Program has interactive
232 | interfaces that do not display Appropriate Legal Notices, your
233 | work need not make them do so.
234 |
235 | A compilation of a covered work with other separate and independent
236 | works, which are not by their nature extensions of the covered work,
237 | and which are not combined with it such as to form a larger program,
238 | in or on a volume of a storage or distribution medium, is called an
239 | "aggregate" if the compilation and its resulting copyright are not
240 | used to limit the access or legal rights of the compilation's users
241 | beyond what the individual works permit. Inclusion of a covered work
242 | in an aggregate does not cause this License to apply to the other
243 | parts of the aggregate.
244 |
245 | 6. Conveying Non-Source Forms.
246 |
247 | You may convey a covered work in object code form under the terms
248 | of sections 4 and 5, provided that you also convey the
249 | machine-readable Corresponding Source under the terms of this License,
250 | in one of these ways:
251 |
252 | a) Convey the object code in, or embodied in, a physical product
253 | (including a physical distribution medium), accompanied by the
254 | Corresponding Source fixed on a durable physical medium
255 | customarily used for software interchange.
256 |
257 | b) Convey the object code in, or embodied in, a physical product
258 | (including a physical distribution medium), accompanied by a
259 | written offer, valid for at least three years and valid for as
260 | long as you offer spare parts or customer support for that product
261 | model, to give anyone who possesses the object code either (1) a
262 | copy of the Corresponding Source for all the software in the
263 | product that is covered by this License, on a durable physical
264 | medium customarily used for software interchange, for a price no
265 | more than your reasonable cost of physically performing this
266 | conveying of source, or (2) access to copy the
267 | Corresponding Source from a network server at no charge.
268 |
269 | c) Convey individual copies of the object code with a copy of the
270 | written offer to provide the Corresponding Source. This
271 | alternative is allowed only occasionally and noncommercially, and
272 | only if you received the object code with such an offer, in accord
273 | with subsection 6b.
274 |
275 | d) Convey the object code by offering access from a designated
276 | place (gratis or for a charge), and offer equivalent access to the
277 | Corresponding Source in the same way through the same place at no
278 | further charge. You need not require recipients to copy the
279 | Corresponding Source along with the object code. If the place to
280 | copy the object code is a network server, the Corresponding Source
281 | may be on a different server (operated by you or a third party)
282 | that supports equivalent copying facilities, provided you maintain
283 | clear directions next to the object code saying where to find the
284 | Corresponding Source. Regardless of what server hosts the
285 | Corresponding Source, you remain obligated to ensure that it is
286 | available for as long as needed to satisfy these requirements.
287 |
288 | e) Convey the object code using peer-to-peer transmission, provided
289 | you inform other peers where the object code and Corresponding
290 | Source of the work are being offered to the general public at no
291 | charge under subsection 6d.
292 |
293 | A separable portion of the object code, whose source code is excluded
294 | from the Corresponding Source as a System Library, need not be
295 | included in conveying the object code work.
296 |
297 | A "User Product" is either (1) a "consumer product", which means any
298 | tangible personal property which is normally used for personal, family,
299 | or household purposes, or (2) anything designed or sold for incorporation
300 | into a dwelling. In determining whether a product is a consumer product,
301 | doubtful cases shall be resolved in favor of coverage. For a particular
302 | product received by a particular user, "normally used" refers to a
303 | typical or common use of that class of product, regardless of the status
304 | of the particular user or of the way in which the particular user
305 | actually uses, or expects or is expected to use, the product. A product
306 | is a consumer product regardless of whether the product has substantial
307 | commercial, industrial or non-consumer uses, unless such uses represent
308 | the only significant mode of use of the product.
309 |
310 | "Installation Information" for a User Product means any methods,
311 | procedures, authorization keys, or other information required to install
312 | and execute modified versions of a covered work in that User Product from
313 | a modified version of its Corresponding Source. The information must
314 | suffice to ensure that the continued functioning of the modified object
315 | code is in no case prevented or interfered with solely because
316 | modification has been made.
317 |
318 | If you convey an object code work under this section in, or with, or
319 | specifically for use in, a User Product, and the conveying occurs as
320 | part of a transaction in which the right of possession and use of the
321 | User Product is transferred to the recipient in perpetuity or for a
322 | fixed term (regardless of how the transaction is characterized), the
323 | Corresponding Source conveyed under this section must be accompanied
324 | by the Installation Information. But this requirement does not apply
325 | if neither you nor any third party retains the ability to install
326 | modified object code on the User Product (for example, the work has
327 | been installed in ROM).
328 |
329 | The requirement to provide Installation Information does not include a
330 | requirement to continue to provide support service, warranty, or updates
331 | for a work that has been modified or installed by the recipient, or for
332 | the User Product in which it has been modified or installed. Access to a
333 | network may be denied when the modification itself materially and
334 | adversely affects the operation of the network or violates the rules and
335 | protocols for communication across the network.
336 |
337 | Corresponding Source conveyed, and Installation Information provided,
338 | in accord with this section must be in a format that is publicly
339 | documented (and with an implementation available to the public in
340 | source code form), and must require no special password or key for
341 | unpacking, reading or copying.
342 |
343 | 7. Additional Terms.
344 |
345 | "Additional permissions" are terms that supplement the terms of this
346 | License by making exceptions from one or more of its conditions.
347 | Additional permissions that are applicable to the entire Program shall
348 | be treated as though they were included in this License, to the extent
349 | that they are valid under applicable law. If additional permissions
350 | apply only to part of the Program, that part may be used separately
351 | under those permissions, but the entire Program remains governed by
352 | this License without regard to the additional permissions.
353 |
354 | When you convey a copy of a covered work, you may at your option
355 | remove any additional permissions from that copy, or from any part of
356 | it. (Additional permissions may be written to require their own
357 | removal in certain cases when you modify the work.) You may place
358 | additional permissions on material, added by you to a covered work,
359 | for which you have or can give appropriate copyright permission.
360 |
361 | Notwithstanding any other provision of this License, for material you
362 | add to a covered work, you may (if authorized by the copyright holders of
363 | that material) supplement the terms of this License with terms:
364 |
365 | a) Disclaiming warranty or limiting liability differently from the
366 | terms of sections 15 and 16 of this License; or
367 |
368 | b) Requiring preservation of specified reasonable legal notices or
369 | author attributions in that material or in the Appropriate Legal
370 | Notices displayed by works containing it; or
371 |
372 | c) Prohibiting misrepresentation of the origin of that material, or
373 | requiring that modified versions of such material be marked in
374 | reasonable ways as different from the original version; or
375 |
376 | d) Limiting the use for publicity purposes of names of licensors or
377 | authors of the material; or
378 |
379 | e) Declining to grant rights under trademark law for use of some
380 | trade names, trademarks, or service marks; or
381 |
382 | f) Requiring indemnification of licensors and authors of that
383 | material by anyone who conveys the material (or modified versions of
384 | it) with contractual assumptions of liability to the recipient, for
385 | any liability that these contractual assumptions directly impose on
386 | those licensors and authors.
387 |
388 | All other non-permissive additional terms are considered "further
389 | restrictions" within the meaning of section 10. If the Program as you
390 | received it, or any part of it, contains a notice stating that it is
391 | governed by this License along with a term that is a further
392 | restriction, you may remove that term. If a license document contains
393 | a further restriction but permits relicensing or conveying under this
394 | License, you may add to a covered work material governed by the terms
395 | of that license document, provided that the further restriction does
396 | not survive such relicensing or conveying.
397 |
398 | If you add terms to a covered work in accord with this section, you
399 | must place, in the relevant source files, a statement of the
400 | additional terms that apply to those files, or a notice indicating
401 | where to find the applicable terms.
402 |
403 | Additional terms, permissive or non-permissive, may be stated in the
404 | form of a separately written license, or stated as exceptions;
405 | the above requirements apply either way.
406 |
407 | 8. Termination.
408 |
409 | You may not propagate or modify a covered work except as expressly
410 | provided under this License. Any attempt otherwise to propagate or
411 | modify it is void, and will automatically terminate your rights under
412 | this License (including any patent licenses granted under the third
413 | paragraph of section 11).
414 |
415 | However, if you cease all violation of this License, then your
416 | license from a particular copyright holder is reinstated (a)
417 | provisionally, unless and until the copyright holder explicitly and
418 | finally terminates your license, and (b) permanently, if the copyright
419 | holder fails to notify you of the violation by some reasonable means
420 | prior to 60 days after the cessation.
421 |
422 | Moreover, your license from a particular copyright holder is
423 | reinstated permanently if the copyright holder notifies you of the
424 | violation by some reasonable means, this is the first time you have
425 | received notice of violation of this License (for any work) from that
426 | copyright holder, and you cure the violation prior to 30 days after
427 | your receipt of the notice.
428 |
429 | Termination of your rights under this section does not terminate the
430 | licenses of parties who have received copies or rights from you under
431 | this License. If your rights have been terminated and not permanently
432 | reinstated, you do not qualify to receive new licenses for the same
433 | material under section 10.
434 |
435 | 9. Acceptance Not Required for Having Copies.
436 |
437 | You are not required to accept this License in order to receive or
438 | run a copy of the Program. Ancillary propagation of a covered work
439 | occurring solely as a consequence of using peer-to-peer transmission
440 | to receive a copy likewise does not require acceptance. However,
441 | nothing other than this License grants you permission to propagate or
442 | modify any covered work. These actions infringe copyright if you do
443 | not accept this License. Therefore, by modifying or propagating a
444 | covered work, you indicate your acceptance of this License to do so.
445 |
446 | 10. Automatic Licensing of Downstream Recipients.
447 |
448 | Each time you convey a covered work, the recipient automatically
449 | receives a license from the original licensors, to run, modify and
450 | propagate that work, subject to this License. You are not responsible
451 | for enforcing compliance by third parties with this License.
452 |
453 | An "entity transaction" is a transaction transferring control of an
454 | organization, or substantially all assets of one, or subdividing an
455 | organization, or merging organizations. If propagation of a covered
456 | work results from an entity transaction, each party to that
457 | transaction who receives a copy of the work also receives whatever
458 | licenses to the work the party's predecessor in interest had or could
459 | give under the previous paragraph, plus a right to possession of the
460 | Corresponding Source of the work from the predecessor in interest, if
461 | the predecessor has it or can get it with reasonable efforts.
462 |
463 | You may not impose any further restrictions on the exercise of the
464 | rights granted or affirmed under this License. For example, you may
465 | not impose a license fee, royalty, or other charge for exercise of
466 | rights granted under this License, and you may not initiate litigation
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that
468 | any patent claim is infringed by making, using, selling, offering for
469 | sale, or importing the Program or any portion of it.
470 |
471 | 11. Patents.
472 |
473 | A "contributor" is a copyright holder who authorizes use under this
474 | License of the Program or a work on which the Program is based. The
475 | work thus licensed is called the contributor's "contributor version".
476 |
477 | A contributor's "essential patent claims" are all patent claims
478 | owned or controlled by the contributor, whether already acquired or
479 | hereafter acquired, that would be infringed by some manner, permitted
480 | by this License, of making, using, or selling its contributor version,
481 | but do not include claims that would be infringed only as a
482 | consequence of further modification of the contributor version. For
483 | purposes of this definition, "control" includes the right to grant
484 | patent sublicenses in a manner consistent with the requirements of
485 | this License.
486 |
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free
488 | patent license under the contributor's essential patent claims, to
489 | make, use, sell, offer for sale, import and otherwise run, modify and
490 | propagate the contents of its contributor version.
491 |
492 | In the following three paragraphs, a "patent license" is any express
493 | agreement or commitment, however denominated, not to enforce a patent
494 | (such as an express permission to practice a patent or covenant not to
495 | sue for patent infringement). To "grant" such a patent license to a
496 | party means to make such an agreement or commitment not to enforce a
497 | patent against the party.
498 |
499 | If you convey a covered work, knowingly relying on a patent license,
500 | and the Corresponding Source of the work is not available for anyone
501 | to copy, free of charge and under the terms of this License, through a
502 | publicly available network server or other readily accessible means,
503 | then you must either (1) cause the Corresponding Source to be so
504 | available, or (2) arrange to deprive yourself of the benefit of the
505 | patent license for this particular work, or (3) arrange, in a manner
506 | consistent with the requirements of this License, to extend the patent
507 | license to downstream recipients. "Knowingly relying" means you have
508 | actual knowledge that, but for the patent license, your conveying the
509 | covered work in a country, or your recipient's use of the covered work
510 | in a country, would infringe one or more identifiable patents in that
511 | country that you have reason to believe are valid.
512 |
513 | If, pursuant to or in connection with a single transaction or
514 | arrangement, you convey, or propagate by procuring conveyance of, a
515 | covered work, and grant a patent license to some of the parties
516 | receiving the covered work authorizing them to use, propagate, modify
517 | or convey a specific copy of the covered work, then the patent license
518 | you grant is automatically extended to all recipients of the covered
519 | work and works based on it.
520 |
521 | A patent license is "discriminatory" if it does not include within
522 | the scope of its coverage, prohibits the exercise of, or is
523 | conditioned on the non-exercise of one or more of the rights that are
524 | specifically granted under this License. You may not convey a covered
525 | work if you are a party to an arrangement with a third party that is
526 | in the business of distributing software, under which you make payment
527 | to the third party based on the extent of your activity of conveying
528 | the work, and under which the third party grants, to any of the
529 | parties who would receive the covered work from you, a discriminatory
530 | patent license (a) in connection with copies of the covered work
531 | conveyed by you (or copies made from those copies), or (b) primarily
532 | for and in connection with specific products or compilations that
533 | contain the covered work, unless you entered into that arrangement,
534 | or that patent license was granted, prior to 28 March 2007.
535 |
536 | Nothing in this License shall be construed as excluding or limiting
537 | any implied license or other defenses to infringement that may
538 | otherwise be available to you under applicable patent law.
539 |
540 | 12. No Surrender of Others' Freedom.
541 |
542 | If conditions are imposed on you (whether by court order, agreement or
543 | otherwise) that contradict the conditions of this License, they do not
544 | excuse you from the conditions of this License. If you cannot convey a
545 | covered work so as to satisfy simultaneously your obligations under this
546 | License and any other pertinent obligations, then as a consequence you may
547 | not convey it at all. For example, if you agree to terms that obligate you
548 | to collect a royalty for further conveying from those to whom you convey
549 | the Program, the only way you could satisfy both those terms and this
550 | License would be to refrain entirely from conveying the Program.
551 |
552 | 13. Use with the GNU Affero General Public License.
553 |
554 | Notwithstanding any other provision of this License, you have
555 | permission to link or combine any covered work with a work licensed
556 | under version 3 of the GNU Affero General Public License into a single
557 | combined work, and to convey the resulting work. The terms of this
558 | License will continue to apply to the part which is the covered work,
559 | but the special requirements of the GNU Affero General Public License,
560 | section 13, concerning interaction through a network will apply to the
561 | combination as such.
562 |
563 | 14. Revised Versions of this License.
564 |
565 | The Free Software Foundation may publish revised and/or new versions of
566 | the GNU General Public License from time to time. Such new versions will
567 | be similar in spirit to the present version, but may differ in detail to
568 | address new problems or concerns.
569 |
570 | Each version is given a distinguishing version number. If the
571 | Program specifies that a certain numbered version of the GNU General
572 | Public License "or any later version" applies to it, you have the
573 | option of following the terms and conditions either of that numbered
574 | version or of any later version published by the Free Software
575 | Foundation. If the Program does not specify a version number of the
576 | GNU General Public License, you may choose any version ever published
577 | by the Free Software Foundation.
578 |
579 | If the Program specifies that a proxy can decide which future
580 | versions of the GNU General Public License can be used, that proxy's
581 | public statement of acceptance of a version permanently authorizes you
582 | to choose that version for the Program.
583 |
584 | Later license versions may give you additional or different
585 | permissions. However, no additional obligations are imposed on any
586 | author or copyright holder as a result of your choosing to follow a
587 | later version.
588 |
589 | 15. Disclaimer of Warranty.
590 |
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599 |
600 | 16. Limitation of Liability.
601 |
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610 | SUCH DAMAGES.
611 |
612 | 17. Interpretation of Sections 15 and 16.
613 |
614 | If the disclaimer of warranty and limitation of liability provided
615 | above cannot be given local legal effect according to their terms,
616 | reviewing courts shall apply local law that most closely approximates
617 | an absolute waiver of all civil liability in connection with the
618 | Program, unless a warranty or assumption of liability accompanies a
619 | copy of the Program in return for a fee.
620 |
621 | END OF TERMS AND CONDITIONS
622 |
623 | How to Apply These Terms to Your New Programs
624 |
625 | If you develop a new program, and you want it to be of the greatest
626 | possible use to the public, the best way to achieve this is to make it
627 | free software which everyone can redistribute and change under these terms.
628 |
629 | To do so, attach the following notices to the program. It is safest
630 | to attach them to the start of each source file to most effectively
631 | state the exclusion of warranty; and each file should have at least
632 | the "copyright" line and a pointer to where the full notice is found.
633 |
634 |
635 | Copyright (C)
636 |
637 | This program is free software: you can redistribute it and/or modify
638 | it under the terms of the GNU General Public License as published by
639 | the Free Software Foundation, either version 3 of the License, or
640 | (at your option) any later version.
641 |
642 | This program is distributed in the hope that it will be useful,
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 | GNU General Public License for more details.
646 |
647 | You should have received a copy of the GNU General Public License
648 | along with this program. If not, see .
649 |
650 | Also add information on how to contact you by electronic and paper mail.
651 |
652 | If the program does terminal interaction, make it output a short
653 | notice like this when it starts in an interactive mode:
654 |
655 | Copyright (C)
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
675 |
--------------------------------------------------------------------------------
/docker/QTS.mib:
--------------------------------------------------------------------------------
1 | QTS-MIB DEFINITIONS ::= BEGIN
2 |
3 | IMPORTS
4 | enterprises, TimeTicks
5 | FROM SNMPv2-SMI
6 | OBJECT-GROUP, MODULE-COMPLIANCE
7 | FROM SNMPv2-CONF
8 | Integer32, IpAddress, Counter64, OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY
9 | FROM SNMPv2-SMI;
10 |
11 | qnap MODULE-IDENTITY
12 | LAST-UPDATED "202002200000Z"
13 | ORGANIZATION "www.qnap.com"
14 | CONTACT-INFO
15 | "support@qnap.com"
16 | DESCRIPTION
17 | "NAS mib"
18 | REVISION "202002200000Z"
19 | DESCRIPTION
20 | "NAS mib ver 2.0"
21 | ::= { enterprises 55062 }
22 |
23 | qts OBJECT IDENTIFIER ::= { qnap 1 }
24 |
25 | -- Frame Relay Multiplexer MIB groups
26 |
27 | -- Storage
28 | storage OBJECT IDENTIFIER ::= { qts 10 }
29 |
30 | diskCount OBJECT-TYPE
31 | SYNTAX Integer32
32 | MAX-ACCESS read-only
33 | STATUS current
34 | DESCRIPTION
35 | "The number of hard drive."
36 | ::= { storage 1 }
37 | diskTable OBJECT-TYPE
38 | SYNTAX SEQUENCE OF DiskTableEntryDef
39 | MAX-ACCESS not-accessible
40 | STATUS current
41 | DESCRIPTION
42 | "A list of hard drive entries. The number of
43 | entries is given by the value of diskCount."
44 | ::= { storage 2 }
45 | diskTableEntry OBJECT-TYPE
46 | SYNTAX DiskTableEntryDef
47 | MAX-ACCESS not-accessible
48 | STATUS current
49 | DESCRIPTION
50 | "An disk entry containing objects at the disk."
51 | INDEX { diskIndex }
52 | ::= { diskTable 1 }
53 |
54 | DiskTableEntryDef ::=
55 | SEQUENCE {
56 | diskIndex Integer32 ,
57 | diskID Integer32 ,
58 | diskManufacturer OCTET STRING,
59 | diskModel OCTET STRING,
60 | diskSerialNumber OCTET STRING,
61 | diskType OCTET STRING,
62 | diskStatus OCTET STRING,
63 | diskTemperature OCTET STRING,
64 | diskCapacity Counter64
65 | }
66 | diskIndex OBJECT-TYPE
67 | SYNTAX Integer32 (1..4094)
68 | MAX-ACCESS not-accessible
69 | STATUS current
70 | DESCRIPTION
71 | "A unique value for each hard drive. Its value
72 | ranges between 1 and the value of diskCount. The
73 | value for each hard drive must remain constant at
74 | least from one re-initialization of the entity's
75 | management system to the next re-initialization."
76 | ::= { diskTableEntry 1 }
77 |
78 | diskID OBJECT-TYPE
79 | SYNTAX Integer32
80 | MAX-ACCESS read-only
81 | STATUS current
82 | DESCRIPTION
83 | "A unique value for each hard drive."
84 | ::= { diskTableEntry 2 }
85 |
86 | diskManufacturer OBJECT-TYPE
87 | SYNTAX OCTET STRING (SIZE (0..255))
88 | MAX-ACCESS read-only
89 | STATUS current
90 | DESCRIPTION
91 | "The manufacturer of hard drive."
92 | ::= { diskTableEntry 3 }
93 |
94 | diskModel OBJECT-TYPE
95 | SYNTAX OCTET STRING
96 | MAX-ACCESS read-only
97 | STATUS current
98 | DESCRIPTION
99 | "Hard disk Model"
100 | ::= { diskTableEntry 4 }
101 |
102 | diskSerialNumber OBJECT-TYPE
103 | SYNTAX OCTET STRING
104 | MAX-ACCESS read-only
105 | STATUS current
106 | DESCRIPTION
107 | "The serialNumber of hard drive."
108 | ::= { diskTableEntry 5 }
109 |
110 | diskType OBJECT-TYPE
111 | SYNTAX OCTET STRING
112 | MAX-ACCESS read-only
113 | STATUS current
114 | DESCRIPTION "The type of hard drive."
115 | ::= { diskTableEntry 6}
116 |
117 | diskStatus OBJECT-TYPE
118 | SYNTAX OCTET STRING
119 | MAX-ACCESS read-only
120 | STATUS current
121 | DESCRIPTION "The status of hard drive."
122 | ::= { diskTableEntry 7 }
123 |
124 | diskTemperature OBJECT-TYPE
125 | SYNTAX OCTET STRING
126 | MAX-ACCESS read-only
127 | STATUS current
128 | DESCRIPTION "The temperature of hard drive."
129 | ::= { diskTableEntry 8 }
130 |
131 | diskCapacity OBJECT-TYPE
132 | SYNTAX Counter64
133 | MAX-ACCESS read-only
134 | STATUS current
135 | DESCRIPTION "The capacity in byte of hard drive."
136 | ::= { diskTableEntry 9 }
137 |
138 |
139 | --raid table
140 | raidCount OBJECT-TYPE
141 | SYNTAX Integer32
142 | MAX-ACCESS read-only
143 | STATUS current
144 | DESCRIPTION
145 | "The number of RAID."
146 | ::= { storage 4 }
147 |
148 | raidTable OBJECT-TYPE
149 | SYNTAX SEQUENCE OF RaidTableEntryDef
150 | MAX-ACCESS not-accessible
151 | STATUS current
152 | DESCRIPTION
153 | "A list of RAID entries. The number of
154 | entries is given by the value of raidCount."
155 | ::= { storage 5 }
156 |
157 | raidTableEntry OBJECT-TYPE
158 | SYNTAX RaidTableEntryDef
159 | MAX-ACCESS not-accessible
160 | STATUS current
161 | DESCRIPTION
162 | "RAID table"
163 | INDEX { raidIndex }
164 | ::= { raidTable 1 }
165 |
166 | RaidTableEntryDef ::=
167 | SEQUENCE {
168 | raidIndex Integer32 ,
169 | raidID Integer32 ,
170 | raidName OCTET STRING,
171 | raidStatus OCTET STRING,
172 | raidCapacity Counter64,
173 | raidBitmap Integer32 ,
174 | raidLevel OCTET STRING
175 | }
176 | raidIndex OBJECT-TYPE
177 | SYNTAX Integer32 (0..4096)
178 | MAX-ACCESS not-accessible
179 | STATUS current
180 | DESCRIPTION
181 | "A unique value for each RAID. Its value
182 | ranges between 1 and the value of raidCount. The
183 | value for each RAID must remain constant at
184 | least from one re-initialization of the entity's
185 | RAID to the next re-initialization."
186 | ::= { raidTableEntry 1 }
187 |
188 | raidID OBJECT-TYPE
189 | SYNTAX Integer32
190 | MAX-ACCESS read-only
191 | STATUS current
192 | DESCRIPTION
193 | "A unique value for each RAID."
194 | ::= { raidTableEntry 2 }
195 |
196 | raidName OBJECT-TYPE
197 | SYNTAX OCTET STRING (SIZE (0..255))
198 | MAX-ACCESS read-only
199 | STATUS current
200 | DESCRIPTION
201 | "The name of RAID"
202 | ::= { raidTableEntry 3 }
203 |
204 | raidStatus OBJECT-TYPE
205 | SYNTAX OCTET STRING (SIZE (0..255))
206 | MAX-ACCESS read-only
207 | STATUS current
208 | DESCRIPTION
209 | "The status of RAID"
210 | ::= { raidTableEntry 4 }
211 |
212 | raidCapacity OBJECT-TYPE
213 | SYNTAX Counter64
214 | MAX-ACCESS read-only
215 | STATUS current
216 | DESCRIPTION "The total capacity in byte of RAID."
217 | ::= { raidTableEntry 5 }
218 |
219 | raidBitmap OBJECT-TYPE
220 | SYNTAX Integer32
221 | MAX-ACCESS read-only
222 | STATUS current
223 | DESCRIPTION
224 | "RAID bit map"
225 | ::= { raidTableEntry 6 }
226 |
227 | raidLevel OBJECT-TYPE
228 | SYNTAX OCTET STRING (SIZE (0..255))
229 | MAX-ACCESS read-only
230 | STATUS current
231 | DESCRIPTION
232 | "RAID level"
233 | ::= { raidTableEntry 7 }
234 |
235 | -- pool
236 | storagepoolCount OBJECT-TYPE
237 | SYNTAX Integer32
238 | MAX-ACCESS read-only
239 | STATUS current
240 | DESCRIPTION
241 | "The number of pool."
242 | ::= { storage 6 }
243 |
244 | storagepoolTable OBJECT-TYPE
245 | SYNTAX SEQUENCE OF StoragepoolTableEntryDef
246 | MAX-ACCESS not-accessible
247 | STATUS current
248 | DESCRIPTION
249 | "A list of storage pool entries. The number of
250 | entries is given by the value of storagepoolCount."
251 | ::= { storage 7 }
252 |
253 | storagepoolTableEntry OBJECT-TYPE
254 | SYNTAX StoragepoolTableEntryDef
255 | MAX-ACCESS not-accessible
256 | STATUS current
257 | DESCRIPTION
258 | "Pool table"
259 | INDEX { storagepoolIndex }
260 | ::= { storagepoolTable 1 }
261 |
262 | StoragepoolTableEntryDef ::=
263 | SEQUENCE {
264 | storagepoolIndex Integer32 ,
265 | storagepoolID Integer32 ,
266 | storagepoolCapacity Counter64,
267 | storagepoolFreeSize Counter64,
268 | storagepoolStatus Integer32
269 | }
270 | storagepoolIndex OBJECT-TYPE
271 | SYNTAX Integer32 (0..4096)
272 | MAX-ACCESS not-accessible
273 | STATUS current
274 | DESCRIPTION
275 | "A unique value for each storage pool. Its value
276 | ranges between 1 and the value of storagepoolCount. The
277 | value for each interface must remain constant at
278 | least from one re-initialization of the entity's
279 | Pool to the next re-initialization."
280 | ::= { storagepoolTableEntry 1 }
281 |
282 | storagepoolID OBJECT-TYPE
283 | SYNTAX Integer32
284 | MAX-ACCESS read-only
285 | STATUS current
286 | DESCRIPTION
287 | "Pool ID"
288 | ::= { storagepoolTableEntry 2 }
289 |
290 | storagepoolCapacity OBJECT-TYPE
291 | SYNTAX Counter64
292 | MAX-ACCESS read-only
293 | STATUS current
294 | DESCRIPTION "Pool capacity in byte."
295 | ::= { storagepoolTableEntry 3 }
296 |
297 | storagepoolFreeSize OBJECT-TYPE
298 | SYNTAX Counter64
299 | MAX-ACCESS read-only
300 | STATUS current
301 | DESCRIPTION "Pool free size in byte."
302 | ::= { storagepoolTableEntry 4 }
303 |
304 | storagepoolStatus OBJECT-TYPE
305 | SYNTAX INTEGER {
306 | error(-3),
307 | notReady(-2),
308 | warning(-1),
309 | ready(0)
310 | }
311 | MAX-ACCESS read-only
312 | STATUS current
313 | DESCRIPTION
314 | "
315 | ** QuTS version
316 | SED_LOCKED = -6,
317 | DETACHING = -5,
318 | REMOVING = -4,
319 | ERROR = -3,
320 | NOT_READY = -2,
321 | WARNING = -1,
322 | READY = 0,
323 | ENABLE_QTIER = 1,
324 | SED_LOCKING = 2,
325 | SED_UNLOCKING = 3,
326 | KS-Redmine#39712.
327 | REMOVING_TIER = 4,
328 | NONE_STATUS = 0xFF,
329 |
330 | ** for QuHERO version
331 | SED_LOCKED = -4,
332 | ERROR = -3,
333 | NOT_READY = -2,
334 | WARNING = -1,
335 | READY = 0,
336 | RESILVERING = 1,
337 | EXPORTING = 2,
338 | REMOVING = 3,
339 | SCRUBBING = 4,
340 | CREATING = 5,
341 | SED_LOCKING = 6,
342 | SED_UNLOCKING = 7,
343 | STOPPING = 8,
344 | STOPPED = 9,
345 | STARTING = 10,
346 | IMPORTING = 11,
347 | READONLY = 12,
348 | PRUNING = 13,
349 | TUNING = 14,
350 | NONE_STATUS = 0xFF,"
351 | ::= { storagepoolTableEntry 5}
352 |
353 | --volume
354 | volumeCount OBJECT-TYPE
355 | SYNTAX Integer32
356 | MAX-ACCESS read-only
357 | STATUS current
358 | DESCRIPTION
359 | "The number of system volumes (regardless of
360 | their current state) present on this system."
361 | ::= { storage 8 }
362 |
363 | volumeTable OBJECT-TYPE
364 | SYNTAX SEQUENCE OF VolumeTableEntryDef
365 | MAX-ACCESS not-accessible
366 | STATUS current
367 | DESCRIPTION
368 | "A list of volume entries. The number of
369 | entries is given by the value of SysVolumeNumber."
370 | ::= { storage 9 }
371 |
372 | volumeTableEntry OBJECT-TYPE
373 | SYNTAX VolumeTableEntryDef
374 | MAX-ACCESS not-accessible
375 | STATUS current
376 | DESCRIPTION
377 | "An system volume entry"
378 | INDEX { volumeIndex }
379 | ::= { volumeTable 1 }
380 |
381 | VolumeTableEntryDef ::=
382 | SEQUENCE {
383 | volumeIndex Integer32 ,
384 | volumeID Integer32 ,
385 | volumeCapacity Counter64,
386 | volumeFreeSize Counter64,
387 | volumeStatus OCTET STRING,
388 | volumeSSDCache Integer32 ,
389 | volumeThin Integer32 ,
390 | volumeName OCTET STRING
391 | }
392 | volumeIndex OBJECT-TYPE
393 | SYNTAX Integer32 (0..4096)
394 | MAX-ACCESS not-accessible
395 | STATUS current
396 | DESCRIPTION
397 | "A unique value for each system volume. Its value
398 | ranges between 1 and the value of volumeCount. The
399 | value for each volume must remain constant at
400 | least from one re-initialization of the entity's
401 | volume system to the next re-initialization."
402 | ::= { volumeTableEntry 1 }
403 |
404 | volumeID OBJECT-TYPE
405 | SYNTAX Integer32
406 | MAX-ACCESS read-only
407 | STATUS current
408 | DESCRIPTION
409 | "volume ID"
410 | ::= { volumeTableEntry 2 }
411 |
412 | volumeCapacity OBJECT-TYPE
413 | SYNTAX Counter64
414 | MAX-ACCESS read-only
415 | STATUS current
416 | DESCRIPTION "System Volume total size in byte."
417 | ::= { volumeTableEntry 3 }
418 |
419 | volumeFreeSize OBJECT-TYPE
420 | SYNTAX Counter64
421 | MAX-ACCESS read-only
422 | STATUS current
423 | DESCRIPTION "System Volume free size in byte."
424 | ::= { volumeTableEntry 4 }
425 |
426 | volumeStatus OBJECT-TYPE
427 | SYNTAX OCTET STRING (SIZE (0..255))
428 | MAX-ACCESS read-only
429 | STATUS current
430 | DESCRIPTION "Volume status"
431 | ::= { volumeTableEntry 5 }
432 |
433 | volumeSSDCache OBJECT-TYPE
434 | SYNTAX Integer32
435 | MAX-ACCESS read-only
436 | STATUS current
437 | DESCRIPTION "If volume enable SSDCache acceleration."
438 | ::= { volumeTableEntry 6 }
439 |
440 | volumeThin OBJECT-TYPE
441 | SYNTAX Integer32
442 | MAX-ACCESS read-only
443 | STATUS current
444 | DESCRIPTION "If volume is thin type."
445 | ::= { volumeTableEntry 7 }
446 |
447 | volumeName OBJECT-TYPE
448 | SYNTAX OCTET STRING (SIZE (0..255))
449 | MAX-ACCESS read-only
450 | STATUS current
451 | DESCRIPTION "Volume Name."
452 | ::= { volumeTableEntry 8 }
453 |
454 | --cache
455 | cacheAccelerationServiceEnabled OBJECT-TYPE
456 | SYNTAX INTEGER {
457 | no(0),
458 | yes(1)
459 | }
460 | MAX-ACCESS read-only
461 | STATUS current
462 | DESCRIPTION
463 | "If acceleration service of cache is enabled."
464 | ::= { storage 10 }
465 |
466 | cacheAvailablePercent OBJECT-TYPE
467 | SYNTAX Integer32
468 | MAX-ACCESS read-only
469 | STATUS current
470 | DESCRIPTION
471 | "Available percent of cache."
472 | ::= { storage 11 }
473 |
474 | cacheReadHitRate OBJECT-TYPE
475 | SYNTAX Integer32
476 | MAX-ACCESS read-only
477 | STATUS current
478 | DESCRIPTION
479 | "Read hit rate percent of cache."
480 | ::= { storage 12 }
481 |
482 | cacheWriteHitRate OBJECT-TYPE
483 | SYNTAX Integer32
484 | MAX-ACCESS read-only
485 | STATUS current
486 | DESCRIPTION
487 | "Write hit rate percent of cache."
488 | ::= { storage 13 }
489 |
490 | cacheStatus OBJECT-TYPE
491 | SYNTAX Integer32
492 | MAX-ACCESS read-only
493 | STATUS current
494 | DESCRIPTION
495 | "Status of cache."
496 | ::= { storage 14 }
497 |
498 | cacheType OBJECT-TYPE
499 | SYNTAX INTEGER
500 | {
501 | readOnly (0),
502 | readWrite (1),
503 | writeOnly (2)
504 | }
505 | MAX-ACCESS read-only
506 | STATUS current
507 | DESCRIPTION
508 | "Cache Type. 0: Read-Only, 1: Read-Write, 2: Write-Only"
509 | ::= { storage 15 }
510 |
511 | cacheRAIDType OBJECT-TYPE
512 | SYNTAX OCTET STRING
513 | MAX-ACCESS read-only
514 | STATUS current
515 | DESCRIPTION
516 | "RAID Type : Single, RAID 0, RAID 1, RAID 5, etc"
517 | ::= { storage 16 }
518 |
519 | cacheMode OBJECT-TYPE
520 | SYNTAX OCTET STRING
521 | MAX-ACCESS read-only
522 | STATUS current
523 | DESCRIPTION
524 | "Random I/O, All I/O"
525 | ::= { storage 17 }
526 |
527 | iSCSIServiceEnabled OBJECT-TYPE
528 | SYNTAX INTEGER {
529 | no(0),
530 | yes(1)
531 | }
532 | MAX-ACCESS read-only
533 | STATUS current
534 | DESCRIPTION "iSCSI Service enable or not."
535 | ::= { storage 18 }
536 |
537 | iSCSIServicePort OBJECT-TYPE
538 | SYNTAX Integer32
539 | MAX-ACCESS read-only
540 | STATUS current
541 | DESCRIPTION "iSCSI Service Port."
542 | ::= { storage 23 }
543 |
544 | iSNSService OBJECT-TYPE
545 | SYNTAX INTEGER {
546 | no(0),
547 | yes(1)
548 | }
549 | MAX-ACCESS read-only
550 | STATUS current
551 | DESCRIPTION "iSNS Service."
552 | ::= { storage 24 }
553 |
554 | iSNSIP OBJECT-TYPE
555 | SYNTAX IpAddress
556 | MAX-ACCESS read-only
557 | STATUS current
558 | DESCRIPTION "iSNS IP."
559 | ::= { storage 25 }
560 |
561 | lunCount OBJECT-TYPE
562 | SYNTAX Integer32
563 | MAX-ACCESS read-only
564 | STATUS current
565 | DESCRIPTION
566 | "The number of LUNs (regardless of
567 | their current state) present on this system."
568 | ::= { storage 19 }
569 |
570 | lunTable OBJECT-TYPE
571 | SYNTAX SEQUENCE OF LUNTableEntryDef
572 | MAX-ACCESS not-accessible
573 | STATUS current
574 | DESCRIPTION
575 | "LUN table"
576 | ::= { storage 20 }
577 |
578 | lunTableEntry OBJECT-TYPE
579 | SYNTAX LUNTableEntryDef
580 | MAX-ACCESS not-accessible
581 | STATUS current
582 | DESCRIPTION
583 | "An LUN entry."
584 | INDEX { lunIndex }
585 | ::= { lunTable 1 }
586 |
587 | LUNTableEntryDef ::=
588 | SEQUENCE {
589 | lunIndex Integer32 ,
590 | lunID Integer32 ,
591 | lunCapacity Counter64,
592 | lunUsedPercent Integer32 ,
593 | lunStatus OCTET STRING,
594 | lunName OCTET STRING,
595 | lunBackupStatus INTEGER ,
596 | lunIsMap INTEGER
597 | }
598 | lunIndex OBJECT-TYPE
599 | SYNTAX Integer32 (0..4096)
600 | MAX-ACCESS not-accessible
601 | STATUS current
602 | DESCRIPTION "LUN Index."
603 | ::= { lunTableEntry 1 }
604 |
605 | lunID OBJECT-TYPE
606 | SYNTAX Integer32
607 | MAX-ACCESS read-only
608 | STATUS current
609 | DESCRIPTION "LUN ID."
610 | ::= { lunTableEntry 2 }
611 |
612 | lunCapacity OBJECT-TYPE
613 | SYNTAX Counter64
614 | MAX-ACCESS read-only
615 | STATUS current
616 | DESCRIPTION "LUN capacity in byte."
617 | ::= { lunTableEntry 3 }
618 |
619 | lunUsedPercent OBJECT-TYPE
620 | SYNTAX Integer32
621 | MAX-ACCESS read-only
622 | STATUS current
623 | DESCRIPTION "LUN used percent."
624 | ::= { lunTableEntry 4 }
625 |
626 | lunStatus OBJECT-TYPE
627 | SYNTAX OCTET STRING (SIZE (0..255))
628 | MAX-ACCESS read-only
629 | STATUS current
630 | DESCRIPTION "LUN status."
631 | ::= { lunTableEntry 5 }
632 |
633 | lunName OBJECT-TYPE
634 | SYNTAX OCTET STRING (SIZE (0..255))
635 | MAX-ACCESS read-only
636 | STATUS current
637 | DESCRIPTION "LUN name."
638 | ::= { lunTableEntry 6 }
639 |
640 | lunBackupStatus OBJECT-TYPE
641 | SYNTAX INTEGER {
642 | none(0),
643 | backup(1),
644 | restore(2),
645 | snapshot(3)
646 | }
647 | MAX-ACCESS read-only
648 | STATUS current
649 | DESCRIPTION "LUN backup status."
650 | ::= { lunTableEntry 7 }
651 |
652 | lunIsMap OBJECT-TYPE
653 | SYNTAX INTEGER {
654 | unmapped(0),
655 | mapped(1)
656 | }
657 | MAX-ACCESS read-only
658 | STATUS current
659 | DESCRIPTION "LUN is Mapped or not."
660 | ::= { lunTableEntry 8 }
661 |
662 | targetCount OBJECT-TYPE
663 | SYNTAX Integer32
664 | MAX-ACCESS read-only
665 | STATUS current
666 | DESCRIPTION
667 | "The number of Targets (regardless of
668 | their current state) present on this system."
669 | ::= { storage 21 }
670 |
671 | targeTable OBJECT-TYPE
672 | SYNTAX SEQUENCE OF TargeTableEntryDef
673 | MAX-ACCESS not-accessible
674 | STATUS current
675 | DESCRIPTION
676 | "A list of Target entries. The number of
677 | entries is given by the value of TargetNumber."
678 | ::= { storage 22 }
679 |
680 | targeTableEntry OBJECT-TYPE
681 | SYNTAX TargeTableEntryDef
682 | MAX-ACCESS not-accessible
683 | STATUS current
684 | DESCRIPTION
685 | "A target entry."
686 | INDEX { targetIndex }
687 | ::= { targeTable 1 }
688 |
689 | TargeTableEntryDef ::=
690 | SEQUENCE {
691 | targetIndex Integer32 ,
692 | targetID Integer32 ,
693 | targetName OCTET STRING,
694 | targetIQN OCTET STRING,
695 | targetServerIP OCTET STRING,
696 | targetStatus INTEGER
697 | }
698 |
699 | targetIndex OBJECT-TYPE
700 | SYNTAX Integer32 (0..4096)
701 | MAX-ACCESS not-accessible
702 | STATUS current
703 | DESCRIPTION "TargetIndex."
704 | ::= { targeTableEntry 1 }
705 |
706 | targetID OBJECT-TYPE
707 | SYNTAX Integer32
708 | MAX-ACCESS read-only
709 | STATUS current
710 | DESCRIPTION "Target ID."
711 | ::= { targeTableEntry 2 }
712 |
713 | targetName OBJECT-TYPE
714 | SYNTAX OCTET STRING (SIZE (0..255))
715 | MAX-ACCESS read-only
716 | STATUS current
717 | DESCRIPTION "Target name."
718 | ::= { targeTableEntry 3 }
719 |
720 | targetIQN OBJECT-TYPE
721 | SYNTAX OCTET STRING (SIZE (0..255))
722 | MAX-ACCESS read-only
723 | STATUS current
724 | DESCRIPTION "TargetIQN."
725 | ::= { targeTableEntry 4 }
726 |
727 | targetServerIP OBJECT-TYPE
728 | SYNTAX OCTET STRING (SIZE (0..255))
729 | MAX-ACCESS read-only
730 | STATUS current
731 | DESCRIPTION "Target Server IP Address."
732 | ::= { targeTableEntry 5 }
733 |
734 | targetStatus OBJECT-TYPE
735 | SYNTAX INTEGER {
736 | offline(-1),
737 | ready(0),
738 | connected(1)
739 | }
740 | MAX-ACCESS read-only
741 | STATUS current
742 | DESCRIPTION "Target status."
743 | ::= { targeTableEntry 6 }
744 |
745 | --FC
746 | fiberChannelPortsCount OBJECT-TYPE
747 | SYNTAX Integer32
748 | MAX-ACCESS read-only
749 | STATUS current
750 | DESCRIPTION
751 | "The number of Targets (regardless of their current state) present on this system."
752 | ::= { storage 27 }
753 |
754 | fcPortsTable OBJECT-TYPE
755 | SYNTAX SEQUENCE OF FCPortsTableEntryDef
756 | MAX-ACCESS not-accessible
757 | STATUS current
758 | DESCRIPTION
759 | "A list of msatadisks. The number of
760 | entries is given by the value of msataDiskNumber."
761 | ::= { storage 28 }
762 | fcPortsTableEntry OBJECT-TYPE
763 | SYNTAX FCPortsTableEntryDef
764 | MAX-ACCESS not-accessible
765 | STATUS current
766 | DESCRIPTION
767 | "A fc ports entry."
768 | INDEX { fcPortIndex }
769 | ::= { fcPortsTable 1 }
770 | FCPortsTableEntryDef ::=
771 | SEQUENCE {
772 | fcPortIndex Integer32 ,
773 | fcAdapter OCTET STRING,
774 | fcAdapterManufacturer OCTET STRING,
775 | fcStatus OCTET STRING,
776 | fcAdapterSpeed OCTET STRING,
777 | fcPortWWPN OCTET STRING,
778 | fcPortAlias OCTET STRING,
779 | fcPortInitiators Integer32
780 | }
781 | fcPortIndex OBJECT-TYPE
782 | SYNTAX Integer32 (0..4096)
783 | MAX-ACCESS not-accessible
784 | STATUS current
785 | DESCRIPTION "fcPortIndex."
786 | ::= { fcPortsTableEntry 1 }
787 |
788 | fcAdapter OBJECT-TYPE
789 | SYNTAX OCTET STRING
790 | MAX-ACCESS read-only
791 | STATUS current
792 | DESCRIPTION "fcAdapter."
793 | ::= { fcPortsTableEntry 2 }
794 |
795 | fcAdapterManufacturer OBJECT-TYPE
796 | SYNTAX OCTET STRING
797 | MAX-ACCESS read-only
798 | STATUS current
799 | DESCRIPTION "fcAdapterManufacturer."
800 | ::= { fcPortsTableEntry 3 }
801 |
802 | fcStatus OBJECT-TYPE
803 | SYNTAX OCTET STRING
804 | MAX-ACCESS read-only
805 | STATUS current
806 | DESCRIPTION "fcStatus."
807 | ::= { fcPortsTableEntry 4 }
808 |
809 | fcAdapterSpeed OBJECT-TYPE
810 | SYNTAX OCTET STRING
811 | MAX-ACCESS read-only
812 | STATUS current
813 | DESCRIPTION "fcAdapterSpeed."
814 | ::= { fcPortsTableEntry 5 }
815 |
816 | fcPortWWPN OBJECT-TYPE
817 | SYNTAX OCTET STRING
818 | MAX-ACCESS read-only
819 | STATUS current
820 | DESCRIPTION "fcPortWWPN."
821 | ::= { fcPortsTableEntry 6 }
822 |
823 | fcPortAlias OBJECT-TYPE
824 | SYNTAX OCTET STRING
825 | MAX-ACCESS read-only
826 | STATUS current
827 | DESCRIPTION "fcPortAlias."
828 | ::= { fcPortsTableEntry 7 }
829 |
830 | fcPortInitiators OBJECT-TYPE
831 | SYNTAX Integer32
832 | MAX-ACCESS read-only
833 | STATUS current
834 | DESCRIPTION "fcPortInitiators."
835 | ::= { fcPortsTableEntry 8 }
836 |
837 | fcPortGroupCount OBJECT-TYPE
838 | SYNTAX Integer32
839 | MAX-ACCESS read-only
840 | STATUS current
841 | DESCRIPTION
842 | "The number of Targets (regardless of their current state) present on this system."
843 | ::= { storage 29 }
844 |
845 | fcPortGroupTable OBJECT-TYPE
846 | SYNTAX SEQUENCE OF FCPortsGroupTableEntryDef
847 | MAX-ACCESS not-accessible
848 | STATUS current
849 | DESCRIPTION
850 | "A list of msatadisks. The number of
851 | entries is given by the value of msataDiskNumber."
852 | ::= { storage 30 }
853 | fcPortGroupTableEntry OBJECT-TYPE
854 | SYNTAX FCPortsGroupTableEntryDef
855 | MAX-ACCESS not-accessible
856 | STATUS current
857 | DESCRIPTION
858 | "A fc ports entry."
859 | INDEX { fcPortIndex }
860 | ::= { fcPortGroupTable 1 }
861 | FCPortsGroupTableEntryDef ::=
862 | SEQUENCE {
863 | fcPortGrouptIndex Integer32,
864 | fcPortGroupName OCTET STRING,
865 | fcPortGroupType OCTET STRING,
866 | fcPortGroupStorageCapacity Counter64,
867 | fcPortGroupStorageAllocation Counter64,
868 | fcPortGroupStatus OCTET STRING
869 | }
870 | fcPortGrouptIndex OBJECT-TYPE
871 | SYNTAX Integer32 (0..4096)
872 | MAX-ACCESS not-accessible
873 | STATUS current
874 | DESCRIPTION "fcPortGrouptIndex."
875 | ::= { fcPortGroupTableEntry 1 }
876 |
877 | fcPortGroupName OBJECT-TYPE
878 | SYNTAX OCTET STRING
879 | MAX-ACCESS read-only
880 | STATUS current
881 | DESCRIPTION "fcPortGroupName."
882 | ::= { fcPortGroupTableEntry 2 }
883 |
884 | fcPortGroupType OBJECT-TYPE
885 | SYNTAX OCTET STRING
886 | MAX-ACCESS read-only
887 | STATUS current
888 | DESCRIPTION "fcPortGroupType."
889 | ::= { fcPortGroupTableEntry 3 }
890 |
891 | fcPortGroupStorageCapacity OBJECT-TYPE
892 | SYNTAX Counter64
893 | MAX-ACCESS read-only
894 | STATUS current
895 | DESCRIPTION "fcPortGroupStorageCapacity."
896 | ::= { fcPortGroupTableEntry 4 }
897 |
898 | fcPortGroupStorageAllocation OBJECT-TYPE
899 | SYNTAX Counter64
900 | MAX-ACCESS read-only
901 | STATUS current
902 | DESCRIPTION "fcPortGroupStorageAllocation."
903 | ::= { fcPortGroupTableEntry 5 }
904 |
905 | fcPortGroupStatus OBJECT-TYPE
906 | SYNTAX OCTET STRING
907 | MAX-ACCESS read-only
908 | STATUS current
909 | DESCRIPTION "fcPortGroupStatus."
910 | ::= { fcPortGroupTableEntry 6 }
911 |
912 | -- msataDiskTable
913 | msataDiskCount OBJECT-TYPE
914 | SYNTAX Integer32
915 | MAX-ACCESS read-only
916 | STATUS current
917 | DESCRIPTION
918 | "The number of msatadisks (regardless of
919 | their current state) present on this system."
920 | ::= { storage 31 }
921 |
922 | msataDiskTable OBJECT-TYPE
923 | SYNTAX SEQUENCE OF MsataDiskTableEntryDef
924 | MAX-ACCESS not-accessible
925 | STATUS current
926 | DESCRIPTION
927 | "A list of msatadisks. The number of
928 | entries is given by the value of msataDiskNumber."
929 | ::= { storage 32 }
930 |
931 | msataDiskTableEntry OBJECT-TYPE
932 | SYNTAX MsataDiskTableEntryDef
933 | MAX-ACCESS not-accessible
934 | STATUS current
935 | DESCRIPTION
936 | "A disk entry."
937 | INDEX { msataDiskIndex }
938 | ::= { msataDiskTable 1 }
939 |
940 | MsataDiskTableEntryDef ::=
941 | SEQUENCE {
942 | msataDiskIndex Integer32 ,
943 | msataDiskID Integer32 ,
944 | msataDiskEnclosureID Integer32 ,
945 | msataDiskSummary OCTET STRING,
946 | msataDiskSmartInfo INTEGER ,
947 | msataDiskTemperture Integer32 ,
948 | msataDiskGlobalSpare INTEGER ,
949 | msataDiskModel OCTET STRING,
950 | msataDiskCapacity Counter64
951 | }
952 | msataDiskIndex OBJECT-TYPE
953 | SYNTAX Integer32 (0..4096)
954 | MAX-ACCESS not-accessible
955 | STATUS current
956 | DESCRIPTION "DiskIndex."
957 | ::= { msataDiskTableEntry 1 }
958 |
959 | msataDiskID OBJECT-TYPE
960 | SYNTAX Integer32
961 | MAX-ACCESS read-only
962 | STATUS current
963 | DESCRIPTION "mSATA DiskID."
964 | ::= { msataDiskTableEntry 2 }
965 |
966 | msataDiskEnclosureID OBJECT-TYPE
967 | SYNTAX Integer32
968 | MAX-ACCESS read-only
969 | STATUS current
970 | DESCRIPTION "mSATA disk EnclosureID."
971 | ::= { msataDiskTableEntry 3 }
972 |
973 | msataDiskSummary OBJECT-TYPE
974 | SYNTAX OCTET STRING (SIZE (0..255))
975 | MAX-ACCESS read-only
976 | STATUS current
977 | DESCRIPTION "mSATA Disk status summary. 'Good',''Warning','Abnormal'"
978 | ::= { msataDiskTableEntry 4 }
979 |
980 | msataDiskSmartInfo OBJECT-TYPE
981 | SYNTAX INTEGER {
982 | error(-1),
983 | good(0),
984 | warning(1),
985 | abnormal(2)
986 | }
987 | MAX-ACCESS read-only
988 | STATUS current
989 | DESCRIPTION "mSATA Disk smart information."
990 | ::= { msataDiskTableEntry 5 }
991 |
992 | msataDiskTemperture OBJECT-TYPE
993 | SYNTAX Integer32
994 | MAX-ACCESS read-only
995 | STATUS current
996 | DESCRIPTION "mSATA Disk temperture."
997 | ::= { msataDiskTableEntry 6 }
998 |
999 | msataDiskGlobalSpare OBJECT-TYPE
1000 | SYNTAX INTEGER {
1001 | no(0),
1002 | yes(1)
1003 | }
1004 | MAX-ACCESS read-only
1005 | STATUS current
1006 | DESCRIPTION "mSATA Disk global spare."
1007 | ::= { msataDiskTableEntry 7 }
1008 |
1009 | msataDiskModel OBJECT-TYPE
1010 | SYNTAX OCTET STRING (SIZE (0..255))
1011 | MAX-ACCESS read-only
1012 | STATUS current
1013 | DESCRIPTION "mSATA Disk model."
1014 | ::= { msataDiskTableEntry 8 }
1015 |
1016 | msataDiskCapacity OBJECT-TYPE
1017 | SYNTAX Counter64
1018 | MAX-ACCESS read-only
1019 | STATUS current
1020 | DESCRIPTION "mSATA Disk Capacity in bytes."
1021 | ::= { msataDiskTableEntry 9 }
1022 |
1023 | enclosurelCount OBJECT-TYPE
1024 | SYNTAX Integer32
1025 | MAX-ACCESS read-only
1026 | STATUS current
1027 | DESCRIPTION
1028 | "The number of Enclosures (regardless of
1029 | their current state) present on this system."
1030 | ::= { storage 33 }
1031 |
1032 | enclosureTable OBJECT-TYPE
1033 | SYNTAX SEQUENCE OF EnclosureTableEntryDef
1034 | MAX-ACCESS not-accessible
1035 | STATUS current
1036 | DESCRIPTION
1037 | "A list of enclosures. The number of
1038 | entries is given by the value of EnclosureNumber."
1039 | ::= { storage 34 }
1040 | enclosureTableEntry OBJECT-TYPE
1041 | SYNTAX EnclosureTableEntryDef
1042 | MAX-ACCESS not-accessible
1043 | STATUS current
1044 | DESCRIPTION
1045 | "An enclosure entry."
1046 | INDEX { enclosureIndex }
1047 | ::= { enclosureTable 1 }
1048 | EnclosureTableEntryDef ::=
1049 | SEQUENCE {
1050 | enclosureIndex Integer32 ,
1051 | enclosureID Integer32 ,
1052 | enclosureModel OCTET STRING,
1053 | enclosureSerialNum OCTET STRING,
1054 | enclosureSlot Integer32 ,
1055 | enclosureName OCTET STRING,
1056 | enclosureSystemTemp Integer32
1057 | }
1058 |
1059 | enclosureIndex OBJECT-TYPE
1060 | SYNTAX Integer32 (0..4096)
1061 | MAX-ACCESS not-accessible
1062 | STATUS current
1063 | DESCRIPTION "EnclosureIndex."
1064 | ::= { enclosureTableEntry 1 }
1065 |
1066 | enclosureID OBJECT-TYPE
1067 | SYNTAX Integer32
1068 | MAX-ACCESS read-only
1069 | STATUS current
1070 | DESCRIPTION "enclosureID."
1071 | ::= { enclosureTableEntry 2 }
1072 |
1073 | enclosureModel OBJECT-TYPE
1074 | SYNTAX OCTET STRING (SIZE (0..255))
1075 | MAX-ACCESS read-only
1076 | STATUS current
1077 | DESCRIPTION "EnclosureModel."
1078 | ::= { enclosureTableEntry 3 }
1079 |
1080 | enclosureSerialNum OBJECT-TYPE
1081 | SYNTAX OCTET STRING (SIZE (0..255))
1082 | MAX-ACCESS read-only
1083 | STATUS current
1084 | DESCRIPTION "EnclosureSerialNum."
1085 | ::= { enclosureTableEntry 4 }
1086 |
1087 | enclosureSlot OBJECT-TYPE
1088 | SYNTAX Integer32
1089 | MAX-ACCESS read-only
1090 | STATUS current
1091 | DESCRIPTION "EnclosureSlot."
1092 | ::= { enclosureTableEntry 5 }
1093 |
1094 | enclosureName OBJECT-TYPE
1095 | SYNTAX OCTET STRING
1096 | MAX-ACCESS read-only
1097 | STATUS current
1098 | DESCRIPTION "Enclosure Name."
1099 | ::= { enclosureTableEntry 6 }
1100 |
1101 | enclosureSystemTemp OBJECT-TYPE
1102 | SYNTAX Integer32
1103 | MAX-ACCESS read-only
1104 | STATUS current
1105 | DESCRIPTION "Enclosure System temperature in centigrade."
1106 | ::= { enclosureTableEntry 7 }
1107 |
1108 |
1109 |
1110 | -- diskSMARTInfoTable
1111 |
1112 | diskSMARTInfoTable OBJECT-TYPE
1113 | SYNTAX SEQUENCE OF DiskSMARTInfoTableEntryDef
1114 | MAX-ACCESS not-accessible
1115 | STATUS current
1116 | DESCRIPTION
1117 | "Disk smart information table."
1118 | ::= { storage 3 }
1119 | diskSMARTInfoTableEntry OBJECT-TYPE
1120 | SYNTAX DiskSMARTInfoTableEntryDef
1121 | MAX-ACCESS not-accessible
1122 | STATUS current
1123 | DESCRIPTION
1124 | "A smartinfo entry."
1125 | INDEX { diskSMARTInfoIndex }
1126 | ::= { diskSMARTInfoTable 1 }
1127 | DiskSMARTInfoTableEntryDef ::=
1128 | SEQUENCE {
1129 | diskSMARTInfoIndex Integer32 ,
1130 | diskSMARTInfoDeviceName OCTET STRING,
1131 | diskSMARTInfoAttributeName OCTET STRING,
1132 | diskSMARTInfoAttributeID Integer32 ,
1133 | diskSMARTInfoAttributeCurrent Integer32 ,
1134 | diskSMARTInfoAttributeWorst Integer32 ,
1135 | diskSMARTInfoAttributeThreshold Integer32 ,
1136 | diskSMARTInfoAttributeRAW Integer32 ,
1137 | diskSMARTInfoAttributeStatus OCTET STRING
1138 | }
1139 | diskSMARTInfoIndex OBJECT-TYPE
1140 | SYNTAX Integer32 (0..2147483647)
1141 | MAX-ACCESS not-accessible
1142 | STATUS current
1143 | DESCRIPTION "diskSMARTInfoIndex."
1144 | ::= { diskSMARTInfoTableEntry 1 }
1145 |
1146 | diskSMARTInfoDeviceName OBJECT-TYPE
1147 | SYNTAX OCTET STRING
1148 | MAX-ACCESS read-only
1149 | STATUS current
1150 | DESCRIPTION "diskSMARTInfoDeviceName."
1151 | ::= { diskSMARTInfoTableEntry 2 }
1152 |
1153 | diskSMARTInfoAttributeName OBJECT-TYPE
1154 | SYNTAX OCTET STRING
1155 | MAX-ACCESS read-only
1156 | STATUS current
1157 | DESCRIPTION "diskSMARTInfoAttributeName."
1158 | ::= { diskSMARTInfoTableEntry 3 }
1159 |
1160 | diskSMARTInfoAttributeID OBJECT-TYPE
1161 | SYNTAX Integer32
1162 | MAX-ACCESS read-only
1163 | STATUS current
1164 | DESCRIPTION "diskSMARTInfoAttributeID."
1165 | ::= { diskSMARTInfoTableEntry 4 }
1166 |
1167 | diskSMARTInfoAttributeCurrent OBJECT-TYPE
1168 | SYNTAX Integer32
1169 | MAX-ACCESS read-only
1170 | STATUS current
1171 | DESCRIPTION "diskSMARTInfoAttributeCurrent."
1172 | ::= { diskSMARTInfoTableEntry 5 }
1173 |
1174 | diskSMARTInfoAttributeWorst OBJECT-TYPE
1175 | SYNTAX Integer32
1176 | MAX-ACCESS read-only
1177 | STATUS current
1178 | DESCRIPTION "diskSMARTInfoAttributeCurrent."
1179 | ::= { diskSMARTInfoTableEntry 6 }
1180 |
1181 | diskSMARTInfoAttributeThreshold OBJECT-TYPE
1182 | SYNTAX Integer32
1183 | MAX-ACCESS read-only
1184 | STATUS current
1185 | DESCRIPTION "diskSMARTInfoAttributeCurrent."
1186 | ::= { diskSMARTInfoTableEntry 7}
1187 |
1188 | diskSMARTInfoAttributeRAW OBJECT-TYPE
1189 | SYNTAX Integer32
1190 | MAX-ACCESS read-only
1191 | STATUS current
1192 | DESCRIPTION "diskSMARTInfoAttributeCurrent."
1193 | ::= { diskSMARTInfoTableEntry 8}
1194 |
1195 | diskSMARTInfoAttributeStatus OBJECT-TYPE
1196 | SYNTAX OCTET STRING
1197 | MAX-ACCESS read-only
1198 | STATUS current
1199 | DESCRIPTION "diskSMARTInfoAttributeCurrent."
1200 | ::= { diskSMARTInfoTableEntry 9}
1201 |
1202 | -- JBOD
1203 | jBODInfo OBJECT IDENTIFIER ::= { storage 26 }
1204 |
1205 | jBODBitmap OBJECT-TYPE
1206 | SYNTAX OCTET STRING
1207 | MAX-ACCESS read-only
1208 | STATUS current
1209 | DESCRIPTION
1210 | "The bitmap of JBOD (regardless of
1211 | their current state) present on this system."
1212 | ::= { jBODInfo 1 }
1213 |
1214 |
1215 | jBODInfos OBJECT-TYPE
1216 | SYNTAX SEQUENCE OF JBODInfosEntryDef
1217 | MAX-ACCESS not-accessible
1218 | STATUS current
1219 | DESCRIPTION
1220 | "JBOD information."
1221 | ::= { jBODInfo 2 }
1222 | jBODInfosEntry OBJECT-TYPE
1223 | SYNTAX JBODInfosEntryDef
1224 | MAX-ACCESS not-accessible
1225 | STATUS current
1226 | DESCRIPTION
1227 | "JBOD infomation entry"
1228 | INDEX { jBODid }
1229 | ::= { jBODInfos 1 }
1230 |
1231 | JBODInfosEntryDef ::=
1232 | SEQUENCE {
1233 | jBODid Integer32 ,
1234 | jBODHdNumber Integer32
1235 | }
1236 |
1237 | jBODid OBJECT-TYPE
1238 | SYNTAX Integer32 (0..128)
1239 | MAX-ACCESS read-only
1240 | STATUS current
1241 | DESCRIPTION
1242 | "JBOD ID"
1243 | ::= { jBODInfosEntry 1 }
1244 |
1245 | jBODHdNumber OBJECT-TYPE
1246 | SYNTAX Integer32
1247 | MAX-ACCESS read-only
1248 | STATUS current
1249 | DESCRIPTION
1250 | "JBOD port."
1251 | ::= { jBODInfosEntry 2 }
1252 |
1253 | jBODHdTable1 OBJECT-TYPE
1254 | SYNTAX SEQUENCE OF JBODHdEntry1Def
1255 | MAX-ACCESS not-accessible
1256 | STATUS current
1257 | DESCRIPTION
1258 | "JBOD table"
1259 | ::= { jBODInfo 3 }
1260 | jBODHdEntry1 OBJECT-TYPE
1261 | SYNTAX JBODHdEntry1Def
1262 | MAX-ACCESS not-accessible
1263 | STATUS current
1264 | DESCRIPTION
1265 | "JBOD entry"
1266 | INDEX { jBODHdIndex1 }
1267 | ::= { jBODHdTable1 1 }
1268 | JBODHdEntry1Def ::=
1269 | SEQUENCE {
1270 | jBODHdIndex1 Integer32 ,
1271 | jBODHdDescr1 OCTET STRING,
1272 | jBODHdTemperature1 OCTET STRING,
1273 | jBODHdStatus1 INTEGER ,
1274 | jBODHdModel1 OCTET STRING,
1275 | jBODHdCapacity1 OCTET STRING,
1276 | jBODHdSmartInfo1 OCTET STRING
1277 | }
1278 | jBODHdIndex1 OBJECT-TYPE
1279 | SYNTAX Integer32 (0..512)
1280 | MAX-ACCESS not-accessible
1281 | STATUS current
1282 | DESCRIPTION
1283 | "JBOD table index"
1284 | ::= { jBODHdEntry1 1 }
1285 | jBODHdDescr1 OBJECT-TYPE
1286 | SYNTAX OCTET STRING (SIZE (0..255))
1287 | MAX-ACCESS read-only
1288 | STATUS current
1289 | DESCRIPTION
1290 | "JBOD description"
1291 | ::= { jBODHdEntry1 2 }
1292 | jBODHdTemperature1 OBJECT-TYPE
1293 | SYNTAX OCTET STRING
1294 | MAX-ACCESS read-only
1295 | STATUS current
1296 | DESCRIPTION
1297 | "JBOD disk temperature."
1298 | ::= { jBODHdEntry1 3 }
1299 | jBODHdStatus1 OBJECT-TYPE
1300 | SYNTAX INTEGER {
1301 | rwError(-9),
1302 | invalid(-6),
1303 | noDisk(-5),
1304 | unknown(-4),
1305 | ready(0)
1306 | }
1307 | MAX-ACCESS read-only
1308 | STATUS current
1309 | DESCRIPTION
1310 | "JBOD disk status"
1311 | ::= { jBODHdEntry1 4 }
1312 |
1313 | jBODHdModel1 OBJECT-TYPE
1314 | SYNTAX OCTET STRING
1315 | MAX-ACCESS read-only
1316 | STATUS current
1317 | DESCRIPTION "JBOD disk model"
1318 | ::= { jBODHdEntry1 5 }
1319 |
1320 | jBODHdCapacity1 OBJECT-TYPE
1321 | SYNTAX OCTET STRING
1322 | MAX-ACCESS read-only
1323 | STATUS current
1324 | DESCRIPTION "JBOD disk capacity."
1325 | ::= { jBODHdEntry1 6 }
1326 | jBODHdSmartInfo1 OBJECT-TYPE
1327 | SYNTAX OCTET STRING
1328 | MAX-ACCESS read-only
1329 | STATUS current
1330 | DESCRIPTION "JBOD disk SMART information."
1331 | ::= { jBODHdEntry1 7 }
1332 |
1333 | jBODHdTable2 OBJECT-TYPE
1334 | SYNTAX SEQUENCE OF JBODHdEntry2Def
1335 | MAX-ACCESS not-accessible
1336 | STATUS current
1337 | DESCRIPTION
1338 | "JBOD table"
1339 | ::= { jBODInfo 4}
1340 | jBODHdEntry2 OBJECT-TYPE
1341 | SYNTAX JBODHdEntry2Def
1342 | MAX-ACCESS not-accessible
1343 | STATUS current
1344 | DESCRIPTION
1345 | "JBOD entry"
1346 | INDEX { jBODHdIndex2 }
1347 | ::= { jBODHdTable2 1 }
1348 | JBODHdEntry2Def ::=
1349 | SEQUENCE {
1350 | jBODHdIndex2 Integer32 ,
1351 | jBODHdDescr2 OCTET STRING,
1352 | jBODHdTemperature2 OCTET STRING,
1353 | jBODHdStatus2 INTEGER ,
1354 | jBODHdModel2 OCTET STRING,
1355 | jBODHdCapacity2 OCTET STRING,
1356 | jBODHdSmartInfo2 OCTET STRING
1357 | }
1358 | jBODHdIndex2 OBJECT-TYPE
1359 | SYNTAX Integer32 (0..512)
1360 | MAX-ACCESS not-accessible
1361 | STATUS current
1362 | DESCRIPTION
1363 | "JBOD table index"
1364 | ::= { jBODHdEntry2 1 }
1365 | jBODHdDescr2 OBJECT-TYPE
1366 | SYNTAX OCTET STRING (SIZE (0..255))
1367 | MAX-ACCESS read-only
1368 | STATUS current
1369 | DESCRIPTION
1370 | "JBOD disk description."
1371 | ::= { jBODHdEntry2 2 }
1372 | jBODHdTemperature2 OBJECT-TYPE
1373 | SYNTAX OCTET STRING
1374 | MAX-ACCESS read-only
1375 | STATUS current
1376 | DESCRIPTION
1377 | "JBOD disk temperature."
1378 | ::= { jBODHdEntry2 3 }
1379 | jBODHdStatus2 OBJECT-TYPE
1380 | SYNTAX INTEGER {
1381 | rwError(-9),
1382 | invalid(-6),
1383 | noDisk(-5),
1384 | unknown(-4),
1385 | ready(0)
1386 | }
1387 | MAX-ACCESS read-only
1388 | STATUS current
1389 | DESCRIPTION
1390 | "JBOD disk status"
1391 | ::= { jBODHdEntry2 4 }
1392 | jBODHdModel2 OBJECT-TYPE
1393 | SYNTAX OCTET STRING
1394 | MAX-ACCESS read-only
1395 | STATUS current
1396 | DESCRIPTION "JBOD disk model."
1397 | ::= { jBODHdEntry2 5 }
1398 | jBODHdCapacity2 OBJECT-TYPE
1399 | SYNTAX OCTET STRING
1400 | MAX-ACCESS read-only
1401 | STATUS current
1402 | DESCRIPTION "JBOD disk capacity."
1403 | ::= { jBODHdEntry2 6 }
1404 | jBODHdSmartInfo2 OBJECT-TYPE
1405 | SYNTAX OCTET STRING
1406 | MAX-ACCESS read-only
1407 | STATUS current
1408 | DESCRIPTION "JBOD disk SMART information."
1409 | ::= { jBODHdEntry2 7 }
1410 |
1411 | jBODHdTable3 OBJECT-TYPE
1412 | SYNTAX SEQUENCE OF JBODHdEntry3Def
1413 | MAX-ACCESS not-accessible
1414 | STATUS current
1415 | DESCRIPTION
1416 | "JBOD table"
1417 | ::= { jBODInfo 5 }
1418 |
1419 | jBODHdEntry3 OBJECT-TYPE
1420 | SYNTAX JBODHdEntry3Def
1421 | MAX-ACCESS not-accessible
1422 | STATUS current
1423 | DESCRIPTION
1424 | "JBOD entry"
1425 | INDEX { jBODHdIndex3 }
1426 | ::= { jBODHdTable3 1 }
1427 | JBODHdEntry3Def ::=
1428 | SEQUENCE {
1429 | jBODHdIndex3 Integer32 ,
1430 | jBODHdDescr3 OCTET STRING,
1431 | jBODHdTemperature3 OCTET STRING,
1432 | jBODHdStatus3 INTEGER ,
1433 | jBODHdModel3 OCTET STRING,
1434 | jBODHdCapacity3 OCTET STRING,
1435 | jBODHdSmartInfo3 OCTET STRING
1436 | }
1437 | jBODHdIndex3 OBJECT-TYPE
1438 | SYNTAX Integer32 (0..512)
1439 | MAX-ACCESS not-accessible
1440 | STATUS current
1441 | DESCRIPTION
1442 | "JBOD table index"
1443 | ::= { jBODHdEntry3 1 }
1444 | jBODHdDescr3 OBJECT-TYPE
1445 | SYNTAX OCTET STRING (SIZE (0..255))
1446 | MAX-ACCESS read-only
1447 | STATUS current
1448 | DESCRIPTION
1449 | "JBOD disk description"
1450 | ::= { jBODHdEntry3 2 }
1451 | jBODHdTemperature3 OBJECT-TYPE
1452 | SYNTAX OCTET STRING
1453 | MAX-ACCESS read-only
1454 | STATUS current
1455 | DESCRIPTION
1456 | "JBOD disk temperature."
1457 | ::= { jBODHdEntry3 3 }
1458 | jBODHdStatus3 OBJECT-TYPE
1459 | SYNTAX INTEGER {
1460 | rwError(-9),
1461 | invalid(-6),
1462 | noDisk(-5),
1463 | unknown(-4),
1464 | ready(0)
1465 | }
1466 | MAX-ACCESS read-only
1467 | STATUS current
1468 | DESCRIPTION
1469 | "JBOD disk status."
1470 | ::= { jBODHdEntry3 4 }
1471 | jBODHdModel3 OBJECT-TYPE
1472 | SYNTAX OCTET STRING
1473 | MAX-ACCESS read-only
1474 | STATUS current
1475 | DESCRIPTION "JBOD disk model."
1476 | ::= { jBODHdEntry3 5 }
1477 | jBODHdCapacity3 OBJECT-TYPE
1478 | SYNTAX OCTET STRING
1479 | MAX-ACCESS read-only
1480 | STATUS current
1481 | DESCRIPTION "JBOD disk capacity."
1482 | ::= { jBODHdEntry3 6 }
1483 | jBODHdSmartInfo3 OBJECT-TYPE
1484 | SYNTAX OCTET STRING
1485 | MAX-ACCESS read-only
1486 | STATUS current
1487 | DESCRIPTION "JBOD disk SMART information."
1488 | ::= { jBODHdEntry3 7 }
1489 |
1490 | jBODHdTable4 OBJECT-TYPE
1491 | SYNTAX SEQUENCE OF JBODHdEntry4Def
1492 | MAX-ACCESS not-accessible
1493 | STATUS current
1494 | DESCRIPTION
1495 | "A list of interface entries. The number of
1496 | entries is given by the value of IfNumber."
1497 | ::= { jBODInfo 6 }
1498 |
1499 | jBODHdEntry4 OBJECT-TYPE
1500 | SYNTAX JBODHdEntry4Def
1501 | MAX-ACCESS not-accessible
1502 | STATUS current
1503 | DESCRIPTION
1504 | "JBOD disk entry"
1505 | INDEX { jBODHdIndex4 }
1506 | ::= { jBODHdTable4 1 }
1507 | JBODHdEntry4Def ::=
1508 | SEQUENCE {
1509 | jBODHdIndex4 Integer32 ,
1510 | jBODHdDescr4 OCTET STRING,
1511 | jBODHdTemperature4 OCTET STRING,
1512 | jBODHdStatus4 INTEGER ,
1513 | jBODHdModel4 OCTET STRING,
1514 | jBODHdCapacity4 OCTET STRING,
1515 | jBODHdSmartInfo4 OCTET STRING
1516 | }
1517 | jBODHdIndex4 OBJECT-TYPE
1518 | SYNTAX Integer32 (0..512)
1519 | MAX-ACCESS not-accessible
1520 | STATUS current
1521 | DESCRIPTION
1522 | "JBOD table index"
1523 | ::= { jBODHdEntry4 1 }
1524 | jBODHdDescr4 OBJECT-TYPE
1525 | SYNTAX OCTET STRING (SIZE (0..255))
1526 | MAX-ACCESS read-only
1527 | STATUS current
1528 | DESCRIPTION
1529 | "JBOD disk description."
1530 | ::= { jBODHdEntry4 2 }
1531 | jBODHdTemperature4 OBJECT-TYPE
1532 | SYNTAX OCTET STRING
1533 | MAX-ACCESS read-only
1534 | STATUS current
1535 | DESCRIPTION
1536 | "JBOD disk temperature."
1537 | ::= { jBODHdEntry4 3 }
1538 | jBODHdStatus4 OBJECT-TYPE
1539 | SYNTAX INTEGER {
1540 | rwError(-9),
1541 | invalid(-6),
1542 | noDisk(-5),
1543 | unknown(-4),
1544 | ready(0)
1545 | }
1546 | MAX-ACCESS read-only
1547 | STATUS current
1548 | DESCRIPTION
1549 | "JBOD disk status"
1550 | ::= { jBODHdEntry4 4 }
1551 | jBODHdModel4 OBJECT-TYPE
1552 | SYNTAX OCTET STRING
1553 | MAX-ACCESS read-only
1554 | STATUS current
1555 | DESCRIPTION "JBOD disk model."
1556 | ::= { jBODHdEntry4 5 }
1557 | jBODHdCapacity4 OBJECT-TYPE
1558 | SYNTAX OCTET STRING
1559 | MAX-ACCESS read-only
1560 | STATUS current
1561 | DESCRIPTION "JBOD disk capacity."
1562 | ::= { jBODHdEntry4 6 }
1563 | jBODHdSmartInfo4 OBJECT-TYPE
1564 | SYNTAX OCTET STRING
1565 | MAX-ACCESS read-only
1566 | STATUS current
1567 | DESCRIPTION "JBOD disk SMART information."
1568 | ::= { jBODHdEntry4 7 }
1569 |
1570 | jBODHdTable5 OBJECT-TYPE
1571 | SYNTAX SEQUENCE OF JBODHdEntry5Def
1572 | MAX-ACCESS not-accessible
1573 | STATUS current
1574 | DESCRIPTION
1575 | "JBOD table"
1576 | ::= { jBODInfo 7 }
1577 |
1578 | jBODHdEntry5 OBJECT-TYPE
1579 | SYNTAX JBODHdEntry5Def
1580 | MAX-ACCESS not-accessible
1581 | STATUS current
1582 | DESCRIPTION
1583 | "JBOD disk entry"
1584 | INDEX { jBODHdIndex5 }
1585 | ::= { jBODHdTable5 1 }
1586 | JBODHdEntry5Def ::=
1587 | SEQUENCE {
1588 | jBODHdIndex5 Integer32 ,
1589 | jBODHdDescr5 OCTET STRING,
1590 | jBODHdTemperature5 OCTET STRING,
1591 | jBODHdStatus5 INTEGER ,
1592 | jBODHdModel5 OCTET STRING,
1593 | jBODHdCapacity5 OCTET STRING,
1594 | jBODHdSmartInfo5 OCTET STRING
1595 | }
1596 | jBODHdIndex5 OBJECT-TYPE
1597 | SYNTAX Integer32 (0..512)
1598 | MAX-ACCESS not-accessible
1599 | STATUS current
1600 | DESCRIPTION
1601 | "JBOD table index."
1602 | ::= { jBODHdEntry5 1 }
1603 | jBODHdDescr5 OBJECT-TYPE
1604 | SYNTAX OCTET STRING (SIZE (0..255))
1605 | MAX-ACCESS read-only
1606 | STATUS current
1607 | DESCRIPTION
1608 | "JBOD disk desription."
1609 | ::= { jBODHdEntry5 2 }
1610 | jBODHdTemperature5 OBJECT-TYPE
1611 | SYNTAX OCTET STRING
1612 | MAX-ACCESS read-only
1613 | STATUS current
1614 | DESCRIPTION
1615 | "Hard disk temperature."
1616 | ::= { jBODHdEntry5 3 }
1617 | jBODHdStatus5 OBJECT-TYPE
1618 | SYNTAX INTEGER {
1619 | rwError(-9),
1620 | invalid(-6),
1621 | noDisk(-5),
1622 | unknown(-4),
1623 | ready(0)
1624 | }
1625 | MAX-ACCESS read-only
1626 | STATUS current
1627 | DESCRIPTION
1628 | "JBOD disk status."
1629 | ::= { jBODHdEntry5 4 }
1630 | jBODHdModel5 OBJECT-TYPE
1631 | SYNTAX OCTET STRING
1632 | MAX-ACCESS read-only
1633 | STATUS current
1634 | DESCRIPTION "JBOD disk model."
1635 | ::= { jBODHdEntry5 5 }
1636 | jBODHdCapacity5 OBJECT-TYPE
1637 | SYNTAX OCTET STRING
1638 | MAX-ACCESS read-only
1639 | STATUS current
1640 | DESCRIPTION "JBOD disk capacity."
1641 | ::= { jBODHdEntry5 6 }
1642 | jBODHdSmartInfo5 OBJECT-TYPE
1643 | SYNTAX OCTET STRING
1644 | MAX-ACCESS read-only
1645 | STATUS current
1646 | DESCRIPTION "JBOD disk SMART information."
1647 | ::= { jBODHdEntry5 7 }
1648 |
1649 | jBODHdTable6 OBJECT-TYPE
1650 | SYNTAX SEQUENCE OF JBODHdEntry6Def
1651 | MAX-ACCESS not-accessible
1652 | STATUS current
1653 | DESCRIPTION
1654 | "JBOD table"
1655 | ::= { jBODInfo 8 }
1656 |
1657 | jBODHdEntry6 OBJECT-TYPE
1658 | SYNTAX JBODHdEntry6Def
1659 | MAX-ACCESS not-accessible
1660 | STATUS current
1661 | DESCRIPTION
1662 | "JBOD disk entry"
1663 | INDEX { jBODHdIndex6 }
1664 | ::= { jBODHdTable6 1 }
1665 | JBODHdEntry6Def ::=
1666 | SEQUENCE {
1667 | jBODHdIndex6 Integer32 ,
1668 | jBODHdDescr6 OCTET STRING,
1669 | jBODHdTemperature6 OCTET STRING,
1670 | jBODHdStatus6 INTEGER ,
1671 | jBODHdModel6 OCTET STRING,
1672 | jBODHdCapacity6 OCTET STRING,
1673 | jBODHdSmartInfo6 OCTET STRING
1674 | }
1675 | jBODHdIndex6 OBJECT-TYPE
1676 | SYNTAX Integer32 (0..512)
1677 | MAX-ACCESS not-accessible
1678 | STATUS current
1679 | DESCRIPTION
1680 | "JBOD table index"
1681 | ::= { jBODHdEntry6 1 }
1682 | jBODHdDescr6 OBJECT-TYPE
1683 | SYNTAX OCTET STRING (SIZE (0..255))
1684 | MAX-ACCESS read-only
1685 | STATUS current
1686 | DESCRIPTION
1687 | "JBOD disk description."
1688 | ::= { jBODHdEntry6 2 }
1689 | jBODHdTemperature6 OBJECT-TYPE
1690 | SYNTAX OCTET STRING
1691 | MAX-ACCESS read-only
1692 | STATUS current
1693 | DESCRIPTION
1694 | "JBOD disk temperature."
1695 | ::= { jBODHdEntry6 3 }
1696 | jBODHdStatus6 OBJECT-TYPE
1697 | SYNTAX INTEGER {
1698 | rwError(-9),
1699 | invalid(-6),
1700 | noDisk(-5),
1701 | unknown(-4),
1702 | ready(0)
1703 | }
1704 | MAX-ACCESS read-only
1705 | STATUS current
1706 | DESCRIPTION
1707 | "JBOD status."
1708 | ::= { jBODHdEntry6 4 }
1709 | jBODHdModel6 OBJECT-TYPE
1710 | SYNTAX OCTET STRING
1711 | MAX-ACCESS read-only
1712 | STATUS current
1713 | DESCRIPTION "JBOD disk model."
1714 | ::= { jBODHdEntry6 5 }
1715 | jBODHdCapacity6 OBJECT-TYPE
1716 | SYNTAX OCTET STRING
1717 | MAX-ACCESS read-only
1718 | STATUS current
1719 | DESCRIPTION "JBOD disk capacity."
1720 | ::= { jBODHdEntry6 6 }
1721 | jBODHdSmartInfo6 OBJECT-TYPE
1722 | SYNTAX OCTET STRING
1723 | MAX-ACCESS read-only
1724 | STATUS current
1725 | DESCRIPTION "JBOD disk SMART information."
1726 | ::= { jBODHdEntry6 7 }
1727 |
1728 | jBODHdTable7 OBJECT-TYPE
1729 | SYNTAX SEQUENCE OF JBODHdEntry7Def
1730 | MAX-ACCESS not-accessible
1731 | STATUS current
1732 | DESCRIPTION
1733 | "JBOD table."
1734 | ::= { jBODInfo 9 }
1735 |
1736 | jBODHdEntry7 OBJECT-TYPE
1737 | SYNTAX JBODHdEntry7Def
1738 | MAX-ACCESS not-accessible
1739 | STATUS current
1740 | DESCRIPTION
1741 | "JBOD disk entry"
1742 | INDEX { jBODHdIndex7 }
1743 | ::= { jBODHdTable7 1 }
1744 | JBODHdEntry7Def ::=
1745 | SEQUENCE {
1746 | jBODHdIndex7 Integer32 ,
1747 | jBODHdDescr7 OCTET STRING,
1748 | jBODHdTemperature7 OCTET STRING,
1749 | jBODHdStatus7 INTEGER ,
1750 | jBODHdModel7 OCTET STRING,
1751 | jBODHdCapacity7 OCTET STRING,
1752 | jBODHdSmartInfo7 OCTET STRING
1753 | }
1754 | jBODHdIndex7 OBJECT-TYPE
1755 | SYNTAX Integer32 (0..512)
1756 | MAX-ACCESS not-accessible
1757 | STATUS current
1758 | DESCRIPTION
1759 | "JBOD table index."
1760 | ::= { jBODHdEntry7 1 }
1761 | jBODHdDescr7 OBJECT-TYPE
1762 | SYNTAX OCTET STRING (SIZE (0..255))
1763 | MAX-ACCESS read-only
1764 | STATUS current
1765 | DESCRIPTION
1766 | "JBOD disk description."
1767 | ::= { jBODHdEntry7 2 }
1768 | jBODHdTemperature7 OBJECT-TYPE
1769 | SYNTAX OCTET STRING
1770 | MAX-ACCESS read-only
1771 | STATUS current
1772 | DESCRIPTION
1773 | "JBOD disk temperature."
1774 | ::= { jBODHdEntry7 3 }
1775 | jBODHdStatus7 OBJECT-TYPE
1776 | SYNTAX INTEGER {
1777 | rwError(-9),
1778 | invalid(-6),
1779 | noDisk(-5),
1780 | unknown(-4),
1781 | ready(0)
1782 | }
1783 | MAX-ACCESS read-only
1784 | STATUS current
1785 | DESCRIPTION
1786 | "JBOD disk status."
1787 | ::= { jBODHdEntry7 4 }
1788 | jBODHdModel7 OBJECT-TYPE
1789 | SYNTAX OCTET STRING
1790 | MAX-ACCESS read-only
1791 | STATUS current
1792 | DESCRIPTION "JBOD disk model."
1793 | ::= { jBODHdEntry7 5 }
1794 | jBODHdCapacity7 OBJECT-TYPE
1795 | SYNTAX OCTET STRING
1796 | MAX-ACCESS read-only
1797 | STATUS current
1798 | DESCRIPTION "JBOD disk capacity."
1799 | ::= { jBODHdEntry7 6 }
1800 | jBODHdSmartInfo7 OBJECT-TYPE
1801 | SYNTAX OCTET STRING
1802 | MAX-ACCESS read-only
1803 | STATUS current
1804 | DESCRIPTION "JBOD disk SMART information."
1805 | ::= { jBODHdEntry7 7 }
1806 |
1807 | jBODHdTable8 OBJECT-TYPE
1808 | SYNTAX SEQUENCE OF JBODHdEntry8Def
1809 | MAX-ACCESS not-accessible
1810 | STATUS current
1811 | DESCRIPTION
1812 | "JBOD table."
1813 | ::= { jBODInfo 10 }
1814 |
1815 | jBODHdEntry8 OBJECT-TYPE
1816 | SYNTAX JBODHdEntry8Def
1817 | MAX-ACCESS not-accessible
1818 | STATUS current
1819 | DESCRIPTION
1820 | "JBOD disk entry"
1821 | INDEX { jBODHdIndex8 }
1822 | ::= { jBODHdTable8 1 }
1823 | JBODHdEntry8Def ::=
1824 | SEQUENCE {
1825 | jBODHdIndex8 Integer32 ,
1826 | jBODHdDescr8 OCTET STRING,
1827 | jBODHdTemperature8 OCTET STRING,
1828 | jBODHdStatus8 INTEGER ,
1829 | jBODHdModel8 OCTET STRING,
1830 | jBODHdCapacity8 OCTET STRING,
1831 | jBODHdSmartInfo8 OCTET STRING
1832 | }
1833 | jBODHdIndex8 OBJECT-TYPE
1834 | SYNTAX Integer32 (0..512)
1835 | MAX-ACCESS not-accessible
1836 | STATUS current
1837 | DESCRIPTION
1838 | "JBOD table index."
1839 | ::= { jBODHdEntry8 1 }
1840 | jBODHdDescr8 OBJECT-TYPE
1841 | SYNTAX OCTET STRING (SIZE (0..255))
1842 | MAX-ACCESS read-only
1843 | STATUS current
1844 | DESCRIPTION
1845 | "JBOD disk description."
1846 | ::= { jBODHdEntry8 2 }
1847 | jBODHdTemperature8 OBJECT-TYPE
1848 | SYNTAX OCTET STRING
1849 | MAX-ACCESS read-only
1850 | STATUS current
1851 | DESCRIPTION
1852 | "JBOD disk temperature."
1853 | ::= { jBODHdEntry8 3 }
1854 | jBODHdStatus8 OBJECT-TYPE
1855 | SYNTAX INTEGER {
1856 | rwError(-9),
1857 | invalid(-6),
1858 | noDisk(-5),
1859 | unknown(-4),
1860 | ready(0)
1861 | }
1862 | MAX-ACCESS read-only
1863 | STATUS current
1864 | DESCRIPTION
1865 | "JBOD disk status."
1866 | ::= { jBODHdEntry8 4 }
1867 | jBODHdModel8 OBJECT-TYPE
1868 | SYNTAX OCTET STRING
1869 | MAX-ACCESS read-only
1870 | STATUS current
1871 | DESCRIPTION "JBOD disk model."
1872 | ::= { jBODHdEntry8 5 }
1873 | jBODHdCapacity8 OBJECT-TYPE
1874 | SYNTAX OCTET STRING
1875 | MAX-ACCESS read-only
1876 | STATUS current
1877 | DESCRIPTION "JBOD disk capacity."
1878 | ::= { jBODHdEntry8 6 }
1879 | jBODHdSmartInfo8 OBJECT-TYPE
1880 | SYNTAX OCTET STRING
1881 | MAX-ACCESS read-only
1882 | STATUS current
1883 | DESCRIPTION "JBOD disk SMART information."
1884 | ::= { jBODHdEntry8 7 }
1885 | -- system
1886 | system OBJECT IDENTIFIER ::= { qts 12 }
1887 |
1888 | -- system Event
1889 | systemEventMsg OBJECT IDENTIFIER ::= { system 1 }
1890 |
1891 | -- system event
1892 | eventInformMsg OBJECT-TYPE
1893 | SYNTAX OCTET STRING
1894 | MAX-ACCESS read-only
1895 | STATUS current
1896 | DESCRIPTION
1897 | "Information event of NAS system."
1898 | ::= { systemEventMsg 101 }
1899 |
1900 | eventWarningMsg OBJECT-TYPE
1901 | SYNTAX OCTET STRING
1902 | MAX-ACCESS read-only
1903 | STATUS current
1904 | DESCRIPTION
1905 | "Warning event of NAS system."
1906 | ::= { systemEventMsg 102 }
1907 |
1908 | eventErrorMsg OBJECT-TYPE
1909 | SYNTAX OCTET STRING
1910 | MAX-ACCESS read-only
1911 | STATUS current
1912 | DESCRIPTION
1913 | "Error event of NAS system."
1914 | ::= { systemEventMsg 103 }
1915 |
1916 | systemTraps OBJECT IDENTIFIER ::= { system 2 }
1917 |
1918 | eventInform NOTIFICATION-TYPE
1919 | OBJECTS { eventInformMsg }
1920 | STATUS current
1921 | DESCRIPTION
1922 | "Info: %s"
1923 | ::= { systemTraps 1 }
1924 |
1925 | eventWarning NOTIFICATION-TYPE
1926 | OBJECTS { eventWarningMsg }
1927 | STATUS current
1928 | DESCRIPTION
1929 | "Warn: %s"
1930 | ::= { systemTraps 2 }
1931 |
1932 | eventError NOTIFICATION-TYPE
1933 | OBJECTS { eventErrorMsg }
1934 | STATUS current
1935 | DESCRIPTION
1936 | "Error: %s"
1937 | ::= { systemTraps 4 }
1938 |
1939 | systemModel OBJECT-TYPE
1940 | SYNTAX OCTET STRING
1941 | MAX-ACCESS read-only
1942 | STATUS current
1943 | DESCRIPTION
1944 | "System model name"
1945 | ::= { system 3 }
1946 |
1947 | hostname OBJECT-TYPE
1948 | SYNTAX OCTET STRING
1949 | MAX-ACCESS read-only
1950 | STATUS current
1951 | DESCRIPTION
1952 | "Host name"
1953 | ::= { system 4 }
1954 |
1955 | serialNumber OBJECT-TYPE
1956 | SYNTAX OCTET STRING (SIZE (0..255))
1957 | MAX-ACCESS read-only
1958 | STATUS current
1959 | DESCRIPTION
1960 | "Enclosure Serial Number."
1961 | ::= { system 5 }
1962 |
1963 | firmwareVersion OBJECT-TYPE
1964 | SYNTAX OCTET STRING
1965 | MAX-ACCESS read-only
1966 | STATUS current
1967 | DESCRIPTION
1968 | "Firmware Version"
1969 | ::= { system 6 }
1970 |
1971 | firmwareUpgradeAvailable OBJECT-TYPE
1972 | SYNTAX Integer32
1973 | MAX-ACCESS read-only
1974 | STATUS current
1975 | DESCRIPTION
1976 | "Firmware can upgrade or not"
1977 | ::= { system 7 }
1978 |
1979 | sysFanNumber OBJECT-TYPE
1980 | SYNTAX Integer32
1981 | MAX-ACCESS read-only
1982 | STATUS current
1983 | DESCRIPTION
1984 | "The number of system fan (regardless of
1985 | their current state) present on this system."
1986 | ::= { system 8 }
1987 |
1988 | systemFanTable OBJECT-TYPE
1989 | SYNTAX SEQUENCE OF SysFanEntryDef
1990 | MAX-ACCESS not-accessible
1991 | STATUS current
1992 | DESCRIPTION
1993 | "A list of interface entries. The number of
1994 | entries is given by the value of SysFanNumber."
1995 | ::= { system 9 }
1996 |
1997 | systemFanEntry OBJECT-TYPE
1998 | SYNTAX SysFanEntryDef
1999 | MAX-ACCESS not-accessible
2000 | STATUS current
2001 | DESCRIPTION
2002 | "An system fan entry containing objects at the
2003 | subnetwork layer and below for a particular
2004 | interface."
2005 | INDEX { sysFanIndex }
2006 | ::= { systemFanTable 1 }
2007 |
2008 | SysFanEntryDef ::=
2009 | SEQUENCE {
2010 | sysFanIndex
2011 | Integer32 ,
2012 | sysFanDescr
2013 | OCTET STRING,
2014 | sysFanSpeed
2015 | Integer32
2016 | }
2017 |
2018 | sysFanIndex OBJECT-TYPE
2019 | SYNTAX Integer32 (0..512)
2020 | MAX-ACCESS not-accessible
2021 | STATUS current
2022 | DESCRIPTION
2023 | "A unique value for each system fan. Its value
2024 | ranges between 1 and the value of SysFanNumber. The
2025 | value for each interface must remain constant at
2026 | least from one re-initialization of the entity's
2027 | network management system to the next re-
2028 | initialization."
2029 | ::= { systemFanEntry 1 }
2030 |
2031 | sysFanDescr OBJECT-TYPE
2032 | SYNTAX OCTET STRING (SIZE (0..255))
2033 | MAX-ACCESS read-only
2034 | STATUS current
2035 | DESCRIPTION
2036 | "A textual string containing information about the
2037 | interface. This string should include the name of
2038 | the manufacturer, the product name and the version
2039 | of the hardware interface."
2040 | ::= { systemFanEntry 2 }
2041 |
2042 | sysFanSpeed OBJECT-TYPE
2043 | SYNTAX Integer32
2044 | MAX-ACCESS read-only
2045 | STATUS current
2046 | DESCRIPTION
2047 | "System fan speed."
2048 | ::= { systemFanEntry 3 }
2049 |
2050 | cpuTemperature OBJECT-TYPE
2051 | SYNTAX Integer32
2052 | MAX-ACCESS read-only
2053 | STATUS current
2054 | DESCRIPTION
2055 | "CPU temperature"
2056 | ::= { system 10 }
2057 |
2058 | systemTemperature OBJECT-TYPE
2059 | SYNTAX Integer32
2060 | MAX-ACCESS read-only
2061 | STATUS current
2062 | DESCRIPTION
2063 | "System temperature"
2064 | ::= { system 11 }
2065 |
2066 | systemCPU-Usage OBJECT-TYPE
2067 | SYNTAX Integer32
2068 | MAX-ACCESS read-only
2069 | STATUS current
2070 | DESCRIPTION
2071 | "System CPU usage"
2072 | ::= { system 12 }
2073 |
2074 | systemTotalMem OBJECT-TYPE
2075 | SYNTAX Counter64
2076 | MAX-ACCESS read-only
2077 | STATUS current
2078 | DESCRIPTION
2079 | "System total memory"
2080 | ::= { system 13}
2081 |
2082 | systemFreeMem OBJECT-TYPE
2083 | SYNTAX Counter64
2084 | MAX-ACCESS read-only
2085 | STATUS current
2086 | DESCRIPTION
2087 | "System free memory"
2088 | ::= { system 14 }
2089 |
2090 | systemAvailableMem OBJECT-TYPE
2091 | SYNTAX Counter64
2092 | MAX-ACCESS read-only
2093 | STATUS current
2094 | DESCRIPTION
2095 | "System available memory"
2096 | ::= { system 15 }
2097 |
2098 | systemUsedMemory OBJECT-TYPE
2099 | SYNTAX Counter64
2100 | MAX-ACCESS read-only
2101 | STATUS current
2102 | DESCRIPTION
2103 | "System used memory"
2104 | ::= { system 16 }
2105 |
2106 | systemCacheMemory OBJECT-TYPE
2107 | SYNTAX Counter64
2108 | MAX-ACCESS read-only
2109 | STATUS current
2110 | DESCRIPTION
2111 | "System cached memory"
2112 | ::= { system 17 }
2113 |
2114 | systemBufferMemory OBJECT-TYPE
2115 | SYNTAX Counter64
2116 | MAX-ACCESS read-only
2117 | STATUS current
2118 | DESCRIPTION
2119 | "System buffered memory"
2120 | ::= { system 18 }
2121 |
2122 | sysPowerStatus OBJECT-TYPE
2123 | SYNTAX INTEGER {
2124 | failed(-1),
2125 | ok(0)
2126 | }
2127 | MAX-ACCESS read-only
2128 | STATUS current
2129 | DESCRIPTION
2130 | "System power status."
2131 | ::= { system 19 }
2132 |
2133 | sysUPSStatus OBJECT-TYPE
2134 | SYNTAX Integer32
2135 | MAX-ACCESS read-only
2136 | STATUS current
2137 | DESCRIPTION
2138 | "System UPS status."
2139 | ::= { system 20 }
2140 |
2141 | sysUptime OBJECT-TYPE
2142 | SYNTAX TimeTicks
2143 | MAX-ACCESS read-only
2144 | STATUS current
2145 | DESCRIPTION
2146 | "The amount of time since this host was last
2147 | initialized. Note that this is different from
2148 | sysUpTime in the SNMPv2-MIB [RFC1907] because
2149 | sysUpTime is the uptime of the network management
2150 | portion of the system."
2151 | ::= { system 21 }
2152 |
2153 | -- external
2154 | external OBJECT IDENTIFIER ::= { qts 13 }
2155 |
2156 | upsStatus OBJECT-TYPE
2157 | SYNTAX OCTET STRING
2158 | MAX-ACCESS read-only
2159 | STATUS current
2160 | DESCRIPTION
2161 | "ups status"
2162 | ::= { external 1 }
2163 |
2164 | upsModel OBJECT-TYPE
2165 | SYNTAX OCTET STRING
2166 | MAX-ACCESS read-only
2167 | STATUS current
2168 | DESCRIPTION
2169 | "ups model name"
2170 | ::= { external 2 }
2171 |
2172 | upsDeviceManufacturer OBJECT-TYPE
2173 | SYNTAX OCTET STRING
2174 | MAX-ACCESS read-only
2175 | STATUS current
2176 | DESCRIPTION
2177 | "ups manufacturer name"
2178 | ::= { external 3 }
2179 |
2180 | upsDeviceSerial OBJECT-TYPE
2181 | SYNTAX OCTET STRING
2182 | MAX-ACCESS read-only
2183 | STATUS current
2184 | DESCRIPTION
2185 | "ups serial number"
2186 | ::= { external 4 }
2187 |
2188 | upsManufacturerDate OBJECT-TYPE
2189 | SYNTAX OCTET STRING
2190 | MAX-ACCESS read-only
2191 | STATUS current
2192 | DESCRIPTION
2193 | "ups manufacturer date"
2194 | ::= { external 5 }
2195 |
2196 | upsLoadPercentage OBJECT-TYPE
2197 | SYNTAX OCTET STRING
2198 | MAX-ACCESS read-only
2199 | STATUS current
2200 | DESCRIPTION
2201 | "ups manufacturer date"
2202 | ::= { external 6 }
2203 |
2204 | upsBatteryCharge OBJECT-TYPE
2205 | SYNTAX OCTET STRING
2206 | MAX-ACCESS read-only
2207 | STATUS current
2208 | DESCRIPTION
2209 | "ups battery charge"
2210 | ::= { external 7 }
2211 |
2212 | upsBatteryChargeWarningLevel OBJECT-TYPE
2213 | SYNTAX OCTET STRING
2214 | MAX-ACCESS read-only
2215 | STATUS current
2216 | DESCRIPTION
2217 | "ups battery charge warning level"
2218 | ::= { external 8 }
2219 |
2220 | upsBatteryType OBJECT-TYPE
2221 | SYNTAX OCTET STRING
2222 | MAX-ACCESS read-only
2223 | STATUS current
2224 | DESCRIPTION
2225 | "ups battery type"
2226 | ::= { external 9 }
2227 |
2228 | usbPrinterTable OBJECT-TYPE
2229 | SYNTAX SEQUENCE OF UsbPrinterTableEntryDef
2230 | MAX-ACCESS not-accessible
2231 | STATUS current
2232 | DESCRIPTION
2233 | "A list of printer entries."
2234 | ::= { external 10 }
2235 |
2236 | usbPrinterTableEntry OBJECT-TYPE
2237 | SYNTAX UsbPrinterTableEntryDef
2238 | MAX-ACCESS not-accessible
2239 | STATUS current
2240 | DESCRIPTION
2241 | "An system fan entry containing objects at the
2242 | subnetwork layer and below for a particular
2243 | interface."
2244 | INDEX { usbPrinterIndex }
2245 | ::= { usbPrinterTable 1 }
2246 |
2247 | UsbPrinterTableEntryDef ::=
2248 | SEQUENCE {
2249 | usbPrinterIndex
2250 | Integer32 ,
2251 | usbPrinterName
2252 | OCTET STRING,
2253 | usbPrinterManufacturer
2254 | OCTET STRING,
2255 | usbPrinterModel
2256 | OCTET STRING,
2257 | usbPrinterStatus
2258 | INTEGER ,
2259 | usbPrinterBonjourPrinterSupportEnabled
2260 | INTEGER ,
2261 | usbPrinterSharingEnabled
2262 | INTEGER
2263 | }
2264 |
2265 | usbPrinterIndex OBJECT-TYPE
2266 | SYNTAX Integer32 (0..512)
2267 | MAX-ACCESS not-accessible
2268 | STATUS current
2269 | DESCRIPTION
2270 | "A unique value for each usb printer."
2271 | ::= { usbPrinterTableEntry 1 }
2272 |
2273 | usbPrinterName OBJECT-TYPE
2274 | SYNTAX OCTET STRING
2275 | MAX-ACCESS read-only
2276 | STATUS current
2277 | DESCRIPTION
2278 | "printer name."
2279 | ::= { usbPrinterTableEntry 2 }
2280 |
2281 | usbPrinterManufacturer OBJECT-TYPE
2282 | SYNTAX OCTET STRING
2283 | MAX-ACCESS read-only
2284 | STATUS current
2285 | DESCRIPTION
2286 | "printer name."
2287 | ::= { usbPrinterTableEntry 3 }
2288 |
2289 | usbPrinterModel OBJECT-TYPE
2290 | SYNTAX OCTET STRING
2291 | MAX-ACCESS read-only
2292 | STATUS current
2293 | DESCRIPTION
2294 | "printer model."
2295 | ::= { usbPrinterTableEntry 4 }
2296 |
2297 | usbPrinterStatus OBJECT-TYPE
2298 | SYNTAX INTEGER {
2299 | notDetected(0),
2300 | detected(1),
2301 | unknown(2)
2302 | }
2303 | MAX-ACCESS read-only
2304 | STATUS current
2305 | DESCRIPTION
2306 | "printer status."
2307 | ::= { usbPrinterTableEntry 5 }
2308 |
2309 | usbPrinterBonjourPrinterSupportEnabled OBJECT-TYPE
2310 | SYNTAX INTEGER {
2311 | no(0),
2312 | yes(1)
2313 | }
2314 | MAX-ACCESS read-only
2315 | STATUS current
2316 | DESCRIPTION
2317 | "flag of bonjour printer support."
2318 | ::= { usbPrinterTableEntry 6 }
2319 |
2320 | usbPrinterSharingEnabled OBJECT-TYPE
2321 | SYNTAX INTEGER {
2322 | no(0),
2323 | yes(1)
2324 | }
2325 | MAX-ACCESS read-only
2326 | STATUS current
2327 | DESCRIPTION
2328 | "flag of printer sharing."
2329 | ::= { usbPrinterTableEntry 7 }
2330 |
2331 | -- services
2332 | services OBJECT IDENTIFIER ::= { qts 14 }
2333 |
2334 | nfsV2V3IsEnabled OBJECT-TYPE
2335 | SYNTAX INTEGER {
2336 | no(0),
2337 | yes(1)
2338 | }
2339 | MAX-ACCESS read-only
2340 | STATUS current
2341 | DESCRIPTION
2342 | "NFS V2/V3 enable flag"
2343 | ::= { services 1 }
2344 |
2345 | nfsV4IsEnabled OBJECT-TYPE
2346 | SYNTAX INTEGER {
2347 | no(0),
2348 | yes(1)
2349 | }
2350 | MAX-ACCESS read-only
2351 | STATUS current
2352 | DESCRIPTION
2353 | "NFS V4 enable flag"
2354 | ::= { services 2 }
2355 |
2356 | httpPort OBJECT-TYPE
2357 | SYNTAX Integer32
2358 | MAX-ACCESS read-only
2359 | STATUS current
2360 | DESCRIPTION
2361 | "HTTP port"
2362 | ::= { services 3 }
2363 |
2364 | httpsPort OBJECT-TYPE
2365 | SYNTAX Integer32
2366 | MAX-ACCESS read-only
2367 | STATUS current
2368 | DESCRIPTION
2369 | "HTTPs port"
2370 | ::= { services 4 }
2371 |
2372 | sshIsEnabled OBJECT-TYPE
2373 | SYNTAX INTEGER {
2374 | no(0),
2375 | yes(1)
2376 | }
2377 | MAX-ACCESS read-only
2378 | STATUS current
2379 | DESCRIPTION
2380 | "SSH enable flag"
2381 | ::= { services 5 }
2382 |
2383 | sshSFTPEnabled OBJECT-TYPE
2384 | SYNTAX INTEGER {
2385 | no(0),
2386 | yes(1)
2387 | }
2388 | MAX-ACCESS read-only
2389 | STATUS current
2390 | DESCRIPTION
2391 | "SFTP enable flag"
2392 | ::= { services 6 }
2393 |
2394 | sshPortNumber OBJECT-TYPE
2395 | SYNTAX Integer32
2396 | MAX-ACCESS read-only
2397 | STATUS current
2398 | DESCRIPTION
2399 | "SSH port number"
2400 | ::= { services 7 }
2401 |
2402 | telnetIsEnabled OBJECT-TYPE
2403 | SYNTAX INTEGER {
2404 | no(0),
2405 | yes(1)
2406 | }
2407 | MAX-ACCESS read-only
2408 | STATUS current
2409 | DESCRIPTION
2410 | "Telnet enable flag"
2411 | ::= { services 8 }
2412 |
2413 | telnetPortNumber OBJECT-TYPE
2414 | SYNTAX Integer32
2415 | MAX-ACCESS read-only
2416 | STATUS current
2417 | DESCRIPTION
2418 | "Telnet port number"
2419 | ::= { services 9 }
2420 |
2421 | ftpEnabled OBJECT-TYPE
2422 | SYNTAX INTEGER {
2423 | no(0),
2424 | yes(1)
2425 | }
2426 | MAX-ACCESS read-only
2427 | STATUS current
2428 | DESCRIPTION
2429 | "FTP enable flag"
2430 | ::= { services 10 }
2431 |
2432 | ftpProtocolStandardEnabled OBJECT-TYPE
2433 | SYNTAX INTEGER {
2434 | no(0),
2435 | yes(1)
2436 | }
2437 | MAX-ACCESS read-only
2438 | STATUS current
2439 | DESCRIPTION
2440 | "FTP standard protocol flag"
2441 | ::= { services 11 }
2442 |
2443 | ftpProtocolSSL-TLSEnabled OBJECT-TYPE
2444 | SYNTAX INTEGER {
2445 | no(0),
2446 | yes(1)
2447 | }
2448 | MAX-ACCESS read-only
2449 | STATUS current
2450 | DESCRIPTION
2451 | "FTP SSL/TLS protocol flag"
2452 | ::= { services 12 }
2453 |
2454 | ftpPortNumber OBJECT-TYPE
2455 | SYNTAX Integer32
2456 | MAX-ACCESS read-only
2457 | STATUS current
2458 | DESCRIPTION
2459 | "FTP port number"
2460 | ::= { services 13 }
2461 |
2462 | ftpUnicodeSupportEnabled OBJECT-TYPE
2463 | SYNTAX INTEGER {
2464 | no(0),
2465 | yes(1)
2466 | }
2467 | MAX-ACCESS read-only
2468 | STATUS current
2469 | DESCRIPTION
2470 | "FTP support unicode flag"
2471 | ::= { services 14 }
2472 |
2473 | ftpAnnonymousaccessEnabled OBJECT-TYPE
2474 | SYNTAX INTEGER {
2475 | no(0),
2476 | yes(1)
2477 | }
2478 | MAX-ACCESS read-only
2479 | STATUS current
2480 | DESCRIPTION
2481 | "FTP annonymous access flag"
2482 | ::= { services 15 }
2483 |
2484 | ftpMaxConnectionsAllowed OBJECT-TYPE
2485 | SYNTAX Integer32
2486 | MAX-ACCESS read-only
2487 | STATUS current
2488 | DESCRIPTION
2489 | "FTP max connections"
2490 | ::= { services 16 }
2491 |
2492 | ftpMaxConnectionsPerAccount OBJECT-TYPE
2493 | SYNTAX Integer32
2494 | MAX-ACCESS read-only
2495 | STATUS current
2496 | DESCRIPTION
2497 | "FTP max connections per account"
2498 | ::= { services 17 }
2499 |
2500 | ftpMaxUploadRate OBJECT-TYPE
2501 | SYNTAX INTEGER {
2502 | unlimited(0)
2503 | }
2504 | MAX-ACCESS read-only
2505 | STATUS current
2506 | DESCRIPTION
2507 | "FTP max upload rate (KB/s)"
2508 | ::= { services 18 }
2509 |
2510 | ftpMaxDownloadRate OBJECT-TYPE
2511 | SYNTAX INTEGER {
2512 | unlimited(0)
2513 | }
2514 | MAX-ACCESS read-only
2515 | STATUS current
2516 | DESCRIPTION
2517 | "FTP max download rate (KB/s)"
2518 | ::= { services 19 }
2519 |
2520 | -- applications
2521 | applications OBJECT IDENTIFIER ::= { qts 15 }
2522 |
2523 | applicationsTable OBJECT-TYPE
2524 | SYNTAX SEQUENCE OF ApplicationsTableEntryDef
2525 | MAX-ACCESS not-accessible
2526 | STATUS current
2527 | DESCRIPTION
2528 | "A list of application entries."
2529 | ::= { applications 1 }
2530 |
2531 | applicationsTableEntry OBJECT-TYPE
2532 | SYNTAX ApplicationsTableEntryDef
2533 | MAX-ACCESS not-accessible
2534 | STATUS current
2535 | DESCRIPTION
2536 | "An application entry containing the
2537 | meta of an application include app
2538 | name, version..."
2539 | INDEX { appIndex }
2540 | ::= { applicationsTable 1 }
2541 |
2542 | ApplicationsTableEntryDef ::=
2543 | SEQUENCE {
2544 | appIndex
2545 | Integer32 ,
2546 | appName
2547 | OCTET STRING,
2548 | appVersion
2549 | OCTET STRING,
2550 | appInstallationDate
2551 | OCTET STRING,
2552 | appLatestVersion
2553 | OCTET STRING,
2554 | appDisplayPermission
2555 | Integer32
2556 | }
2557 |
2558 | appIndex OBJECT-TYPE
2559 | SYNTAX Integer32 (0..512)
2560 | MAX-ACCESS not-accessible
2561 | STATUS current
2562 | DESCRIPTION
2563 | "A unique value for each application."
2564 | ::= { applicationsTableEntry 1 }
2565 |
2566 | appName OBJECT-TYPE
2567 | SYNTAX OCTET STRING
2568 | MAX-ACCESS read-only
2569 | STATUS current
2570 | DESCRIPTION
2571 | "application name."
2572 | ::= { applicationsTableEntry 2 }
2573 |
2574 | appVersion OBJECT-TYPE
2575 | SYNTAX OCTET STRING
2576 | MAX-ACCESS read-only
2577 | STATUS current
2578 | DESCRIPTION
2579 | "application version."
2580 | ::= { applicationsTableEntry 3 }
2581 |
2582 | appInstallationDate OBJECT-TYPE
2583 | SYNTAX OCTET STRING
2584 | MAX-ACCESS read-only
2585 | STATUS current
2586 | DESCRIPTION
2587 | "application installation date."
2588 | ::= { applicationsTableEntry 4 }
2589 |
2590 | appLatestVersion OBJECT-TYPE
2591 | SYNTAX OCTET STRING
2592 | MAX-ACCESS read-only
2593 | STATUS current
2594 | DESCRIPTION
2595 | "application lated version."
2596 | ::= { applicationsTableEntry 5 }
2597 |
2598 | appDisplayPermission OBJECT-TYPE
2599 | SYNTAX INTEGER {
2600 | adminOnly(0),
2601 | adminGroup(1),
2602 | everyUser(2)
2603 | }
2604 | MAX-ACCESS read-only
2605 | STATUS current
2606 | DESCRIPTION
2607 | "application can browse by whom."
2608 | ::= { applicationsTableEntry 6 }
2609 |
2610 |
2611 |
2612 | END
--------------------------------------------------------------------------------