Docker 容器日誌收集

2021-07-26 08:32:37 字數 2248 閱讀 4040

[root@node1 ]# cat ngxlog.sh

#!/bin/bash

nginx_logs_dir="/var/log/nginx/web/"

#nginx_pid_file="/var/log/nginx/nginx.pid"

pid=`ps -ef|grep nginx|grep apache|awk ''`

nginx_log_today="$nginx_logs_dir/access_`date +%y%m%d`.log"

[ -f "$nginx_log_today" ] && exit 1

mv $nginx_logs_dir/access.log $nginx_log_today

/bin/kill -usr1 $

[ -f $nginx_pid_file ] && /bin/kill -usr1 $(cat $nginx_pid_file)

鳥哥linux私房菜文件-第十九章、認識與分析登入檔案

[root@node1 ]# cat /etc/rsyslog.conf

.........

# log anything (except mail) of level info or higher.

# don't log private authentication messages!

*.info;mail.none;authpriv.none;cron.none;local1.none;local2.none /var/log/messages //不將日誌重複輸出到messages檔案

local1.* /var/log/nginx // 新增此項

& ~local2.* /var/log/web2log // 新增此項

& ~.........

[root@node1 ]# vim /etc/logrotate.d/syslog

/var/log/cron

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

/var/log/nginx //新增此項

/var/log/web2log // 新增此項,預設將會在/var/log 下建立對應檔案並寫入日誌

啟動容器[syslog-facility --> 此項對應設定的日誌]

[root@node1 ]# docker run -d --name nginx --log-driver=syslog --log-opt syslog-facility=local1 -p 81:80 nginx:v1

[root@node1 ]# docker run -d --name web2 --log-driver=syslog --log-opt syslog-facility=local2 -p 82:80 nginx:v1

[root@node1 ]# ll -h /var/log/

-rw------- 1 root root 89k 9月 30 10:45 /var/log/dp1web

-rw------- 1 root root 6.0k 9月 30 10:48 /var/log/nginx

[root@node1 ]# docker run -d --name n1 --log-driver=journald -p 90:80 nginx

[root@node1 ]# journalctl container_name=n1

使用python指令碼收集日誌:

[root@node1 ]# yum install python2-systemd -y

[root@node1 ]# cat log.py

#!/usr/bin/python

import systemd.journal

reader = systemd.journal.reader()

reader.add_match('container_name=web')

for msg in reader:

print ': '.format(**msg)

check config file:

[root@node1 ]# fluentd --dry-run -c fluent.conf*

docker容器使用loki收集日誌

loki進行日誌聚合處理 類似elk中的es promtail是日誌收集,類似elk中的logstash filebeat等,如果是只收集docker容器的日誌則可以用loki的docker plugin替代 grafana是日誌顯示,類似elk中的kibana,可以通過各種標籤和表示式過濾顯示日誌...

容器日誌收集ELK Filebeat Kafka

隨著容器如火如荼的發展,分布式的業務架構日誌收集便也成了我們需要重點考慮之一 傳統方式中已經有相對成熟的解決方案,無不外乎容器中我們同樣能夠採取相同的架構解決容器基於kubernetes的日誌收集問題 對於這套方案,網上已經有無數種介紹,在此就不再對各大元件進行贅述,僅做簡單描述 元件作用 優點fi...

docker日誌 及 docker容器日誌

docker容器的日誌是預設存在本地的 var lib docker containers container id container id json.log 裡。可以用以下命令查log檔案的位置 docker inspect container id grep log 或 docker insp...