categraf托管与自升级
categraf支持多种方式进行部署、托管,社区里部署和管理categraf也是五花八门,大家自己使用方便即可。 之前我们觉得大家通过ansible之类的工具批量下发/更新就能很简单地完成任务,最近很多用户咨询我们关于categraf有没有更方便的升级方式,这也促使 我们思考如何让用户更快捷方便地完成服务管理与升级。 这两天我们发布了一个新版本,这里讲一下linux下的推荐方式, 欢迎大家提ISSUE和PR。
systemd
systemd 是一个 Linux 系统下的系统和服务管理工具,它是 Linux 启动过程的第一个进程(PID=1),它用于管理整个系统的服务状态,包括进程控制、日志记录、系统状态跟踪等等。它可以在系统启动时,并行启动所有系统服务,可以很好地管理守护进程、网络、时间、安全、日志和其他系统设置,实现了快速启动,同时也提高了系统资源的利用率和效率。
与传统的 SysVinit 不同,systemd 采用了各种新的技术来提高系统的可靠性和性能,例如 socket 激活器、并行启动、单位控制等等。更重要的是,systemd 提供了一个强大的系统统计功能,能够帮助管理员更好地了解和监控系统状态。这些统计信息包括 CPU、内存、磁盘、网络资源使用情况、特定服务的状态等等。
目前,systemd 已经成为 Linux 系统下最受欢迎和最流行的服务管理工具之一, 我们推荐使用systemd进行categraf托管。
注:centos6等老系统sysvinit也支持
categraf与systemd
为了使用systemd更方便的进行托管,我们设计了以下命令
install
创建categraf.service文件remove
删除categraf.service文件start
启动categraf服务 等价于 systemctl start categrafstop
停止categraf服务 等价于 systemctl stop categrafstatus
查看categraf运行状态 等价于 systemctl status categrafupdate
执行categraf升级,需要指定升级包的url
下面分别介绍一下每个参数及使用方法。
install
举例,我将 https://download.flashcat.cloud/categraf-v0.3.36-linux-amd64.tar.gz 内容解压到了
/opt/categraf目录下, 执行sudo opt/categraf/categraf install
命令,会在/etc/systemd/system/目录下创建categraf.service文件,文件内容如下
`install`命令会创建categraf.service文件,文件内容如下
```ini
# /etc/systemd/system/categraf.service
[Unit]
Description=Opensource telemetry collector
ConditionFileIsExecutable=/opt/categraf/categraf
After=network-online.target
Wants=network-online.target
[Service]
StandardOutput=journal+console
StandardError=journal+console
StartLimitInterval=3600
StartLimitBurst=10
ExecStart=/opt/categraf/categraf "-configs" "/opt/categraf/conf"
WorkingDirectory=/opt/categraf
Restart=on-failure
RestartSec=120
EnvironmentFile=-/etc/sysconfig/categraf
KillMode=process
[Install]
WantedBy=multi-user.target
其实 install
会做以下3件事情
- 创建categraf.service文件
- 指定WorkingDirectory 为categraf的目录
- 通过
-configs categraf所在目录的conf
指定配置目录 - systemctl daemon-reload
remove
使用示例 sudo /opt/categraf/categraf --remove
remove动作会执行两个动作
- 停止categraf , 等价于 systemctl stop categraf
- 删除categraf.service文件
start
使用示例 sudo /opt/categraf/categraf --start
start动作等价 systemctl start categraf
stop
使用示例 sudo /opt/categraf/categraf --stop
stop动作等价 systemctl stop categraf
status
使用示例 sudo /opt/categraf/categraf --status
status动作等价 systemctl status categraf
update
update 动作用于升级categraf,需要指定升级包的url
使用示例 sudo /opt/categraf/categraf --update --update_url https://download.flashcat.cloud/categraf-v0.3.36-linux-amd64.tar.gz
这里有如下前提
- linux系统,systemd(或SysVinit)托管
- update_url 指定的包是
tar.gz
格式 ,包里包含一个categraf 可执行文件
下载包之后,categraf会进行解压,替换二进制文件,清理临时目录和文件,重启服务。
替换动作,使用压缩包里的categraf替换执行命令的二进制 ,示例中是 /opt/categraf/categraf
,
如果你执行的是 /home/flashcat/categraf --update --update_url https://download.flashcat.cloud/categraf-v0.3.36-linux-amd64.tar.gz
那么被替换的就是 /home/flashcat/categraf
二进制升级成功之后,日志会输出 I! update categraf success
。