ServerActive:健康检查,带端口的,agent主动往zabbix server发数据。
ListenPort:agent在被监控机器运行的程序端口。
Hostname:zabbix server配置的主机名称。
刚开始耍zabbix agent,建议不见使用docker,实际上,容易变动的,我都不建议使用docker,整理镜像是一件非常麻烦的事情。因为镜像都是非常精简的,万一你需要的功能没有,你是解决掉所有的依赖,来添加到镜像,还是在服务器中执行yum install来得方便?还有一点就是,使用docker,会让你很难入门,因为容器启动失败,都不知道报错对应位置的配置,或者不了解具体的报错指代。
环境:
K8s集群:211-214
被监控机器:jenkins服务器:123
Agent的安装,参考了这篇博客:
https://blog.csdn.net/qq_15760109/article/details/79443339
我是从“安装zabbix 软件源”开始的,因为都是自己用的机器,防火墙一开始就关闭了。
执行了以下两条命令:
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
yum install zabbix-sender zabbix-agent zabbix-get -y
查看启动日志
遇到这样的报错,先把selinux关闭,再重启agent看一下:
如果需要其他版本的agent,就把URL路径修改一下就好了。
安装好agent之后,就是要修改配置了。配置中首先肯定是要指定zabbix server的ip端口的,能够安装agent自动插入数据到哪渗运zabbix服务,那自然是最好的。不过实际情况是不支持。需要定制 *** 作。
看了几篇资料,感觉说得云里雾里的。
总的是喊培要修改四个配置项:
Server
ServerActive
ListenPort
Hostname
看了配置文件说明,结合自己的测试结果,
这个,就是指明zabbix server的ip地址,是ip地址,不是127.0.0.1,不带端口的那种。因为我这边的zabbix server是在k8s集群中,所以我把work集群都配置上了。这个必须要配置上。如果只配置208的话,在zabbix分发到212的时候,212主动发起tagent连接,那就会报错:
所以,稳妥起见,work节点都配置上。
这个是健康检查的东东,要配置IP端口,不是127.0.0.1,那毫无疑问是配置208的31110端口了,任意K8节点都可以,端口都是31110,31110为k8s的zabbix server 10051端口的映射。
这个指的是本地agent绑定的端口,不是zabbix server的端口。
这个就是zabbix配置的host名称,不是/etc/hosts里配置的别名,也不是域名。
好了四个配置都说完了,倒回来看,我觉得ServerActive不配置是不可以的,因为我zabbix端口对于agent来说是修改了的,怎么知道服务端口是什么,是吧,所以,这个应该不是简单的心跳检查什么的,应该就是监控数据传输用的。或者是,zabbix并不是agent主动发回数据李梁的,而是server端过来拿的,这样,即使不配置ServerActive,zabbix也能拿到监控数据。
至于如果要修改agent端口的话,就是修改ListenPort参数,然后主机接口配置那一块的端口对应上。
Server:zabbix sever的列表,逗号间隔,agent对server端的主机限定。
ServerActive:健康检查,带端口的,agent主动往zabbix server发数据。
ListenPort:agent在被监控机器运行的程序端口。
Hostname:zabbix server配置的主机名称。
概述
假设我们配置了一些监控项和触发器,现在当触发器状态改变时会获取一些发生的事件,是时候考虑下一步行动了。
我们不可能一直盯着触发器或者事件列表,当发生一些标志性的事件时发送警告再好不过。当问题盯启发生,关注这些的用户都会被通知。
zabbix提供主要的功能就是发送告警就是这个原因。哪些人?在什么时候?应该收到哪些信息是可以被定义的。
为了发送和接收来自zabbix的告警,你必须:
定义媒介
配置发送信息到定义媒介的动作
动作由 触发条件 和 *** 作 组成。基本上当条件符合时, *** 作被执行。两个主要的 *** 作是 发送消息 和 执行远程命令
为了发现和自动注册创建的事件,一些额外的 *** 作是可用的,包含添加或者删除主机,链接模板等
一、媒介(Media types)
概述
Media 是用于发送zabbix的消息与告警的递送通道
可以定义一下媒介类型
SMS
Jabber
Ez Texting
Custom alertscripts
1、 E-mail
为消息定义E-mail发送通道,需要配置e-mail 作为媒介类型并且传递指定的地址给用户
配置
依次点击 管理——>报警媒介类型,点击创建媒介类型(或者点击预先定义的媒介类型 E-mail)
媒介类型表包含通常的媒介类型属性
所有重要的字段都会标记红星
Name媒介类型名字
Type选择Email作为类型
SMTP server 设置stmp服务器作为处理信息的出口
SMTP server port 设置smtp服务的端口,这个参数从zabbix3.0开始支持
SMTP helo 这是正确的stmp链接值,通常为域名
SMTP email 这个地址会被用于信息发送者,用来发送消息,添加发送者的显示名 如 Zabbix_info则zabbix_info<gaoxiaoxu@126.com>
几个可以生效的配置:
gaoxiaoxu@126.com 只有邮箱地址,不需要尖括号
zabbix_info<gaoxiaoxu@126.com> 显示名与邮件地址,地址写在尖括号中
监控系统<gaoxiaoxu@126.com> 使用UTF-8格式的显示名
Connection security 选择链接安全级别,None为不使用ssl选项,starttls 使用 CURLOPT_USE_SSL参数,SSL/TLS则CURLOPT_USE_SSL可选
SSL verify peer 标记checkbox同步SMTP服务的SSL证书,
Authentication 认证方法
Username 用户名
Password 密码
Enabled启用媒介
注意 : 为了使SMTP中的authentication 选项可用,zabbix在编译时,需要带--with-libcurl参数 使用cURL7.20.0或更高版本
第二个选项卡options
第二个选项卡options配置了告警的处理流程。同样的options配置在其他的媒介类型中也存在。
所有媒介都是并行处理的,当前最大会话每个媒介自己定义,但是zabbix服务的凯掘如告警处理总数被参数(zabbix_sever.conf)StartAlerters所限制。同一触发器生成的告警会序列化的处理
options表
concurrent sessions 并发会话数,三个选项,one(一个),unlimited(不限制),custom(自定义)
Attempts 尝试发送告警的次数,如果设置为1,则zabbix会发送以此通知,并且失败时不会重发
Attempts interval 重发通知的频率,发送失败时重发的间隔
配置用户的媒介
依次点击 Administration(管理)散知--->Users(用户)
点击用户的属性表,在Media(媒介)表中点击add
type选择Email作为类型
send to指定email地址,可以点击add添加多个地址,同理此地址也可设置显示名如Zabbix_admin<gaoxiaoxu@126.com>或者gaoxiaoxu@126.com
when active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏
Use if severity 指定想要接受的告警等级
status启用与否
2、SMS
zabbix发送短信,使用串行GSM调试解调器连接到zabbix server的serial port
先决条件:
串行设备(正常情况下在linux的/dev/ttyS0)的速度取决于modem。zabbix不设置串行链接的速度。
zabbix user拥有对串行设备的读写权限,运行ls -l /dev/ttyS0查看当前权限
GSM调试解调器拥有PIN码,PIN也可以禁用使用命令 AT+CPIN="NNNN"输入PIN, 必须有双引号。
已经测试好的modem Siemens MC35 Teltonika ModemCOM/G10
配置SMS作为发送通道,需要配置SMS作为媒介类型并且在用户界面配置接收手机号
配置
依次点击 Administration--->Media types,点击创建media type或使用预先的配置
sms的Media type表属性
Description media type名
Type选择SMS
GSM modem 选择设备如 /dev/ttyS0
options选项卡见E-mail
配置用户媒介
依次点击 Administration(管理)--->Users(用户)
点击用户的属性表,在Media(媒介)表中点击add
types 选择SMS作为媒介
Send to 输入用户手机号
When active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏
Use if severity 指定想要接受的告警等级
status启用与否
3、Jabber (略)
4、Ez Texing(略)
5、Custom alertscripts
如果不满足于存在的媒介来发送警告,可以自定义脚本进行发送
警告脚本在zabbix server上执行,这些脚本位于server配置文件AlertScriptsPath变量(默认/usr/local/share/zabbix/alertscripts)
脚本示例:
#!/bin/bash
to=$1
subject=$2
body=$3
cat <<EOF |mail -s "$subject" "$to"
$bodyEOF
从3.4开始zabbix会检查exit code(shell执行返回码,0为成功),若exit code 不等于0,则认为执行失败,zabbix会重复执行
script不保存环境变量,所以环境变量要精确指定
配置
依次点击 Administration--->Media types,点击创建media type
mediatype表属性
Name输入媒介的名字
Type选择Script作为类型
Script name 输入脚本的名字(zabbix server中的脚本文件)
Script parameters 添加命令行参数到脚本
可支持ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}等宏,
{ALERT.SENDTO} 用户媒介中的send to(收件人)的值
{ALERT.SUBJECT} 动作配置中的Default subject(默认标题)
{ALERT.MESSAGE} 动作配置中的Default message(消息内容)
options表中定义了处理流程,见E-mail的说明
配置用户媒介User media
依次点击 Administration(管理)--->Users(用户)
点击用户的属性表,在Media(媒介)表中点击add
用户媒介属性
Type选择自定义脚本的媒介类型
Send to指定告警接收人
When active 设置发送时间如工作日(1-5,09:00-18:00)可以使用宏
Use if serverity 指定想要接受的告警等级
status启用与否
二、动作
如果你希望发生事件时会触发一些 *** 作,那么你需要配置action
动作可以定义回应所有支持的事件类型,
事件类型:
Trigger events触发器事件,当触发器状态从ok改变到problem或相反。
Discovery events 当自动发现产生
Auto registration events当新的agent自动注册时,或者经注册过的主机元数据改变
Internal events当监控项变为不支持或触发器状态变为unknown时
配置一个动作
依次 Configuration ——>Actions
从event source中选择需要的源(分为:触发器源,自动发现源,自动注册源,事件源)
点击创建动作
选择 *** 作执行的条件
选择具体 *** 作
选择恢复 *** 作
动作表的属性
Name唯一动作名
Type of calcaulation 选择条件触发的计算方法
And 必须符合所有条件
Or 只要一个条件符合即可
And/Or 结合二者,不同类型的条件用And,同一类型的条件用Or
Custom expression 用户自定义
Conditions 触发动作的一系列条件、
New condition 选择新的动作触发条件
Enabled启用动作
条件设置
基于触发器的条件
Application 应用集
Host group 主机组
Template 模板
Host主机
Tag 标签(串)
tag value 标签值
Trigger触发器
Trigger name 触发器名字
Trigger severity 触发器等级
Time period 触发时间
Problem is suppressed 触发问题是否意料之中,如主机维护
基于自动发现的条件
Host IP指定主机ip地址自动发现范围 格式: 单独的ip:192.168.1.33 范围ip: 192.168.1-101.1-254 Ip mask: 192.168.4。0/24
Service type 服务类型
service port 服务端口
Discovery rule 指定自动发现规则
Discovery check
Discovery object
Discovery status
Uptime/Downtime
Received value
Proxy
基于自动注册的条件
Host metadata 由zabbix_agentd.conf 文件中的HostMetadata变量定义
Host name
Proxy
基于内部事件的条件
Application
Event type
Host group
Template
Host
条件匹配后,就需要执行响应的动作了
可以支持以下动作
send a message
execute a remote command
add host
remove host
enable host
disable host
add to host group
remove from host group
link to template
unlink from template
set host inventory mode
执行远程命令
确保配置文件中(zabbix_agentd.conf)EnableRemoteCommands 参数设置为1
加入zabbix用户到sudo,vim /etc/sudoer
zabbix ALL=NOPASS: ALL #所有命令不需密码
zabbix ALL=NOPASS: /etc/init.d/apache restart #指定某一命令不需要密码
触发 *** 作后,使用宏 编辑信息
如 告警信息模板
标题 服务器:{HOST.NAME} - 发生: {TRIGGER.NAME}故障
信息 告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
恢复信息
标题 服务器:{HOST.NAME} - {TRIGGER.NAME} 已恢复
信息 告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
zabbix是一个CS结构
的监控系统,server端侦听在10051端口,客户端侦听在10050端口。用仿衫户界备戚腔面使用php开发。
1.
配置zabbix_agentd.conf文件,需要修改的仔雹地方分别为:Server,Hostname,LogFile,其中Server是zabbix服务器的IP地址
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)