tartansandal.awslogs-setup
awslogs-setup
Richten Sie den AWS CloudWatch Logs-Agent von Grund auf neu ein.
Im Gegensatz zu ähnlichen Rollen wird hier das Skript awslogs-agent-setup.py
nicht aufgerufen. Stattdessen wurde dieses Skript in eine Reihe von Dateien, Vorlagen und Ansible-Aufgaben zerlegt, die ausgeführt werden können, um dieselben (nicht-interaktiven) Ergebnisse zu erzielen.
Dies ermöglicht es uns, die Agenteneinrichtung klar von der Agenten-Konfiguration zu trennen. Letztere wird sehr spezifisch für Ihr System sein und sollte wahrscheinlich von einer separaten Rolle behandelt werden, die awslogs-setup
als Abhängigkeit hat (siehe unten).
Eine Kopie des ursprünglichen awslogs-agent-setup.py-Skripts
befindet sich im Verzeichnis /src
zur Referenz.
Anforderungen
Für die Verwendung mit EC2-Linux-Instanzen, die auf AWS ausgeführt werden.
Rollenvariablen
Sie müssen wahrscheinlich die AWS-Region festlegen, die vom installierten aws-cli
verwendet wird. Standardmäßig ist dies:
awslogs_setup_region: ap-southeast-2
Die Einrichtung installiert ein "Launcher"-Skript und ein Agenten-Daemon-"Nanny"-Skript, das versucht, sicherzustellen, dass der Agent immer läuft. Dies erfordert, dass ein paar Pfade zu Systembefehlen angegeben werden. Die folgenden Standardwerte sollten auf den meisten modernen Systemen funktionieren:
awslogs_setup_launcher_nice: /usr/bin/nice
awslogs_setup_nanny_ps: /usr/bin/ps
awslogs_setup_nanny_cat: /usr/bin/cat
awslogs_setup_nanny_grep: /usr/bin/grep
awslogs_setup_nanny_service: /usr/sbin/service
Wenn Sie jedoch ein ungewöhnliches (oder altes) System haben, können diese überschrieben werden.
Beispiel-Playbook
Diese Rolle richtet nur den awslogs-Agenten ein. Die Konfiguration des Agenten bleibt Ihnen überlassen. Dies ist sehr einfach, kann aber sehr spezifisch für Ihr System sein.
- hosts: servers
vars:
awslogs_setup_region: us-east-1 # oder über das Inventar festlegen
roles:
- tartansandal.awslogs-setup
handlers:
- name: awslogs neu starten
service: awslogs state=restarted
post_tasks:
- name: awslogs für Systemprotokolldateien konfigurieren
template:
src: awslogs.conf.j2
dest: /var/awslogs/etc/awslogs.conf
notify: awslogs neu starten
# Verwenden Sie das Verzeichnis /var/awslogs/etc/config/ für dienstspezifische Konfigurationen
- name: awslogs für nginx-Protokolldateien konfigurieren
template:
src: nginx-awslogs.conf.j2
dest: /var/awslogs/etc/config/nginx.conf
notify: awslogs neu starten
Die oben gezeigten post_tasks
können in separate Rollen ausgegliedert werden, die awslogs-setup
als Abhängigkeit haben.
Siehe http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/AgentReference.html für Details zur Konfiguration des Agenten.
ToDo
- Erstellen Sie eine systemd-Konfiguration zur Verwaltung des Launcher-Skripts.
Lizenz
BSD