1 添加主机
zabbix 版本比较旧生产的版本,RPM方式安装:zabbix-server安装和入门
1.1.配置要监控主机的信息
1.2.添加监控信息模板
2 进程监控
总的来说,配置一个完整的监控流程如下:
1.创建监控项,即配置要监控的指标,如内存的使用率,CPU的使用率,进程的运行状况等,配了监控项后就会定时收集机器的配置信息,然后等待zabbix server收集(zabbix agent被动模式)。
2.创建触发器,触发器将监控项收集的数据通过触发器表达式进行评估。
在触发器表达式中我们可以定义哪些值范围是合理,哪些是不合理的,如果出现不合理的值,触发器会把状态改为PROBLEM,接下来就到了报警以及发邮件。
3.创建动作,在zabbix中动作的意思是触发器触发后要进行的操作,一般是通过配置给相关负责人发送邮件,短信等通知。
2.1.创建监控项
创建监控项 ,对于 backup-hdp 机器,监控 helloSleep.sh 脚本运行启动的进程
配置 ===》主机 ===》监控项
选择 proc.num[,,,] 这个 Key
说明:
proc.num[<name>,<user>,<state>,<cmdline>] 监控用户某些状态的进程的数量
- name - 进程名称 (默认“all processes”)
- user - 用户名 (默认 “all users”)
- state - 可用值: all (默认), run,sleep, zomb
- cmdline - 命令行过滤(正则表达时)
[root@zabbix conf]# zabbix_get -s 172.16.76.222 -p 10050 -k "proc.num[,,,helloSleep]"
2.2.创建触发器
配置 ===》主机 ===》触发器, 可以在 表达式构造器中 进行测试
2.3.报警媒介类型创建
管理===》报告媒介类型===》报警媒介类型信息填写
脚本传入三个参数:发送消息、dingURL、告警人的手机号
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
def msg(text,api_url,phone):
json_text= {
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": phone,
}
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
api_url = sys.argv[2]
phone = "["+sys.argv[3]+"]"
msg(text,api_url,phone)
告警脚本路径配置(压缩包安装和rpm 安装的路径不一样,告警脚本路径配置了就行),如果 python 库 报错则 下载所需要的 request、json、sys 库
[root@zabbix conf]# cat /usr/local/etc/zabbix_server.conf | grep Alert
### Option: StartAlerters
# Alerters send the notifications created by action operations.
# StartAlerters=3
### Option: AlertScriptsPath
AlertScriptsPath=/home/zabbix/alertscripts/
2.4.用户创建
2.4.1.用户信息填写
管理 ===》用户 ===》选择admin用户
2.4.2.添加报警媒介
报警媒介选择创建好的backup-hdp 钉钉告警
2.4.3.添加报警媒介
2.4.4.用户权限设置
2.5.创建动作
创建动作的事件源为 触发器, 触发器的条件满足则动作发生。
2.5.1.动作配置
2.5.2.动作中的操作配置
2.5.3.定义恢复操作
3 测试
1.启动 helloSleep.sh 脚本
2.查看进程是否启动
3.在zabbix中 查看进程状态信息
4.钉钉告警信息发出
4 自定义Key
4.1zabbix客户端key说明
zabbix-agent中的key 说明中文版
比如:vm.memory.size[pused]
# 内存的使用率
[root@hdp104 ~]# zabbix_get -s 192.168.2.154 -k vm.memory.size[pused]
92.499053
[root@hdp104 ~]#
4.2.zabbix-agent 配置conf
自定义key ,监控java进程
[root@backup-hdp etc]# cat /usr/local/zabbix/etc/zabbix_agentd.conf | grep process.sh
UserParameter=java.process.status[*],/bin/bash /home/zabbix/monitor/process.sh $1
配置 完conf 后,重新启动 zabbix-agent,然后就可以使用该 Keyle
4.3.zabbix中使用
后面就可以使用该 Key 进行 Java 进程的监控, 其中 java.process.status[xx] 中的 内容可以是 ps -ef | grep xxx进程中的任何 信息, 只要是唯一可区分的值就行