Я создаю для Экспорт журналов для журналов, созданных в Ведение журнала Google Stackdriver для всех виртуальных машин и кластеров Compute Engine, присутствующих в проекте.
Как мы знаем, назначение экспорта можеттолько be Облачное хранилище, Cloud Pub / Sub, BigQuery .Следовательно, я не могу различать журналы, созданные несколькими виртуальными машинами.
Например, : присутствует несколько виртуальных машин, и все они генерируют syslog
, и в качестве места назначения используется одна облачная корзина, приемники для всех виртуальных машин экспортируют журналы в каталогпо имени syslog
в том же облачном ведре.
Чтобы преодолеть вышеуказанную проблему, я следовал пути, которым мы настраиваем агент ведения журнала StackDriver и меняем тег logName.См. this для более подробной информации.
Используя описанный выше подход, я могу изменить тег logName с syslog
на [instance-name]-syslog
и, следовательно, приемники экспортируют системный журнал из этого экземпляра GCE в одну папку и так далее.
Сейчас я изменяю тег в файлах /etc/google-fluentd/config.d/[APPLICATIOON-NAME].conf
вручную.Например, вот файл /etc/google-fluentd/config.d/syslog.conf
:
<source>
@type tail
# Parse the timestamp, but still collect the entire line as 'message'
format syslog
path /var/log/syslog
pos_file /var/lib/google-fluentd/pos/syslog.pos
read_from_head true
tag syslog
</source>
Теперь я заменяю syslog выше на [instance-name] -syslog вручную, выполнивSSH во всех виртуальных машинах.Я ищу способ автоматизировать вышеуказанную вещь.Что было бы наиболее подходящим способом сделать это?(PS Все виртуальные машины раскручиваются с помощью Terraform)