采集过程:
telegraf做为采集器,使用input.exec插件采集windows进程是否存在,将采集结果传至监控系统。
telegraf.conf配置文件添加配置:
[[inputs.exec]]
#数据格式
data_format = "influx"
#脚本执行文件
commands = ['D:\\telegraf\\check_myProcess.bat']
在D盘的telegraf目录创建判断脚本:check_myProcess.bat (脚本和目录可根据自己的要求调整)
check_myProcess.bat脚本:
@echo off
setlocal
:: 设置进程名称变量
set "PROCESS_NAME=myProcessName"
:: 使用tasklist检查进程是否存在
tasklist /nh /fo csv | findstr /i /c:"%PROCESS_NAME%" > nul
:: 检查findstr的退出码,返回0则找到进程status置为1,反之则未找到进程,status置为0
if %errorlevel% == 0 (
set /p=win_process,host=IP地址,process_name=%PROCESS_NAME% status=1
) else (
set /p=win_process,host=IP地址,process_name=%PROCESS_NAME% status=0
)
endlocal
我这用的是夜莺监控系统,telegraf的配置可参考:
################################################################
# 夜莺监控配置 OUTPUT PLUGINS #
################################################################
# # Configuration for OpenTSDB server to send metrics to
[[outputs.opentsdb]]
host = "http://夜莺服务IP地址/"
port = 19000
http_batch_size = 50
http_path = "/opentsdb/put"
debug = false
separator = "_"