Search Posts

centos7配置部署promtail采集日志并开机启动

内容纲要

1.下载解压安装

wget https://github.com/grafana/loki/releases/download/v2.8.11/promtail-linux-amd64.zip
#没有unzip 执行 yum install -y unzip
unzip promtail-linux-amd64.zip 
mv promtail-linux-amd64 /usr/local/bin/promtail

2.编辑配置文件

mkdir -pv /etc/promtail
cat >/etc/promtail/promtail.yml <<EOF
# Promtail配置文件说明:
# - 此配置文件用于配置Promtail服务,用于收集和发送日志数据至Loki。
# - 下面详细描述了每个参数的作用。

server:
  # http_listen_port:指定Promtail服务器监听的HTTP端口。
  # 设置为0表示随机选择一个可用端口。
  http_listen_port: 0

  # grpc_listen_port:指定Promtail服务器监听的gRPC端口。
  # 同样地,设置为0表示随机选择一个可用端口。
  grpc_listen_port: 0

positions:
  # filename:指定记录日志位置同步信息的文件路径。
  # Promtail使用此文件记录日志读取的位置,以便在重启后恢复到正确的位置。
  filename: /etc/promtail/positions.yaml

  # sync_period:指定同步日志位置的时间间隔。
  # 每隔指定的时间间隔,Promtail将当前的日志位置信息写入到filename指定的位置。
  sync_period: 10s

clients:
  # url用于指定Loki服务的地址,用于将日志数据发送到Loki。
  # 在此示例中,Promtail将日志数据发送到http://loki:3100/loki/api/v1/push。
  - url: http://loki:3100/loki/api/v1/push

scrape_configs:
  # 第一个日志抓取作业
  - job_name: project1_cn
    static_configs:
      - targets:
          - localhost
        labels:
          job: 日志服务1  # 作业名称
          app: 项目1       # 应用程序名称
          __path__: /project1_path/logs/*log  # 指定project1的日志文件路径。

  # 第二个日志抓取作业
  - job_name: project2_hk
    static_configs:
      - targets:
          - localhost
        labels:
          job: 日志服务2  # 作业名称
          app: 项目2       # 应用程序名称
          __path__: /project2_path/logs/*.log  # 指定project2的日志文件路径。
EOF

添加开机启动项

要为CentOS 7编写一个开机启动项以支持stop, start, restart操作,你需要创建一个Systemd服务单元。下面是一个示例Systemd服务单元的配置文件,你可以根据你的需求进行修改:

  1. 首先,创建一个新的Systemd服务单元文件。你可以使用任何文本编辑器,如vinano。比如,我们将文件命名为promtail.service
sudo vi /etc/systemd/system/promtail.service
  1. 在编辑器中,输入以下内容:
[Unit]
Description=Promtail service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/promtail -config.file=/etc/promtail/promtail.yml
Restart=always

[Install]
WantedBy=multi-user.target

这个配置文件包含了三个主要部分:

  • [Unit]:提供了有关服务的基本描述信息,如描述和依赖关系。
  • [Service]:定义了服务的具体行为,包括服务的类型、启动命令和重启策略。
  • [Install]:指定了服务的安装位置,比如multi-user.target,表示在多用户环境下启动。
  1. 保存并关闭文件。

  2. 现在,你可以使用以下命令来启动、停止、重启服务:

    • 启动服务:sudo systemctl start promtail
    • 停止服务:sudo systemctl stop promtail
    • 重启服务:sudo systemctl restart promtail
  3. 你也可以设置在系统启动时自动启动该服务:

sudo systemctl enable promtail

这样,在系统启动时,服务就会自动启动。

  1. 最后,你可以使用status命令检查服务的状态:
sudo systemctl status promtail

以上就是在CentOS 7中创建一个支持stop, start, restart操作的Systemd服务单元的步骤。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注