最近在负责一个线上服务的维护工作,经常会遇到各种告警信息,例如CPU使用率过高、内存溢出等等。每次遇到这些告警,都需要手动登录jira系统,创建工单,填写标题、描述等信息,非常繁琐。而且,如果同一个告警重复出现,很容易创建重复的工单,浪费时间。为了解决这个问题,我开始寻找一种自动化创建Jira工单的解决方案,最终发现了reload/jira-security-issue这个库。 composer在线学习地址:学习地址 reload/jira-security-issue是一个轻量级的php库,它可以根据预设的规则,自动创建Jira工单。它的主要特点是简单易用,并且能够避免重复创建工单。该库通过环境变量进行配置,方便在CI/CD系统中使用。
使用composer安装非常简单:
<pre class="brush:php;toolbar:false;">composer require reload/jira-security-issue
在安装完成之后,需要设置以下环境变量:
-
JIRA_Token
: Jira API Token (必须)
-
JIRA_HOST
: Jira实例的地址,例如:
(必须)
-
JIRA_USER
: 与Jira API Token关联的Jira用户ID,例如:
your-user@example.com
(必须)
-
JIRA_PROJECT
: Jira项目的Key,例如:
TEST
或
ABC
(如果不在代码中设置,则必须)
-
JIRA_ISSUE_TYPE
: Issue类型,例如:
Security
,默认为
(可选)
-
JIRA_PRIORITY
: Issue优先级,例如:
Critical
(可选)
-
JIRA_WATCHERS
: 需要添加到工单的Jira用户,多个用户用逗号分隔,例如:
user1,user2
(可选)
-
JIRA_RESTRICTED_COMMENT_ROLE
: 具有受限可见性的评论的角色,默认为
Developers
(可选)
以下是一个简单的例子,展示如何使用
JiraSecurityIssue
类创建工单:
<pre class="brush:php;toolbar:false;"><?php require 'vendor/autoload.php'; use ReloadJiraSecurityIssueJiraSecurityIssue; $issue = new JiraSecurityIssue(); $issue->setTitle('服务器CPU使用率过高') ->setBody('服务器CPU使用率超过80%,请尽快处理。'); $issue->setKeyLabel('cpu-high-20240726'); // 设置一个唯一的Key,避免重复创建 echo $issue->ensure(); // 创建工单,并输出工单Key
通过设置
KeyLabel
,可以确保同一个告警只创建一个工单。
ensure()
方法会检查是否已经存在具有相同
KeyLabel
的工单,如果存在,则不会创建新的工单。
使用reload/jira-security-issue库,可以极大地简化Jira工单的创建流程,提高运维效率,避免重复劳动。特别是在自动化运维场景下,该库可以发挥更大的作用。
评论(已关闭)
评论已关闭