在 Debian 系统中设置 Filebeat 开机启动,主要取决于你使用的 Debian 版本 以及 Filebeat 的安装方式。以下是几种常见情况的操作方法。
如果你是通过官方 Elastic 仓库使用 apt 安装的 Filebeat,它已经自带 systemd 服务。
sudo systemctl enable filebeat
sudo systemctl start filebeat
sudo systemctl status filebeat
sudo systemctl restart filebeat
sudo systemctl stop filebeat
✅ 这是 Debian 10(Buster)及以后版本的标准做法
如果你是直接下载 .tar.gz 并解压运行,需要手动创建 systemd 服务。
/opt/filebeat/filebeat
sudo vim /etc/systemd/system/filebeat.service
内容示例:
[Unit]
Description=Filebeat sends log files to Elasticsearch or Logstash
Documentation=https://www.elastic.co/products/beats/filebeat
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecStart=/opt/filebeat/filebeat -c /opt/filebeat/filebeat.yml
Restart=always
User=root
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable filebeat
sudo systemctl start filebeat
如果你使用的是 Debian 7/8 或未启用 systemd:
sudo vim /etc/init.d/filebeat
#!/bin/bash
### BEGIN INIT INFO
# Provides: filebeat
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Filebeat log shipper
### END INIT INFO
DAEMON=/opt/filebeat/filebeat
CONFIG=/opt/filebeat/filebeat.yml
case "$1" in
start)
echo "Starting Filebeat"
$DAEMON -c $CONFIG &
;;
stop)
echo "Stopping Filebeat"
pkill -f filebeat
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
sudo chmod +x /etc/init.d/filebeat
sudo update-rc.d filebeat defaults
ps aux | grep filebeat
sudo journalctl -u filebeat -f
/etc/filebeat/filebeat.yml
| 安装方式 | 开机启动方式 |
|---|---|
| APT 安装 | systemctl enable filebeat |
| 二进制安装 | 手动创建 systemd 服务 |
| 老 Debian | update-rc.d |
如果你愿意,可以告诉我:
cat /etc/debian_version)我可以给你 完全匹配你环境的命令。