WatchLog是一个云原生容器日志采集工具。你可以使用它来收集Docker、Containerd的容器日志并发送到集中式日志管理系统中,例如elasticsearch kafka redis等。
Input
| Service | Version |
|---|---|
| Docker | 推荐 20.x ➕ |
| Containerd | 推荐 1.2.x ➕ |
Output
| Service | Version |
|---|---|
| Elasticsearch | 推荐 7.10.x ➕ |
| Kafka | 推荐 2.x ➕ |
| Redis | 推荐 6.x ➕ |
- LOG_PREFIX:日志前缀标识, 默认是watchlog, 支持自定义
- LOG_BASE_DIR:日志存储目录(挂载到WatchLog容器内的路径),默认
/var/log/containers - RUNTIME_TYPE:运行时类型,支持
dockercontainerd - LOGGING_OUTPUT:日志输出类型,支持主流的
kafkaelasticsearchredisfile等
LOG_PREFIX 详细
- name: LOG_PREFIX
value: watchlogLOG_BASE_DIR 详细
- name: LOG_BASE_DIR
value: "/var/log/containers"RUNTIME_TYPE 详细
- name: RUNTIME_TYPE
value: dockerLOGGING_OUTPUT 详细配置
- kafka
- name: LOGGING_OUTPUT
value: kafka
- name: KAFKA_BROKERS
value: 192.168.1.190:9092- elasticsearch
- name: LOGGING_OUTPUT
value: elasticsearch
- name: ELASTICSEARCH_HOST
value: "192.168.1.190"
- name: ELASTICSEARCH_PORT
value: "9200"- redis
- name: LOGGING_OUTPUT
value: redis
- name: REDIS_HOST
value: "192.168.1.190"
- name: REDIS_PORT
value: "6379"
- name: REDIS_PASSWORD
value: "redis@123."- file
- name: LOGGING_OUTPUT
value: file
- name: FILE_PATH
value: "/tmp/filebeat"
- name: FILE_NAME
value: "filebeat"kubectl apply -f ./deploy/kubernetes/watchlog.yaml需要为每个被收集的Controller/Pod中, 注入日志采集前缀标志watchlog_{xxx}的环境变量, 前缀标识取决于 WatchLog 服务的环境变量 LOG_PREFIX, 默认情况下是 watchlog.
- env:
- name: watchlog_default-nginx
value: stdoutkubectl apply -f ./deploy/kubernetes/nginx.yaml- 如果你觉得 WatchLog 还不错,可以通过 Star 来表示你的喜欢
- 在公司或个人项目中使用 WatchLog,并帮忙推广给伙伴使用