安装sysSentry
操作系统
openEuler 当前版本
环境准备
安装openEuler 当前版本对应的系统,安装方法参考 《安装指南》。
安装sysSentry需要使用root权限。
配置yum源
在/etc/yum.repos.d/创建.repo文件(eg. /etc/yum.repos.d/openEuler.repo),使用编辑器打开.repo文件添加如下内容:
aarch64架构:
[openEuler-{version}]
name=openEuler-{version}
baseurl=http://repo.openeuler.org/openEuler-{version}/everything/aarch64/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-{version}/everything/aarch64/RPM-GPG-KEY-openEuler
[openEuler-{version}-update]
name=openEuler-{version}-update
baseurl=http://repo.openeuler.org/openEuler-{version}/update/aarch64/
enabled=1
gpgcheck=0x86_64架构:
[openEuler-{version}]
name=openEuler-{version}
baseurl=http://repo.openeuler.org/openEuler-{version}/everything/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-{version}/everything/x86_64/RPM-GPG-KEY-openEuler
[openEuler-{version}-update]
name=openEuler-{version}-update
baseurl=http://repo.openeuler.org/openEuler-{version}/update/x86_64/
enabled=1
gpgcheck=0安装sysSentry
yum install sysSentry libxalarm -y使用sysSentry
启动巡检框架
systemctl start sysSentry
systemctl start xalarmd
# 执行成功后可通过status命令查看状态为running
systemctl status sysSentry
systemctl status xalarmd配置巡检任务
sysSentry巡检框架以巡检模块(module)的形式管理巡检任务,每个巡检模块由/etc/sysSentry/tasks/目录下对应的.mod配置文件定义,巡检模块的名称即为.mod文件的名称,.mod配置文件用于配置巡检任务的运行参数。
管理巡检任务
启动指定巡检任务
sentryctl start <module_name>终止指定巡检任务
sentryctl stop <module_name>列出所有已加载的巡检任务及状态
sentryctl list例如:
查询指定巡检任务的状态
sentryctl status <module_name>巡检状态回显信息:
| 状态 | 描述 |
|---|---|
| RUNNING | 巡检任务正在运行 |
| WAITING | 仅period类型巡检任务可设置此状态,表示period巡检任务等待下一次被调度执行 |
| EXITED | 巡检任务尚未执行,或者oneshot类型的巡检任务执行结束处于此状态 |
| FAILED | 巡检任务未拉起成功,或者巡检任务未正常退出 |
重载指定任务配置
sentryctl reload <module_name>查询指定巡检任务的巡检结果
sentryctl get_result <module_name>回显信息格式为json格式,内容格式如下:
{
"result": "xxx",
"start_time": "YY-mm-DD HH:MM:SS",
"end_time": "YY-mm-DD HH:MM:SS",
"error_msg" : "xxx",
"details":{} # detail信息因巡检任务不同而不同,具体信息由巡检模块提供
}"result"和"error_msg"对应关系如下:
| result | 对应error_msg信息 |
|---|---|
| PASS | "" |
| SKIP | "not supported.maybe some rpm package not be installed." |
| FAIL | "FAILED. config may be incorrect or the command may be invalid/killed!" |
| MINOR_ALM | "the command output shows that the status is 'INFO' or 'GENERAL_WARN'." |
| MAJOR_ALM | "the command output shows that the status is 'WARN' or 'IMPORTANT_WARN'." |
| CRITICAL_ALM | "the command output shows that the status is 'FAIL' or 'EMERGENCY_WARN'." |
说明
该功能依赖插件实现,如果插件中未上报结果到sysSentry服务,则该插件get_result功能不可用。插件上报结果可以使用接口:report_result()。
查询指定巡检任务的告警信息
sentryctl get_alarm <module_name> [options]options可选参数及释义如下:
| 参数 | 描述 |
|---|---|
| -s TIME_RANGE, --time_range TIME_RANGE | 展示用户指定时间长度内的告警信息,TIME_RANGE为整形,单位秒,范围为0~2^31-1,默认值为10,即显示10秒内的告警信息 |
| -d, --detailed | 打印详细告警信息 |
回显信息格式为json格式,内容格式如下:
[
{
"alarm_id": xxx,
"alarm_type": "ALARM_TYPE_OCCUR",
"alarm_level": "MINOR_ALM",
"timestamp": "YY-mm-DD HH:MM:SS",
"alarm_info": { }
}
]"alarm_type"取值说明:
| value | 含义 |
|---|---|
| ALARM_TYPE_OCCUR | 代表告警产生 |
| ALARM_TYPE_RECOVER | 代表故障/告警恢复 |
"alarm_level"取值说明:
| value | 含义 |
|---|---|
| MINOR_ALM | 一般告警 |
| MAJOR_ALM | 严重告警 |
| CRITICAL_ALM | 致命告警 |
说明
该功能依赖插件实现,如果插件中未上报告警信息到sysSentry服务,则该插件的get_alarm功能不可用。插件上报结果可以使用接口:xalarm_Report()或者xalarm_report(),他们分别是xalarmd服务提供的C接口和python接口。
该功能依赖插件配置,插件的.mod文件中需要配置alarm_id,并且该id和插件中调用xalarm_Report()或者xalarm_report()函数时传入的id一致,否则该插件的的get_alarm功能不可用。
alarm_id不可与其他插件的alarm_id重复,否则功能异常。
常见问题Q&A
短时间内频繁启动并关闭sysSentry服务,查看服务启动日志会出现
RuntimeError: reentrant call inside <_io.BufferedWriter name='</var/run/sysSentry/sysSentry.pid>'>错误信息,这对功能是否受影响?启动sysSentry服务又短时间内停止sysSentry服务导致sysSentry初始化流程未结束就接收到终止信号,可能会触发两次sig_handler流程。如果第一次流程正好执行到close()的时候触发了第二次sig_handler流程,这就会引发RuntimeError。该问题不影响正常功能,建议用户启动sysSentry服务后不要立即关闭sysSentry服务。
