Skip to content

Commit 4de4b66

Browse files
authored
Merge pull request #118 from SumoLogic/maisie-helm-chart
Helm Chart initial commit
2 parents 152cca5 + 318b102 commit 4de4b66

22 files changed

+776
-0
lines changed

deploy/helm/sumologic/.helmignore

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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+
*~
18+
# Various IDEs
19+
.project
20+
.idea/
21+
*.tmproj
22+
.vscode/

deploy/helm/sumologic/Chart.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: v1
2+
appVersion: "0.0.0"
3+
description: A Helm chart for collecting Kubernetes logs, metrics and events into Sumo Logic.
4+
name: sumologic
5+
version: 0.1.0
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<buffer>
2+
@type memory
3+
compress gzip
4+
flush_interval "#{ENV['FLUSH_INTERVAL']}"
5+
flush_thread_count "#{ENV['NUM_THREADS']}"
6+
chunk_limit_size "#{ENV['CHUNK_LIMIT_SIZE']}"
7+
total_limit_size "#{ENV['TOTAL_LIMIT_SIZE']}"
8+
</buffer>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<source>
2+
@type prometheus
3+
metrics_path /metrics
4+
port 24231
5+
</source>
6+
<source>
7+
@type prometheus_output_monitor
8+
</source>
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{{- if .Values.watchResourceEventsOverrides }}
2+
{{- range $name, $version := .Values.watchResourceEventsOverrides }}
3+
<source>
4+
@type events
5+
deploy_namespace {{ $.Release.Namespace }}
6+
resource_name {{ $name }}
7+
api_version {{ $version }}
8+
</source>
9+
{{- end }}
10+
{{- else }}
11+
<source>
12+
@type events
13+
deploy_namespace {{ .Release.Namespace }}
14+
</source>
15+
{{- end }}
16+
<source>
17+
@type prometheus
18+
metrics_path /metrics
19+
port 24231
20+
</source>
21+
<source>
22+
@type prometheus_output_monitor
23+
</source>
24+
<match kubernetes.**>
25+
@type sumologic
26+
@id sumologic.endpoint.events
27+
endpoint "#{ENV['SUMO_ENDPOINT_EVENTS']}"
28+
data_type logs
29+
disable_cookies true
30+
verify_ssl "#{ENV['VERIFY_SSL']}"
31+
proxy_uri "#{ENV['PROXY_URI']}"
32+
<buffer>
33+
@type memory
34+
compress gzip
35+
flush_interval "#{ENV['FLUSH_INTERVAL']}"
36+
flush_thread_count "#{ENV['NUM_THREADS']}"
37+
chunk_limit_size "#{ENV['CHUNK_LIMIT_SIZE']}"
38+
total_limit_size "#{ENV['TOTAL_LIMIT_SIZE']}"
39+
</buffer>
40+
</match>
41+
{{- if .Values.fluentdLogLevel }}
42+
<system>
43+
log_level {{ .Values.fluentdLogLevel }}
44+
</system>
45+
{{- end }}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<source>
2+
@type forward
3+
port 24321
4+
bind 0.0.0.0
5+
</source>
6+
@include logs.source.containers.conf
7+
@include logs.source.systemd.conf
8+
{{- if .Values.fluentdLogLevel }}
9+
<system>
10+
log_level {{ .Values.fluentdLogLevel }}
11+
</system>
12+
{{- end }}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
data_type logs
2+
log_key log
3+
endpoint "#{ENV['SUMO_ENDPOINT_LOGS']}"
4+
verify_ssl "#{ENV['VERIFY_SSL']}"
5+
log_format "#{ENV['LOG_FORMAT']}"
6+
add_timestamp "#{ENV['ADD_TIMESTAMP']}"
7+
timestamp_key "#{ENV['TIMESTAMP_KEY']}"
8+
proxy_uri "#{ENV['PROXY_URI']}"
9+
@include buffer.output.conf
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<filter containers.**>
2+
@type concat
3+
key log
4+
multiline_start_regexp "#{ENV['MULTILINE_START_REGEXP']}"
5+
separator "#{ENV['CONCAT_SEPARATOR']}"
6+
timeout_label @NORMAL
7+
</filter>
8+
<match containers.**>
9+
@type relabel
10+
@label @NORMAL
11+
</match>
12+
<label @NORMAL>
13+
<filter containers.**>
14+
@type kubernetes_metadata
15+
@log_level warn
16+
annotation_match ["sumologic\.com.*"]
17+
de_dot false
18+
watch "#{ENV['K8S_METADATA_FILTER_WATCH']}"
19+
ca_file "#{ENV['K8S_METADATA_FILTER_CA_FILE']}"
20+
verify_ssl "#{ENV['K8S_METADATA_FILTER_VERIFY_SSL']}"
21+
client_cert "#{ENV['K8S_METADATA_FILTER_CLIENT_CERT']}"
22+
client_key "#{ENV['K8S_METADATA_FILTER_CLIENT_KEY']}"
23+
bearer_token_file "#{ENV['K8S_METADATA_FILTER_BEARER_TOKEN_FILE']}"
24+
cache_size "#{ENV['K8S_METADATA_FILTER_BEARER_CACHE_SIZE']}"
25+
cache_ttl "#{ENV['K8S_METADATA_FILTER_BEARER_CACHE_TTL']}"
26+
tag_to_kubernetes_name_regexp '.+?\.containers\.(?<pod_name>[^_]+)_(?<namespace>[^_]+)_(?<container_name>.+)-(?<docker_id>[a-z0-9]{64})\.log$'
27+
merge_json_log false
28+
</filter>
29+
<filter **>
30+
@type enhance_k8s_metadata
31+
in_namespace_path '$.kubernetes.namespace_name'
32+
in_pod_path '$.kubernetes.pod_name'
33+
data_type logs
34+
</filter>
35+
<filter containers.**>
36+
@type kubernetes_sumologic
37+
source_name "#{ENV['SOURCE_NAME']}"
38+
source_host "#{ENV['SOURCE_HOST']}"
39+
log_format "#{ENV['LOG_FORMAT']}"
40+
kubernetes_meta "#{ENV['KUBERNETES_META']}"
41+
kubernetes_meta_reduce "#{ENV['KUBERNETES_META_REDUCE']}"
42+
add_stream "#{ENV['ADD_STREAM']}"
43+
add_time "#{ENV['ADD_TIME']}"
44+
source_category "#{ENV['SOURCE_CATEGORY']}"
45+
source_category_prefix "#{ENV['SOURCE_CATEGORY_PREFIX']}"
46+
source_category_replace_dash "#{ENV['SOURCE_CATEGORY_REPLACE_DASH']}"
47+
exclude_namespace_regex "#{ENV['EXCLUDE_NAMESPACE_REGEX']}"
48+
exclude_pod_regex "#{ENV['EXCLUDE_POD_REGEX']}"
49+
exclude_container_regex "#{ENV['EXCLUDE_CONTAINER_REGEX']}"
50+
exclude_host_regex "#{ENV['EXCLUDE_HOST_REGEX']}"
51+
</filter>
52+
<match **>
53+
@type sumologic
54+
@id sumologic.endpoint.logs
55+
@include logs.output.conf
56+
</match>
57+
</label>
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<match host.kubelet.**>
2+
@type relabel
3+
@label @KUBELET
4+
</match>
5+
<label @KUBELET>
6+
<filter host.kubelet.**>
7+
@type kubernetes_sumologic
8+
source_category kubelet
9+
source_name k8s_kubelet
10+
source_category_prefix "#{ENV['SOURCE_CATEGORY_PREFIX']}"
11+
exclude_facility_regex "#{ENV['EXCLUDE_FACILITY_REGEX']}"
12+
exclude_host_regex "#{ENV['EXCLUDE_HOST_REGEX']}"
13+
exclude_priority_regex "#{ENV['EXCLUDE_PRIORITY_REGEX']}"
14+
exclude_unit_regex "#{ENV['EXCLUDE_UNIT_REGEX']}"
15+
</filter>
16+
<match **>
17+
@type sumologic
18+
@id sumologic.endpoint.logs.kubelet
19+
@include logs.output.conf
20+
</match>
21+
</label>
22+
<match host.**>
23+
@type relabel
24+
@label @SYSTEMD
25+
</match>
26+
<label @SYSTEMD>
27+
<filter host.**>
28+
@type kubernetes_sumologic
29+
source_category system
30+
source_category_prefix "#{ENV['SOURCE_CATEGORY_PREFIX']}"
31+
exclude_facility_regex "#{ENV['EXCLUDE_FACILITY_REGEX']}"
32+
exclude_host_regex "#{ENV['EXCLUDE_HOST_REGEX']}"
33+
exclude_priority_regex "#{ENV['EXCLUDE_PRIORITY_REGEX']}"
34+
exclude_unit_regex "#{ENV['EXCLUDE_UNIT_REGEX']}"
35+
</filter>
36+
<filter host.**>
37+
@type record_modifier
38+
<record>
39+
_sumo_metadata ${record["_sumo_metadata"][:source] = tag_parts[1]; record["_sumo_metadata"]}
40+
</record>
41+
</filter>
42+
<match **>
43+
@type sumologic
44+
@id sumologic.endpoint.logs.systemd
45+
@include logs.output.conf
46+
</match>
47+
</label>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<source>
2+
@type http
3+
port 9888
4+
<parse>
5+
@type protobuf
6+
</parse>
7+
</source>
8+
<match prometheus.metrics.operator.rule>
9+
@type datapoint
10+
tag prometheus.datapoint.operator.rule
11+
</match>
12+
<match prometheus.metrics**>
13+
@type datapoint
14+
tag prometheus.datapoint
15+
</match>
16+
<match prometheus.datapoint>
17+
@type rewrite_tag_filter
18+
<rule>
19+
key job
20+
pattern ^(.*)$
21+
tag ${tag}.$1
22+
</rule>
23+
</match>
24+
<filter prometheus.datapoint**>
25+
@type enhance_k8s_metadata
26+
</filter>
27+
<filter prometheus.datapoint**>
28+
@type prometheus_format
29+
relabel container_name:container,pod_name:pod
30+
</filter>
31+
<match prometheus.datapoint.apiserver**>
32+
@type sumologic
33+
@id sumologic.endpoint.metrics.apiserver
34+
endpoint "#{ENV['SUMO_ENDPOINT_METRICS_APISERVER']}"
35+
@include metrics.output.conf
36+
</match>
37+
<match prometheus.datapoint.kubelet**>
38+
@type sumologic
39+
@id sumologic.endpoint.metrics.kubelet
40+
endpoint "#{ENV['SUMO_ENDPOINT_METRICS_KUBELET']}"
41+
@include metrics.output.conf
42+
</match>
43+
<match prometheus.datapoint.kube-controller-manager**>
44+
@type sumologic
45+
@id sumologic.endpoint.metrics.kube.controller.manager
46+
endpoint "#{ENV['SUMO_ENDPOINT_METRICS_KUBE_CONTROLLER_MANAGER']}"
47+
@include metrics.output.conf
48+
</match>
49+
<match prometheus.datapoint.kube-scheduler**>
50+
@type sumologic
51+
@id sumologic.endpoint.metrics.kube.scheduler
52+
endpoint "#{ENV['SUMO_ENDPOINT_METRICS_KUBE_SCHEDULER']}"
53+
@include metrics.output.conf
54+
</match>
55+
<match prometheus.datapoint.kube-state**>
56+
@type sumologic
57+
@id sumologic.endpoint.metrics.kube.state
58+
endpoint "#{ENV['SUMO_ENDPOINT_METRICS_KUBE_STATE']}"
59+
@include metrics.output.conf
60+
</match>
61+
<match prometheus.datapoint.node-exporter**>
62+
@type sumologic
63+
@id sumologic.endpoint.metrics.node.exporter
64+
endpoint "#{ENV['SUMO_ENDPOINT_METRICS_NODE_EXPORTER']}"
65+
@include metrics.output.conf
66+
</match>
67+
<match prometheus.datapoint**>
68+
@type sumologic
69+
@id sumologic.endpoint.metrics
70+
endpoint "#{ENV['SUMO_ENDPOINT_METRICS']}"
71+
@include metrics.output.conf
72+
</match>
73+
{{- if .Values.fluentdLogLevel }}
74+
<system>
75+
log_level {{ .Values.fluentdLogLevel }}
76+
</system>
77+
{{- end }}

0 commit comments

Comments
 (0)