redis, cloudwatch agent 추가

This commit is contained in:
ByeonJungHun
2023-11-29 15:54:03 +09:00
parent 3fa69442b3
commit b23876c206
10 changed files with 156 additions and 3 deletions

View File

@@ -158,7 +158,12 @@ ansible-galaxy install dsk_bot.datasaker
|`maria_database_port`|`maria_database_port`에 Maria port 설정.|`None`| |`maria_database_port`|`maria_database_port`에 Maria port 설정.|`None`|
|`maria_database_name`|`maria_database_name`에 Maria database 설정.|`None`| |`maria_database_name`|`maria_database_name`에 Maria database 설정.|`None`|
|`maria_agent_port`|`maria_agent_port`에 Maria agent port 설정.|`9104`| |`maria_agent_port`|`maria_agent_port`에 Maria agent port 설정.|`9104`|
|`reids_address`|`reids_address`에 redis address 설정.|`-`|
|`redis_agent_port`|`redis_agent_port`에 redis agent port 설정.|`19121`|
|`redis_user`|`redis_user`에 redis user 설정. (없을 경우 생략)|`-`|
|`redis_pass`|`redis_pass`에 redis user password 설정. (없을 경우 생략)|`-`|
|`aws_access_key_id`|`aws_access_key_id`에 cloudwatch agent 사용을 위한 key id 설정.|`-`|
|`aws_secret_access_key`|`aws_secret_access_key`에 cloudwatch agent 사용을 위한 access key 설정.|`-`|
#### Ansible Playbook 상세 설정 Example (Linux) #### Ansible Playbook 상세 설정 Example (Linux)
```yml ```yml

View File

@@ -158,7 +158,12 @@ ansible-galaxy install dsk_bot.datasaker
|`maria_database_port`|`maria_database_port`에 Maria port 설정.|`None`| |`maria_database_port`|`maria_database_port`에 Maria port 설정.|`None`|
|`maria_database_name`|`maria_database_name`에 Maria database 설정.|`None`| |`maria_database_name`|`maria_database_name`에 Maria database 설정.|`None`|
|`maria_agent_port`|`maria_agent_port`에 Maria agent port 설정.|`9104`| |`maria_agent_port`|`maria_agent_port`에 Maria agent port 설정.|`9104`|
|`reids_address`|`reids_address`에 redis address 설정.|`-`|
|`redis_agent_port`|`redis_agent_port`에 redis agent port 설정.|`19121`|
|`redis_user`|`redis_user`에 redis user 설정. (없을 경우 생략)|`-`|
|`redis_pass`|`redis_pass`에 redis user password 설정. (없을 경우 생략)|`-`|
|`aws_access_key_id`|`aws_access_key_id`에 cloudwatch agent 사용을 위한 key id 설정.|`-`|
|`aws_secret_access_key`|`aws_secret_access_key`에 cloudwatch agent 사용을 위한 access key 설정.|`-`|
#### Ansible Playbook 상세 설정 Example (Linux) #### Ansible Playbook 상세 설정 Example (Linux)
```yml ```yml

View File

@@ -60,6 +60,8 @@ mysql_agent_image_tag: "latest"
plan_mysql_agent_image_tag: "latest" plan_mysql_agent_image_tag: "latest"
maria_agent_image_tag: "latest" maria_agent_image_tag: "latest"
plan_maria_agent_image_tag: "latest" plan_maria_agent_image_tag: "latest"
redis_agent_image_tag: "latest"
cloudwatch_agent_image_tag: "latest"
container_agent_restart_policy: "always" container_agent_restart_policy: "always"
node_agent_restart_policy: "always" node_agent_restart_policy: "always"
@@ -71,6 +73,8 @@ mysql_agent_restart_policy: "always"
plan_mysql_agent_restart_policy: "always" plan_mysql_agent_restart_policy: "always"
maria_agent_restart_policy: "always" maria_agent_restart_policy: "always"
plan_maria_agent_restart_policy: "always" plan_maria_agent_restart_policy: "always"
redis_agent_restart_policy: "always"
cloudwatch_agent_restart_policy: "always"
container_agent_log_level: "INFO" container_agent_log_level: "INFO"
node_agent_log_level: "INFO" node_agent_log_level: "INFO"

View File

@@ -1,4 +1,7 @@
--- ---
## host agent ##
- name: "Check dsk-node-agent" - name: "Check dsk-node-agent"
include_tasks: dsk-node-agent.yml include_tasks: dsk-node-agent.yml
when: '"dsk-node-agent" in datasaker_agents' when: '"dsk-node-agent" in datasaker_agents'
@@ -35,6 +38,16 @@
include_tasks: dsk-plan-maria-agent.yml include_tasks: dsk-plan-maria-agent.yml
when: '"dsk-plan-maria-agent" in datasaker_agents' when: '"dsk-plan-maria-agent" in datasaker_agents'
- name: "Check dsk-redis-agent"
include_tasks: dsk-redis-agent.yml
when: '"dsk-redis-agent" in datasaker_agents'
- name: "Check dsk-cloudwatch-agent"
include_tasks: dsk-cloudwatch-agent.yml
when: '"dsk-cloudwatch-agent" in datasaker_agents'
## docker agent ##
- name: "Check dsk-docker-node-agent" - name: "Check dsk-docker-node-agent"
include_tasks: dsk-docker-node-agent.yml include_tasks: dsk-docker-node-agent.yml
when: '"dsk-docker-node-agent" in datasaker_docker_agents' when: '"dsk-docker-node-agent" in datasaker_docker_agents'
@@ -70,3 +83,11 @@
- name: "Check dsk-docker-maria-agent" - name: "Check dsk-docker-maria-agent"
include_tasks: dsk-docker-maria-agent.yml include_tasks: dsk-docker-maria-agent.yml
when: '"dsk-docker-maria-agent" in datasaker_docker_agents' when: '"dsk-docker-maria-agent" in datasaker_docker_agents'
- name: "Check dsk-docker-redis-agent"
include_tasks: dsk-docker-redis-agent.yml
when: '"dsk-docker-redis-agent" in datasaker_agents'
- name: "Check dsk-docker-cloudwatch-agent"
include_tasks: dsk-docker-cloudwatch-agent.yml
when: '"dsk-docker-cloudwatch-agent" in datasaker_agents'

