代码改变世界

pmm-client日志设置

2022-04-28 20:30  abce  阅读(324)  评论(0编辑  收藏  举报

缺省情况下,pmm-agent将日志写入stderr和系统日志(syslogd或journald)。要想获得一个单的日志文件,需要编辑pmm-agent的启动脚本

 

如果是systemd的系统

# vi /usr/lib/systemd/system/pmm-agent.service
##参数是StandardError
##默认值是:file:/var/log/pmm-agent.log
StandardError=file:/var/log/pmm-agent.log

  

如果是initd的系统

# vi /etc/init.d/pmm-agent
##参数:pmm_log
##默认值:/var/log/pmm-agent.log
pmm_log="/var/log/pmm-agent.log"

可以参考pmm官方文档:
https://docs.percona.com/percona-monitoring-and-management/details/commands/pmm-agent.html

 

对于日志,有redirect、append两种方式

1.redirect方式
redirect方式只是对systemd v236或者更新的版本有效:

StandardOutput=file:/var/log/pmm-agent1.log
StandardError=file:/var/log/pmm-agent2.log

对于低于v236一下的版本,可以这样:

ExecStart=/bin/sh -c 'exec /usr/sbin/pmm-agent [arguments] >/var/log/pmm-agent1.log 2>/var/log/pmm-agent2.log'

这样的话,每次服务重启,日志都会被重写。

 

2.append方式
如果想重启后保留日志,可以使用append方式。但是以下方式只是对v240或者更新的版本有效:

StandardOutput=append:/var/log/pmm-agent1.log
StandardError=append:/var/log/pmm-agent2.log

或者

StandardOutput=append:/var/log/pmm-agent.log
StandardError=inherit

对于低于v240一下的版本,可以这样:

ExecStart=/bin/sh -c 'exec /usr/sbin/pmm-agent [arguments] >>/var/log/pmm-agent1.log 2>>/var/log/pmm-agent2.log'

  

参考文章:
https://unix.stackexchange.com/questions/321709/redirect-systemd-service-logs-to-file


我自己的配置

ExecStart=/bin/sh -c 'exec /usr/sbin/pmm-agent --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml >> /var/log/pmm-agent.log 2>&1'

部署脚本:

sed -i "s/^.*ExecStart=.*$/ExecStart=\/bin\/sh -c 'exec \/usr\/sbin\/pmm-agent --config-file=\/usr\/local\/percona\/pmm2\/config\/pmm-agent.yaml >> \/var\/log\/pmm-agent.log 2\>\&1'/" /usr/lib/systemd/system/pmm-agent.service
systemctl daemon-reload 
systemctl restart pmm-agent.service

  

# 原生配置

# ExecStart=/usr/sbin/pmm-agent --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml