| {%- if grains.get('init') == 'systemd' %} |
| agent: |
| plugin: |
| fluent-plugin-systemd: |
| deb: ['td-agent-additional-plugins'] |
| config: |
| label: |
| default_metric: |
| filter: |
| metric_failed_user: |
| tag: metric.failed_user |
| type: prometheus |
| metric: |
| - name: failed_logins_total |
| type: counter |
| desc: The total number of failed logins. |
| label: |
| - name: host |
| value: ${Hostname} |
| metric_out_of_memory: |
| tag: metric.out_of_memory |
| type: prometheus |
| metric: |
| - name: out_of_memory_total |
| type: counter |
| desc: The total number of OOM. |
| label: |
| - name: host |
| value: ${Hostname} |
| metric_hdd_errors_parse: |
| tag: metric.hdd_errors |
| type: parser |
| key_name: Payload |
| parser: |
| type: regexp |
| format: '/(?<device>[sv]d[a-z]+\d*)/' |
| metric_hdd_errors: |
| tag: metric.hdd_errors |
| require: |
| - metric_hdd_errors_parse |
| type: prometheus |
| metric: |
| - name: hdd_errors_total |
| type: counter |
| desc: The total number of hdd errors. |
| label: |
| - name: host |
| value: ${Hostname} |
| - name: device |
| value: ${device} |
| systemd: |
| input: |
| systemd: |
| type: systemd |
| tag: systemd.source |
| path: /run/log/journal |
| pos_file: {{ pillar.fluentd.agent.dir.positiondb }}/systemd.source.pos |
| entry: |
| field_map: |
| MESSAGE: 'Payload' |
| _CMDLINE: 'process' |
| _PID: 'Pid' |
| _COMM: 'programname' |
| _SYSTEMD_UNIT: 'service' |
| syslog_identifier: 'ident' |
| priority: 'Severity' |
| field_map_strict: True |
| fields_strip_underscores: True |
| fields_lowercase: True |
| filter: |
| add_severity_label: |
| tag: systemd.source |
| type: record_transformer |
| enable_ruby: true |
| record: |
| - name: severity_label |
| value: '${ {"TRACE"=>8,"DEBUG"=>7,"INFO"=>6,"NOTICE"=>5,"WARNING"=>4,"ERROR"=>3,"CRITICAL"=>2,"ALERT"=>1,"EMERGENCY"=>0}.key(record["Severity"].to_i) }' |
| match: |
| rewrite_tag: |
| tag: systemd.source |
| type: rewrite_tag_filter |
| rule: |
| - name: ident |
| regexp: '^(.*)$' |
| result: __TAG__.$1 |
| push_to_default: |
| tag: 'systemd.source.*' |
| type: copy |
| store: |
| - type: relabel |
| label: default_output |
| - type: rewrite_tag_filter |
| rule: |
| - name: Payload |
| regexp: '^Invalid user' |
| result: metric.failed_user |
| - name: Payload |
| regexp: '^Out of memory' |
| result: metric.out_of_memory |
| - name: Payload |
| regexp: >- |
| 'error.*\b[sv]d[a-z]{1,2}\d{0,3}\b.*' |
| result: metric.hdd_errors |
| - name: Payload |
| regexp: >- |
| '\b[sv]d[a-z]{1,2}\d{0,3}\b.*error' |
| result: metric.hdd_errors |
| push_to_metric: |
| tag: 'metric.**' |
| type: relabel |
| label: default_metric |
| {%- endif %} |