categraf托管与自升级

孔飞@快猫星云 2023-10-20 15:06:10

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 categraf
  • stop 停止categraf服务 等价于 systemctl stop categraf
  • status 查看categraf运行状态 等价于 systemctl status categraf
  • update 执行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

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat
FlashDuty
Flashduty