diff options
Diffstat (limited to 'roles/loki')
| -rw-r--r-- | roles/loki/defaults/main.yml | 3 | ||||
| -rw-r--r-- | roles/loki/tasks/main.yml | 35 | ||||
| -rw-r--r-- | roles/loki/templates/loki.yml.j2 | 64 | ||||
| -rw-r--r-- | roles/loki/templates/promtail.yml.j2 | 23 | 
4 files changed, 125 insertions, 0 deletions
diff --git a/roles/loki/defaults/main.yml b/roles/loki/defaults/main.yml new file mode 100644 index 0000000..6808f54 --- /dev/null +++ b/roles/loki/defaults/main.yml @@ -0,0 +1,3 @@ +loki_configuration_file: /etc/loki/loki-config.yaml +loki_promtail_configuration_file: /etc/promtail/promtail-config.yaml +loki_user: _loki diff --git a/roles/loki/tasks/main.yml b/roles/loki/tasks/main.yml new file mode 100644 index 0000000..4584da1 --- /dev/null +++ b/roles/loki/tasks/main.yml @@ -0,0 +1,35 @@ +- name: install loki +  package: +    name: loki +    state: present + +- name: generate loki configuration +  template: &config_gen +    src: loki.yml.j2 +    dest: "{{ loki_configuration_file }}" +    owner: 0 +    group: 0 +    mode: 0644 + +- name: generate promtail configuration +  template: +    <<: *config_gen +    src: promtail.yml.j2 +    dest: "{{ loki_promtail_configuration_file }}" + +- name: add loki user to wheel group +  user: +    name: "{{ loki_user }}" +    groups: +      - 0 +      - daemon +    append: true + +- name: enable and restart loki daemons +  service: +    name: "{{ item }}" +    state: restarted +    enabled: true +  loop: +    - loki +    - promtail diff --git a/roles/loki/templates/loki.yml.j2 b/roles/loki/templates/loki.yml.j2 new file mode 100644 index 0000000..5c64993 --- /dev/null +++ b/roles/loki/templates/loki.yml.j2 @@ -0,0 +1,64 @@ +auth_enabled: false + +server: +  http_listen_port: 3100 + +ingester: +  lifecycler: +    address: 127.0.0.1 +    ring: +      kvstore: +        store: inmemory +      replication_factor: 1 +    final_sleep: 0s +  chunk_idle_period: 1h       # Any chunk not receiving new logs in this time will be flushed +  max_chunk_age: 1h           # All chunks will be flushed when they hit this age, default is 1h +  chunk_target_size: 1048576  # Loki will attempt to build chunks up to 1.5MB, flushing first if chunk_idle_period or max_chunk_age is reached first +  chunk_retain_period: 30s    # Must be greater than index read cache TTL if using an index cache (Default index read cache TTL is 5m) +  max_transfer_retries: 0     # Chunk transfers disabled + +schema_config: +  configs: +    - from: 2020-10-24 +      store: boltdb-shipper +      object_store: filesystem +      schema: v11 +      index: +        prefix: index_ +        period: 24h + +storage_config: +  boltdb_shipper: +    active_index_directory: /var/loki/boltdb-shipper-active +    cache_location: /var/loki/boltdb-shipper-cache +    cache_ttl: 24h         # Can be increased for faster performance over longer query periods, uses more disk space +    shared_store: filesystem +  filesystem: +    directory: /var/loki/chunks + +compactor: +  working_directory: /var/loki/boltdb-shipper-compactor +  shared_store: filesystem + +limits_config: +  reject_old_samples: true +  reject_old_samples_max_age: 168h + +chunk_store_config: +  max_look_back_period: 0s + +table_manager: +  retention_deletes_enabled: false +  retention_period: 0s + +ruler: +  storage: +    type: local +    local: +      directory: /tmp/loki/rules +  rule_path: /tmp/loki/rules-temp +  alertmanager_url: http://localhost:9093 +  ring: +    kvstore: +      store: inmemory +  enable_api: true diff --git a/roles/loki/templates/promtail.yml.j2 b/roles/loki/templates/promtail.yml.j2 new file mode 100644 index 0000000..16c580e --- /dev/null +++ b/roles/loki/templates/promtail.yml.j2 @@ -0,0 +1,23 @@ +server: +  http_listen_port: 9080 +  grpc_listen_port: 0 + +positions: +  filename: /var/promtail/positions.yaml + +clients: +  - url: http://localhost:3100/loki/api/v1/push + +scrape_configs: +  - job_name: system +    static_configs: +      - targets: +          - localhost +        labels: +          job: var_logs +          __path__: /var/log/*log +      - targets: +          - localhost +        labels: +          job: www_logs +          __path__: /var/www/logs/*log  |