View File

@@ -0,0 +1,20 @@
---
- name: "Make agent Directory"
ansible.builtin.file:
path: "{{ datasaker_host_path }}/{{ item }}"
state: directory
recurse: yes
owner: root
group: root
with_items:
- "dsk-cloudwatch-agent"
- name: "Create agent env"
ansible.builtin.file:
path: "{{ datasaker_host_path }}/dsk-cloudwatch-agent/agent.env"
state: touch
- name: "Setting dsk-cloudwatch-agent env"
template:
src: agent.env.j2
dest: "{{ datasaker_host_path }}/dsk-cloudwatch-agent/agent.env"

View File

@@ -0,0 +1,25 @@
---
- name: "Create datasaker local directory"
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: "{{datasaker_docker_user}}"
group: "{{datasaker_docker_group}}"
mode: '0755'
with_items:
- "{{ datasaker_docker_path }}/agent/dsk-cloudwatcj-agent"
- name: "Run Datasaker Cloudwatch Agent"
ansible.builtin.docker_container:
name: dsk-docker-cloudwatch-agent
image: "datasaker/dsk-cloudwatch-agent:{{ cloudwatch_agent_image_tag }}"
state: started
restart_policy: "{{ cloudwatch_agent_restart_policy }}"
detach: true
env:
DSK_CLUSTER_ID: "{{ cloudwatch_agent_cluster | default('unknown') }}"
AWS_ACCESS_KEY_ID: "{{ aws_access_key_id }}"
AWS_SECRET_ACCESS_KEY: "{{ aws_secret_access_key }}"
volumes:
- "{{ datasaker_docker_path }}:/var/datasaker/"
- "{{ datasaker_docker_global_config }}:/etc/datasaker/global-config.yml:ro"

View File

@@ -0,0 +1,32 @@
---
- name: "Create datasaker local directory"
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: "{{datasaker_docker_user}}"
group: "{{datasaker_docker_group}}"
mode: '0755'
with_items:
- "{{ datasaker_docker_path }}/agent/dsk-redis-agent"
- name: "Create agent config"
ansible.builtin.file:
path: "{{ datasaker_docker_path }}/dsk-docker-redis-agent-config.yml"
state: touch
- name: "Setting dsk-redis-agent config"
template:
src: redis-agent-config.yml.j2
dest: "{{ datasaker_docker_path }}/dsk-docker-redis-agent-config.yml"
- name: "Run Datasaker Redis Agent"
ansible.builtin.docker_container:
name: dsk-docker-redis-agent
image: "datasaker/dsk-redis-agent:{{ redis_agent_image_tag }}"
state: started
restart_policy: "{{ redis_agent_restart_policy }}"
detach: true
volumes:
- "{{ datasaker_docker_path }}:/var/datasaker/"
- "{{ datasaker_docker_global_config }}:/etc/datasaker/global-config.yml:ro"
- "{{ datasaker_docker_path }}/dsk-docker-redis-agent-config.yml:/etc/datasaker/dsk-redis-agent/agent-config.yml:ro"

20
tasks/dsk-redis-agent.yml Normal file
View File

@@ -0,0 +1,20 @@
---
- name: "Make agent Directory"
ansible.builtin.file:
path: "{{ datasaker_host_path }}/{{ item }}"
state: directory
recurse: yes
owner: root
group: root
with_items:
- "dsk-redis-agent"
- name: "Create agent config"
ansible.builtin.file:
path: "{{ datasaker_host_path }}/dsk-redis-agent/agent-config.yml"
state: touch
- name: "Setting dsk-redis-agent config"
template:
src: redis-agent-config.yml.j2
dest: "{{ datasaker_host_path }}/dsk-redis-agent/agent-config.yml"

2
templates/agent.env.j2 Normal file
View File

@@ -0,0 +1,2 @@
AWS_ACCESS_KEY_ID={{ aws_access_key_id | default('None') }}
AWS_SECRET_ACCESS_KEY={{ aws_secret_access_key | default('None') }}

View File

@@ -0,0 +1,19 @@
agent:
metadata:
agent_name: "{{ redis_agent_name | default('dsk-redis-agent') }}"
cluster_id: "{{ redis_agent_cluster | default('unknown') }}"
option:
external_labels:
redis: {{ reids_address }}
exporter_config:
command: "/usr/bin/dsk-redis-exporter"
port: {{ redis_agent_port | default('19121') }}
args:
{% if ((redis_user) and (redis_pass)) %}
- --redis.addr=redis://{{ redis_user }}:{{ redis_pass }}@{{ redis_address }}
{% else %}
- --redis.addr=redis://{{ redis_address }}
{% endif %}
scrape_configs:
- job_name: dsk-redis-agent
url: "localhost:{{ redis_agent_port | default('19121') }}"