Docker centos 安装syslog

  在通常的Linux服务器中,有一些服务本身没有日志,只能通过 tail -f /var/log/messages来查看其运行日志,比如nrpe server。但是,如果想在docker容器中实现这个功能就需要费点事了。具体步骤如下:

  1、安装rsyslog

# yum -y install rsyslog

  2、启动syslog服务

# rsyslogd

  3、测试是否在messages中生成日志

# logger "Hello World"

  结果发现,在messages中只有一下一行:"Aug  1 11:31:37 f2570fed2149 rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="73" x-info="http://www.rsyslog.com"] start",故可认定其未工作。原因是:“The problem was that in RHEL7 and Fedora we now use journald, which listens on /dev/log for incoming messages. In RHEL7 and Fedora, rsyslog actually reads messages from the journal via its API by default.But not all docker containers run systemd and journald. (Most don’t). In order to get the rsyslogd to work the way the user wanted, he would have to modify the configuration file, /etc/rsyslog.conf”。

  解决办法如下:

  1、修改syslog配置——  # vi /etc/rsyslog.conf

1、注释掉 $ModLoad imjournal
2、设置 $OmitLocalLogging 为 off
3、注释掉 $IMJournalStateFile imjournal.state

  2、提交容器至镜像,重新创建容器

[[email protected] home]# docker commit f2570fed2149 centos_with_syslog:v1.0
830e298b4c103f70154ec9c8ceae44ec4602ed22063dae8e13a3f9aff4c3260a
[[email protected] home]# docker run -d -p 223:222 -v /dev/log:/dev/log -ti centos_with_syslog:v1.0 /run.sh
dc2eb83e80ced6f553eb1dd7032489d37b4d934a9126f61dfbd4d6a2243e98f1

  3、测试验证

[[email protected] home]# docker exec -ti dc2eb83e80ced6f553eb1dd7032489d37b4d934a9126f61dfbd4d6a2243e98f1 /bin/bash
[[email protected] /]# logger "hello everyone"
[[email protected] /]# exit
exit
[[email protected] home]# tail -f /var/log/messages   (注意实在宿主机上的messages文件中查看日志)
Aug  1 19:57:51 localhost docker: time="2015-08-01T19:57:51+08:00" level=info msg="-job log(exec_start: /bin/bash , dc2eb83e80ced6f553eb1dd7032489d37b4d934a9126f61dfbd4d6a2243e98f1, centos_with_syslog:v1.0) = OK (0)"
Aug  1 19:57:51 localhost docker: time="2015-08-01T19:57:51+08:00" level=info msg="POST /v1.18/exec/9ae97d0666bf5abcd8d95eb87d10c5d013a0f006c2cb1adc7ff8f7baaacf14fc/resize?h=37&w=191"
Aug  1 19:57:51 localhost docker: time="2015-08-01T19:57:51+08:00" level=info msg="+job execResize(9ae97d0666bf5abcd8d95eb87d10c5d013a0f006c2cb1adc7ff8f7baaacf14fc, 37, 191)"
Aug  1 19:57:51 localhost docker: time="2015-08-01T19:57:51+08:00" level=info msg="-job execResize(9ae97d0666bf5abcd8d95eb87d10c5d013a0f006c2cb1adc7ff8f7baaacf14fc, 37, 191) = OK (0)"
Aug  1 19:58:09 localhost logger: hello everyone
时间: 2025-01-03 18:39:10

Docker centos 安装syslog的相关文章

Docker Centos安装Mysql5.6

之前一篇随笔<Docker Centos安装Openssh> 写的是如何在基础的centos镜像中搭建ssh服务,在此基础上再搭建其他服务.本文继续介绍在centos_ssh基础上搭建mysql服务. 1.启动centos_sshd镜像 # docker run --net=host -d registry:5000/centos-sshd-222:v1.0 /run.sh 这里用的是host模式连接的网络,启动之后即可通过ssh登录到容器内部,装上mysql之后可以直接重启容器来验证是否成功

Docker Centos安装Redis以及问题处理

之前一篇文章 Redis安装及主从配置 介绍了redis的安装配置,另一篇文件介绍了 Docker Centos安装Openssh .今天将两篇文件结合一下——在Docker Centos环境下搭建redis缓存数据库. Redis安装及主从配置 中执行到 “2.2.4启动 redis 服务” 即可认定为redis环境搭建完毕.但是要在docker容器中搭建这些东西就不这么容易了.比如你的容器中要存在make.g++.autoconfig等环境,但是仔细想想,这些编译需要的环境在真正运行的时候并

centos 安装部署docker与局域网主机相通详细配置

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.有了docker,对于运维和开发都是福音.下面直接上配置: centos安装docker源: yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm 安装docker: yum install -y docker-io 启动docker:

centos 安装docker并部署项目

我这里用的root账户 uname -aLinux tiankong 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux yum -y install docker 错误:软件包:7:device-mapper-1.02.107-5.el7.x86_64 (@anaconda)          需要:device-mapper-libs = 7:1.02.107-5.e

Docker CentOS release 7.2下的安装

Docker CentOS release 7.2下的安装 环境介绍: [[email protected] ~]# cat /etc/redhat-release  CentOS Linux release 7.2.1511 (Core)  [[email protected] ~]# uname -r 3.10.0-327.el7.x86_64 [[email protected] ~]# Docker的安装:如果网络条件良好的情况下,直接配置yum源,yum安装,也可以提前下载好rpm包进

CentOS 安装 Docker

Linux安装docker的前提条件: 必须是64位CPU架构的计算机,Docker目前不支持32位CPU: 运行Linux3.8或更高版本内核,CentOS时内核必不小于3.10: 内核必须支持一种合适的存储驱动,可以是Device Manager.AUFS.vfs.btrfs.以及默认的驱动Device Mapper中的一个: 内核必须支持并开启cgroup和命名空间namespace功能. 检查前提条件 内核 通过uname命令来检查内核版本信息. 检查内存驱动是否存在,即检查Device

CentOS 7 中 Docker 的安装

CentOS 7 中 Docker 的安装 Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum 命令: [[email protected] ~]# yum install docker 启动 Docker 服务 安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动: [[email protected] ~]# service docker start [[email protected] ~]

Centos安装docker#避免很多坑

采用yum方式安装 安装: step 1: 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 Step 2: 添加软件源信息 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo Step 3: 更新并安装 Docker-CE yum makecache fast yum

阿里云centos安装docker

近期转向core开发,mssql也支持了docker,索性把手上的一台服务改成centos做测试开发.中间安装docker碰到的问题做个记录. docker版本 docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE.Docker CE即社区免费版,Docker EE即企业版,付费使用. 初次安装问题 直接用yum安装docker,一次就成功,正常启动.但是修改/etc/docker/daemon.json后无法正常启动docker. 提示: unable to c