Last active
November 21, 2019 04:03
-
-
Save wppurking/6573ef201baf401372af98f56d5f3f9c to your computer and use it in GitHub Desktop.
做过调整的 metricbeat.yaml, 权限部分调整, 配置也根据自己需要调整了
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
name: metricbeat-daemonset-config | |
namespace: kube-system | |
labels: | |
k8s-app: metricbeat | |
data: | |
metricbeat.yml: |- | |
metricbeat.config.modules: | |
# Mounted `metricbeat-daemonset-modules` configmap: | |
path: ${path.config}/modules.d/*.yml | |
# Reload module configs as they change: | |
reload.enabled: false | |
# To enable hints based autodiscover uncomment this: | |
#metricbeat.autodiscover: | |
# providers: | |
# - type: kubernetes | |
# host: ${NODE_NAME} | |
# hints.enabled: true | |
processors: | |
- add_cloud_metadata: | |
logging.level: warning | |
logging.metrics.enabled: false | |
# 使用 metricbeat -c /etc/metricbeat.yaml setup 来初始化 dashboard. (这个非常有用, 例如检查 System 的 Dashboard) | |
setup.kibana: | |
host: "${ELASTICSEARCH_HOST}:${KIBANA_PORT}" | |
protocol: "https" | |
username: ${ELASTICSEARCH_USERNAME} | |
password: ${ELASTICSEARCH_PASSWORD} | |
ssl.verification_mode: none | |
# 设置 ilm 的 policy life, 监控保留 60 天, 每 15 天一轮训, 最大 30g | |
setup.ilm.policy_file: /etc/indice-lifecycle.json | |
setup.template.settings: | |
# 根据收集的日志量级, 因为日志会每天一份, 如果一天的日志量小于 30g, 一个 shard 足够 | |
index.number_of_shards: 1 | |
# 这个日志并不是那么重要, 并且如果是单节点的话, 直接设置为 0 个副本 | |
index.number_of_replicas: 0 | |
# 针对时序数据, 时间增值, 不更新, 可不需要 _source | |
# 如果需要使用 k8s 的功能则不能关闭, 因为需要使用到这个信息 | |
_source.enabled: true | |
output.elasticsearch: | |
hosts: ['${ELASTICSEARCH_HOST:elasticsearch}:${ELASTICSEARCH_PORT:9200}'] | |
protocol: "https" | |
compression_level: 3 | |
ssl.verification_mode: none | |
username: ${ELASTICSEARCH_USERNAME} | |
password: ${ELASTICSEARCH_PASSWORD} | |
--- | |
apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
namespace: kube-system | |
name: metricbeat-indice-lifecycle | |
labels: | |
k8s-app: metricbeat | |
data: | |
indice-lifecycle.json: |- | |
{ | |
"policy": { | |
"phases": { | |
"hot": { | |
"actions": { | |
"rollover": { | |
"max_size": "30GB" , | |
"max_age": "15d" | |
} | |
} | |
}, | |
"delete": { | |
"min_age": "60d", | |
"actions": { | |
"delete": {} | |
} | |
} | |
} | |
} | |
} | |
--- | |
apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
name: metricbeat-daemonset-modules | |
namespace: kube-system | |
labels: | |
k8s-app: metricbeat | |
data: | |
system.yml: |- | |
- module: system | |
period: 10s | |
metricsets: | |
- cpu | |
- load | |
- memory | |
- network | |
- process | |
- process_summary | |
#- core | |
- diskio | |
#- socket | |
processes: ['.*'] | |
process.include_top_n: | |
by_cpu: 5 # include top 5 processes by CPU | |
by_memory: 5 # include top 5 processes by memory | |
- module: system | |
period: 1m | |
metricsets: | |
- filesystem | |
- fsstat | |
processors: | |
- drop_event.when.regexp: | |
system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib)($|/)' | |
kubernetes.yml: |- | |
- module: kubernetes | |
metricsets: | |
- node | |
- system | |
- pod | |
- container | |
- volume | |
period: 10s | |
host: ${NODE_NAME} | |
hosts: ["localhost:10255"] | |
# If using Red Hat OpenShift remove the previous hosts entry and | |
# uncomment these settings: | |
#hosts: ["https://${HOSTNAME}:10250"] | |
#bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token | |
#ssl.certificate_authorities: | |
#- /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt | |
- module: kubernetes | |
metricsets: | |
- proxy | |
period: 10s | |
host: ${NODE_NAME} | |
hosts: ["localhost:10249"] | |
--- | |
# Deploy a Metricbeat instance per node for node metrics retrieval | |
apiVersion: extensions/v1beta1 | |
kind: DaemonSet | |
metadata: | |
name: metricbeat | |
namespace: kube-system | |
labels: | |
k8s-app: metricbeat | |
spec: | |
template: | |
metadata: | |
labels: | |
k8s-app: metricbeat | |
spec: | |
# 需要在 maste 节点也收集信息 | |
tolerations: | |
- key: node-role.kubernetes.io/master | |
effect: NoSchedule | |
serviceAccountName: metricbeat | |
terminationGracePeriodSeconds: 30 | |
hostNetwork: true | |
dnsPolicy: ClusterFirstWithHostNet | |
containers: | |
- name: metricbeat | |
image: docker.elastic.co/beats/metricbeat:7.4.2 | |
args: [ | |
"-c", "/etc/metricbeat.yml", | |
"-e", | |
"-system.hostfs=/hostfs", | |
] | |
env: | |
- name: ELASTICSEARCH_HOST | |
value: efk.easya.cc | |
- name: ELASTICSEARCH_PORT | |
value: "9207" | |
- name: KIBANA_PORT | |
value: "5607" | |
- name: ELASTICSEARCH_USERNAME | |
value: elastic | |
- name: ELASTICSEARCH_PASSWORD | |
value: "iQS7zxAM383nWmA4lACo" | |
- name: NODE_NAME | |
valueFrom: | |
fieldRef: | |
fieldPath: spec.nodeName | |
securityContext: | |
runAsUser: 0 | |
resources: | |
limits: | |
memory: 200Mi | |
requests: | |
cpu: 100m | |
memory: 100Mi | |
volumeMounts: | |
- name: config | |
mountPath: /etc/metricbeat.yml | |
readOnly: true | |
subPath: metricbeat.yml | |
- name: metricbeat-indice-lifecycle | |
mountPath: /etc/indice-lifecycle.json | |
readOnly: true | |
subPath: indice-lifecycle.json | |
- name: modules | |
mountPath: /usr/share/metricbeat/modules.d | |
readOnly: true | |
- name: dockersock | |
mountPath: /var/run/docker.sock | |
- name: proc | |
mountPath: /hostfs/proc | |
readOnly: true | |
- name: cgroup | |
mountPath: /hostfs/sys/fs/cgroup | |
readOnly: true | |
volumes: | |
- name: proc | |
hostPath: | |
path: /proc | |
- name: cgroup | |
hostPath: | |
path: /sys/fs/cgroup | |
- name: dockersock | |
hostPath: | |
path: /var/run/docker.sock | |
- name: config | |
configMap: | |
defaultMode: 0600 | |
name: metricbeat-daemonset-config | |
- name: metricbeat-indice-lifecycle | |
configMap: | |
defaultMode: 0600 | |
name: metricbeat-indice-lifecycle | |
- name: modules | |
configMap: | |
defaultMode: 0600 | |
name: metricbeat-daemonset-modules | |
- name: data | |
hostPath: | |
path: /var/lib/metricbeat-data | |
type: DirectoryOrCreate | |
--- | |
apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
name: metricbeat-deployment-config | |
namespace: kube-system | |
labels: | |
k8s-app: metricbeat | |
data: | |
metricbeat.yml: |- | |
metricbeat.config.modules: | |
# Mounted `metricbeat-daemonset-modules` configmap: | |
path: ${path.config}/modules.d/*.yml | |
# Reload module configs as they change: | |
reload.enabled: false | |
processors: | |
- add_cloud_metadata: | |
logging.level: info | |
logging.metrics.enabled: false | |
# 设置 ilm 的 policy life, 监控保留 60 天, 每 15 天一轮训, 最大 30g | |
setup.ilm.policy_file: /etc/indice-lifecycle.json | |
setup.template.settings: | |
# 根据收集的日志量级, 因为日志会每天一份, 如果一天的日志量小于 30g, 一个 shard 足够 | |
index.number_of_shards: 1 | |
# 这个日志并不是那么重要, 并且如果是单节点的话, 直接设置为 0 个副本 | |
index.number_of_replicas: 0 | |
# 针对时序数据, 时间增值, 不更新, 可不需要 _source | |
# 如果需要使用 k8s 的功能则不能关闭, 因为需要使用到这个信息 | |
_source.enabled: true | |
output.elasticsearch: | |
hosts: ['${ELASTICSEARCH_HOST:elasticsearch}:${ELASTICSEARCH_PORT:9200}'] | |
protocol: "https" | |
compression_level: 3 | |
ssl.verification_mode: none | |
username: ${ELASTICSEARCH_USERNAME} | |
password: ${ELASTICSEARCH_PASSWORD} | |
--- | |
apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
name: metricbeat-deployment-modules | |
namespace: kube-system | |
labels: | |
k8s-app: metricbeat | |
data: | |
# This module requires `kube-state-metrics` up and running under `kube-system` namespace | |
kubernetes.yml: |- | |
- module: kubernetes | |
metricsets: | |
- state_node | |
- state_deployment | |
- state_replicaset | |
- state_pod | |
- state_container | |
# Uncomment this to get k8s events: | |
#- event | |
period: 10s | |
host: ${NODE_NAME} | |
hosts: ["kube-state-metrics:8080"] | |
--- | |
# Deploy singleton instance in the whole cluster for some unique data sources, like kube-state-metrics | |
apiVersion: apps/v1beta1 | |
kind: Deployment | |
metadata: | |
name: metricbeat-state | |
namespace: kube-system | |
labels: | |
k8s-app: metricbeat | |
spec: | |
template: | |
metadata: | |
labels: | |
k8s-app: metricbeat-state | |
spec: | |
serviceAccountName: metricbeat | |
hostNetwork: true | |
dnsPolicy: ClusterFirstWithHostNet | |
containers: | |
- name: metricbeat | |
image: docker.elastic.co/beats/metricbeat:7.4.2 | |
args: [ | |
"-c", "/etc/metricbeat.yml", | |
"-e", | |
] | |
env: | |
- name: ELASTICSEARCH_HOST | |
value: efk.easya.cc | |
- name: ELASTICSEARCH_PORT | |
value: "9207" | |
- name: ELASTICSEARCH_USERNAME | |
value: elastic | |
- name: ELASTICSEARCH_PASSWORD | |
value: "iQS7zxAM383nWmA4lACo" | |
- name: NODE_NAME | |
valueFrom: | |
fieldRef: | |
fieldPath: spec.nodeName | |
securityContext: | |
runAsUser: 0 | |
resources: | |
limits: | |
memory: 200Mi | |
requests: | |
cpu: 100m | |
memory: 100Mi | |
volumeMounts: | |
- name: config | |
mountPath: /etc/metricbeat.yml | |
readOnly: true | |
subPath: metricbeat.yml | |
- name: metricbeat-indice-lifecycle | |
mountPath: /etc/indice-lifecycle.json | |
readOnly: true | |
subPath: indice-lifecycle.json | |
- name: modules | |
mountPath: /usr/share/metricbeat/modules.d | |
readOnly: true | |
volumes: | |
- name: config | |
configMap: | |
defaultMode: 0600 | |
name: metricbeat-deployment-config | |
- name: metricbeat-indice-lifecycle | |
configMap: | |
defaultMode: 0600 | |
name: metricbeat-indice-lifecycle | |
- name: modules | |
configMap: | |
defaultMode: 0600 | |
name: metricbeat-deployment-modules | |
--- | |
apiVersion: rbac.authorization.k8s.io/v1beta1 | |
kind: ClusterRoleBinding | |
metadata: | |
name: metricbeat | |
subjects: | |
- kind: ServiceAccount | |
name: metricbeat | |
namespace: kube-system | |
roleRef: | |
kind: ClusterRole | |
name: metricbeat | |
apiGroup: rbac.authorization.k8s.io | |
--- | |
apiVersion: rbac.authorization.k8s.io/v1beta1 | |
kind: ClusterRole | |
metadata: | |
name: metricbeat | |
labels: | |
k8s-app: metricbeat | |
rules: | |
- apiGroups: | |
- "extensions" | |
- "apps" | |
- "" | |
resources: | |
- namespaces | |
- pods | |
- events | |
- deployments | |
- nodes | |
- replicasets | |
verbs: | |
- get | |
- list | |
- watch | |
--- | |
apiVersion: v1 | |
kind: ServiceAccount | |
metadata: | |
name: metricbeat | |
namespace: kube-system | |
labels: | |
k8s-app: metricbeat |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
增加对 index manager 的处理, metric 最长 60 天, 索引达到 30g 或者 15 天进行索引滚动