zabbix
2021-05-17 14:12:37 1 举报
AI智能生成
zabbix模块讲解
作者其他创作
大纲/内容
zabbix特性
数据收集
1.可用性及性能检测
2.SNMP、IPMI、JMX监控
3.自定义监控,自定义间隔时间
4.server/proxy/agents吸能
1.可用性及性能检测
2.SNMP、IPMI、JMX监控
3.自定义监控,自定义间隔时间
4.server/proxy/agents吸能
高级告警配置
1.使用宏变量
2.自定义告警的接收者、接收方式、接收升级
3.远程命令实行自动化动作
1.使用宏变量
2.自定义告警的接收者、接收方式、接收升级
3.远程命令实行自动化动作
自动发现
1.网络自动发现
2.agent自动注册
3.文件系统、网卡设备、SNMP OID自动发现
1.网络自动发现
2.agent自动注册
3.文件系统、网卡设备、SNMP OID自动发现
扩展的图形化显示
1.允许自定义创建多监控项视图
2.网络拓扑
3.自定义面板和slide shows
1.允许自定义创建多监控项视图
2.网络拓扑
3.自定义面板和slide shows
安全的权限认证,可以限制维护列表
数据存储到数据库并定时清理
模板可以添加组监控和继承
灵活的给触发器阈值定义
支持zabbix API
快速的web接口
实时绘图
配置简单
zabbix进程
.zabbix_server
zabbix服务端守护进程。其他进程数据都提交给server
zabbix服务端守护进程。其他进程数据都提交给server
.zabbix_agentd
客户端守护进程,收集客户端cpu负载、内存、硬盘等数据
客户端守护进程,收集客户端cpu负载、内存、硬盘等数据
zabbix_proxy
zabbix代理守护进程。功能类似server,它需要把收集到的数据提交/被提交到server里。
zabbix代理守护进程。功能类似server,它需要把收集到的数据提交/被提交到server里。
zabbix_java_gateway
Java网关,类似agentd,但是只用于Java方面。它只能主动去获取数据。它的数据最终会给到server或者proxy。
Java网关,类似agentd,但是只用于Java方面。它只能主动去获取数据。它的数据最终会给到server或者proxy。
.zabbix_get
zabbix工具,单独使用的命令,获取客户端的内容的方式来做故障排查。
zabbix工具,单独使用的命令,获取客户端的内容的方式来做故障排查。
.zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。
于是我们在脚本执行完毕之后,使用sender主动提交数据
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。
于是我们在脚本执行完毕之后,使用sender主动提交数据
软硬件需求
硬件
cpu:取决于数据库
(AMD 3200+/2G内存可以监控500个主机)
(AMD 3200+/2G内存可以监控500个主机)
硬盘:取决于监控项和历史保留时间
1.每秒处理数据量:监控项个数/刷新间隔时间 = 数据库每秒插入条数
2.历史记录保存时间:一条数据(50字节) * 数据每秒插入条数 * 时间
3.趋势数据保存时间:一条趋势数据(128字节) * 监控线个数 * 时间
4.事件记录保存时间:一个事件(130字节) * 事件次数
1.每秒处理数据量:监控项个数/刷新间隔时间 = 数据库每秒插入条数
2.历史记录保存时间:一条数据(50字节) * 数据每秒插入条数 * 时间
3.趋势数据保存时间:一条趋势数据(128字节) * 监控线个数 * 时间
4.事件记录保存时间:一个事件(130字节) * 事件次数
软件
数据库
web应用
Apache:1.3.12或者以上
PHP:5.3.0或者以上
PHP扩展:
gd mbstring
bcmath gettext
ctype ibm_db2(可选)
libXML 2.6.15或以上 mysqli(推荐)
xmlreader oci8(可选)
xmlwriter pgsql(可选)
session sqlite3 (可选)
sockets
PHP:5.3.0或者以上
PHP扩展:
gd mbstring
bcmath gettext
ctype ibm_db2(可选)
libXML 2.6.15或以上 mysqli(推荐)
xmlreader oci8(可选)
xmlwriter pgsql(可选)
session sqlite3 (可选)
sockets
服务器
OpenIPMI:IPMI硬件监控
libssh2:版本1.0以上,监控ssh服务
fping:icmp监控项
libcurl:监控web项.
libiksemel:支持jabber报警
net-snmp:增加SNMP支持
libssh2:版本1.0以上,监控ssh服务
fping:icmp监控项
libcurl:监控web项.
libiksemel:支持jabber报警
net-snmp:增加SNMP支持
java网关
logback-core-0.9.27.jar :http://logback.qos.ch/ ,0.9.27, 1.0.13, and 1.1.1已测试
logback-classic-0.9.27.jar :http://logback.qos.ch/ , 0.9.27, 1.0.13, and 1.1.1.已测试
slf4j-api-1.6.1.jar :http://logback.qos.ch/ ,1.6.1, 1.6.6, and 1.7.6.已测试
android-json-4.3_r3.1.jar :https://android.googlesource.com/platform/libcore/+/master/json ,2.3.3_r1.1 and 4.3_r3.1已测试
logback-classic-0.9.27.jar :http://logback.qos.ch/ , 0.9.27, 1.0.13, and 1.1.1.已测试
slf4j-api-1.6.1.jar :http://logback.qos.ch/ ,1.6.1, 1.6.6, and 1.7.6.已测试
android-json-4.3_r3.1.jar :https://android.googlesource.com/platform/libcore/+/master/json ,2.3.3_r1.1 and 4.3_r3.1已测试
zabbix升级
1.关闭zabbix
2.备份整个数据库目录
3.备份配置文件(/etc/zabbix)、php网站源码、整个zabbix目录
4.重新安装zabbix server和agentd,并检查配置文件
5.启动zabbix
6.部署php源码
2.备份整个数据库目录
3.备份配置文件(/etc/zabbix)、php网站源码、整个zabbix目录
4.重新安装zabbix server和agentd,并检查配置文件
5.启动zabbix
6.部署php源码
注意事项
1.zabbix禁止使用:\ ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # % @要使用的话,如%%,$$
1.用户管理
2.创建主机
2.创建主机
zabbix配置
主机与组
1.创建主机
2.主机参数
主机名:zabbix客户端配置文件中的hostname名称一定要与这个名字一致。
主机接口:zabbix agent默认端口10050,snmp 161,jmx 12345,IMPI 623.
3.主机模板
4.主机组
组名必须唯一
组名必须唯一
监控项
item属性
名称:可使用$1,$2,$3...$9这9个参数
监控类型
impi:检查他的硬件
agent:检测他的mysql、nginx之类
配置了多个接口:zabbix会依次(Agent→SNMP→JMX→IPMI)调用接口,直到找到合适的接口为止
impi:检查他的硬件
agent:检测他的mysql、nginx之类
配置了多个接口:zabbix会依次(Agent→SNMP→JMX→IPMI)调用接口,直到找到合适的接口为止
agent
主动
被动
http://www.ttlsa.com/zabbix/zabbix-agent-types-and-all-keys/
http://www.ttlsa.com/zabbix/zabbix-agent-types-and-all-keys/
键值key
自带key
agent.hostname
agent.ping
agent.version zabbix agent版本
kernel.maxfiles 系统支持最大的openfiles
kernel.maxproc 系统支持最大的进程数量
log 监控日志文件
logrt[file_pattern,<regexp>,<encoding>,<maxlines>,<all/skip>,<output>]
监控支持轮转的日志
net.dns[<ip>,zone,<type>,<timeout>,<count>] 检测DNS服务是否开启
net.dns.record[<ip>,zone,<type>,<timeout>,<count>] 执行一个DNS查询
net.if.collisions[if] windows网卡收集
net.if.discovery 列出网卡. 通常用于低级别的自动发现
net.if.in[网卡名称,packets/errors/dropped] 网卡入口流量
net.if.out[网卡名称,packets/errors/dropped] 网卡出口流量
net.if.total[网卡名称,packets/errors/dropped] 网卡总流量
net.tcp.listen[port] 检测端口是否开启
net.tcp.port[<ip>,port] 是否可以连接到指定的TCP端口
net.tcp.service[service,<ip>,<port>] 检测服务是否开启,并且端口可用
net.tcp.service.perf[service,<ip>,<port>] 检测服务器性能
net.udp.listen[port] 检测UDP端口是否在监听
proc.mem[<name>,<user>,<sum/max>,命令行过滤(正则表达时)] 用户进程消耗的内存
proc.num[<name>,<user>,<all/run/sleep>,<cmdline>] 用户某些状态的进程数量
sensor[device,sensor,<mode>] 读取硬件传感器
system.boottime 系统启动的时间戳
system.cpu.intr 设备中断
system.cpu.load[<cpu>,<avg1/avg5/avg15>] CPU负载
system.cpu.num[<type>] CPU数量
system.cpu.switches 上下文交换
system.cpu.util[<cpu>,<type>,<avg1/avg5/avg15>] CPU利用率
system.hostname[<type>] 返回主机名
system.hw.chassis[<info>] 返回机架信息
system.hw.cpu[<cpu>,<info>] 返回CPU信息
system.hw.devices[<type>] 列出PCI或USB
system.hw.macaddr[<interface>,<format>] 列出MAC地址
system.localtime[<type>] 系统时间
system.run[command,<mode>] 在指定的主机上运行命令
system.stat[resource,<type>] 虚拟内存状态
system.sw.arch 返回软件信息
system.sw.os[<info>] 返回系统信息
system.sw.packages[<package>,<manager>,<format>] 已安装软件列表
system.swap.in[<device>,<type>] 磁盘到内存
system.swap.out[<device>,<type>] 内存到磁盘
system.swap.size[<device>,<type>] 交换分区大小
system.uname 返回主机信息
system.uptime 系统运行时长
system.users.num 登陆用户数量
vfs.dev.read[<device>,<type>,<mode>] 磁盘读写状态
vfs.dev.write[<device>,<type>,<mode>] 磁盘写入状态
vfs.file.time 文件时间
vfs.file.cksum 计算文件校验
vfs.file.contents 获取文本内容
vfs.file.exists 检验文件是否存在
vfs.file.md5sum 文件MD5校验码
vfs.file.regexp 文件中搜索字符串
vfs.file.regmatch 文件中是否搜索到字符串
vfs.file.size 文件大小
vfs.fs.discovery 列出挂载的文件系统
vfs.fs.inode[fs,<mode>] inodes数量
vfs.fs.size[fs,<mode>] 磁盘空间
vm.memory.size[<mode>] 内存大小
web.page.get[host,<path>,<port>] 获取网页内容
web.page.perf[host,<path>,<port>] 获取完全加载网页消耗的时长
web.page.regexp[host,<path>,<port>,<regexp>,<length>,<output>] 在网页中搜索字符串
agent.ping
agent.version zabbix agent版本
kernel.maxfiles 系统支持最大的openfiles
kernel.maxproc 系统支持最大的进程数量
log 监控日志文件
logrt[file_pattern,<regexp>,<encoding>,<maxlines>,<all/skip>,<output>]
监控支持轮转的日志
net.dns[<ip>,zone,<type>,<timeout>,<count>] 检测DNS服务是否开启
net.dns.record[<ip>,zone,<type>,<timeout>,<count>] 执行一个DNS查询
net.if.collisions[if] windows网卡收集
net.if.discovery 列出网卡. 通常用于低级别的自动发现
net.if.in[网卡名称,packets/errors/dropped] 网卡入口流量
net.if.out[网卡名称,packets/errors/dropped] 网卡出口流量
net.if.total[网卡名称,packets/errors/dropped] 网卡总流量
net.tcp.listen[port] 检测端口是否开启
net.tcp.port[<ip>,port] 是否可以连接到指定的TCP端口
net.tcp.service[service,<ip>,<port>] 检测服务是否开启,并且端口可用
net.tcp.service.perf[service,<ip>,<port>] 检测服务器性能
net.udp.listen[port] 检测UDP端口是否在监听
proc.mem[<name>,<user>,<sum/max>,命令行过滤(正则表达时)] 用户进程消耗的内存
proc.num[<name>,<user>,<all/run/sleep>,<cmdline>] 用户某些状态的进程数量
sensor[device,sensor,<mode>] 读取硬件传感器
system.boottime 系统启动的时间戳
system.cpu.intr 设备中断
system.cpu.load[<cpu>,<avg1/avg5/avg15>] CPU负载
system.cpu.num[<type>] CPU数量
system.cpu.switches 上下文交换
system.cpu.util[<cpu>,<type>,<avg1/avg5/avg15>] CPU利用率
system.hostname[<type>] 返回主机名
system.hw.chassis[<info>] 返回机架信息
system.hw.cpu[<cpu>,<info>] 返回CPU信息
system.hw.devices[<type>] 列出PCI或USB
system.hw.macaddr[<interface>,<format>] 列出MAC地址
system.localtime[<type>] 系统时间
system.run[command,<mode>] 在指定的主机上运行命令
system.stat[resource,<type>] 虚拟内存状态
system.sw.arch 返回软件信息
system.sw.os[<info>] 返回系统信息
system.sw.packages[<package>,<manager>,<format>] 已安装软件列表
system.swap.in[<device>,<type>] 磁盘到内存
system.swap.out[<device>,<type>] 内存到磁盘
system.swap.size[<device>,<type>] 交换分区大小
system.uname 返回主机信息
system.uptime 系统运行时长
system.users.num 登陆用户数量
vfs.dev.read[<device>,<type>,<mode>] 磁盘读写状态
vfs.dev.write[<device>,<type>,<mode>] 磁盘写入状态
vfs.file.time 文件时间
vfs.file.cksum 计算文件校验
vfs.file.contents 获取文本内容
vfs.file.exists 检验文件是否存在
vfs.file.md5sum 文件MD5校验码
vfs.file.regexp 文件中搜索字符串
vfs.file.regmatch 文件中是否搜索到字符串
vfs.file.size 文件大小
vfs.fs.discovery 列出挂载的文件系统
vfs.fs.inode[fs,<mode>] inodes数量
vfs.fs.size[fs,<mode>] 磁盘空间
vm.memory.size[<mode>] 内存大小
web.page.get[host,<path>,<port>] 获取网页内容
web.page.perf[host,<path>,<port>] 获取完全加载网页消耗的时长
web.page.regexp[host,<path>,<port>,<regexp>,<length>,<output>] 在网页中搜索字符串
自定义key
1.在客户端配置文件zabbix_angentd.conf里面配置UserParameter = key,command(key必须唯一)
UserParameter = ping,echo 1
UserParameter = mysql.ping,mysqladmin -uroot ping | grep -c alive(返回1,mysql运行,返回0,mysql挂了)
2.重启客户端。
3.配置监控项中填入配制的key
4.key带参数UserParameter = key[*],command
例如:统计一个文件中有多少行被匹配?
UserParameter=wc[*],grep -c "$2" $1
如下方法将会返回文件中出现指定字符的行数
wc[/etc/passwd,root]
wc[/etc/services,zabbix]
UserParameter = ping,echo 1
UserParameter = mysql.ping,mysqladmin -uroot ping | grep -c alive(返回1,mysql运行,返回0,mysql挂了)
2.重启客户端。
3.配置监控项中填入配制的key
4.key带参数UserParameter = key[*],command
例如:统计一个文件中有多少行被匹配?
UserParameter=wc[*],grep -c "$2" $1
如下方法将会返回文件中出现指定字符的行数
wc[/etc/passwd,root]
wc[/etc/services,zabbix]
主机接口
信息类型
数字
浮点数
字符:最长255字节
日志:key必须为log[]
文本:大小无限制
浮点数
字符:最长255字节
日志:key必须为log[]
文本:大小无限制
数据类型
布尔数:true为0,false为1
TRUE:true, t, yes, y, on, up, running, enabled, available
FALSE: false, f, no, n, off, down, unused, disabled, unavailable
八进制
十进制
十六进制
单位
数值单位
bps:默认超过1000会自动换算单位
B(byte),Bps(bytes per second):会除以1024
bps:默认超过1000会自动换算单位
B(byte),Bps(bytes per second):会除以1024
时间单位
unixtime:yyyy.mm.dd hh:mm:ss(只能正数,如:2017.08.18 14:52:15)
uptime:hh:mm:ss或N days,hh:mm:ss(如:10 days,14:52:15)
unixtime:yyyy.mm.dd hh:mm:ss(只能正数,如:2017.08.18 14:52:15)
uptime:hh:mm:ss或N days,hh:mm:ss(如:10 days,14:52:15)
使用自定义倍数
接收到的整数或者浮点数都会乘以这个文本框里面的值。
使用这个选项,zabbix将会把收到的KB,MBps等数据先转为B,Bps。
使用这个选项,zabbix将会把收到的KB,MBps等数据先转为B,Bps。
自定义时间间隔
最多只能设置7个灵活更新间隔
默认使用最小的时间间隔
Interval:10,Period:1-5,10:00-19:00
(星期一到星期五10点到19点每10秒更新一次)
默认使用最小的时间间隔
Interval:10,Period:1-5,10:00-19:00
(星期一到星期五10点到19点每10秒更新一次)
存储值
差量(简单变化)
差量(每秒速率)
查看值
值映射
需要配置数字映射到字符的映射表
1=>ttlsa.com访问正常(修改不保存到数据库)
1=>ttlsa.com访问正常(修改不保存到数据库)
key返回的数据只能为整数,并且不做任何修改保存到数据库中。
只有在显示的时候才会根据映射表来展示相应的内容。
只有在显示的时候才会根据映射表来展示相应的内容。
item key值
key名称
key参数
1.名称允许范围:0-9a-zA-Z_-.
2.多个参数之间用逗号“,”分开
带引号的字符串:key参数带引号合法,参数里面带有双引号,那么要使用”\"来转义
不带引号的字符串:除了逗号和右中括号其他任何unicode字符串都合法
数组:key参数是一个数组,那么数组要多加一对中括号
2.多个参数之间用逗号“,”分开
带引号的字符串:key参数带引号合法,参数里面带有双引号,那么要使用”\"来转义
不带引号的字符串:除了逗号和右中括号其他任何unicode字符串都合法
数组:key参数是一个数组,那么数组要多加一对中括号
子主题
触发器
什么是触发器:
触发器使用逻辑表达式来评估通过item获取到得数据是处于哪种状态,
item一收回数据,将任务交给触发器去评估状态
触发器使用逻辑表达式来评估通过item获取到得数据是处于哪种状态,
item一收回数据,将任务交给触发器去评估状态
触发器属性
触发器名称
$1, $2…$9 可以被用来关联表达式的常量
例如:name:Processor load above $1 on {HOST.NAME}”
表达式:system.cpu.load[percpu,avg1].last(0)}>5
显示为:Processor load above 5 on ttlsa云服务器
例如:name:Processor load above $1 on {HOST.NAME}”
表达式:system.cpu.load[percpu,avg1].last(0)}>5
显示为:Processor load above 5 on ttlsa云服务器
表达式
通过设置该选项,你可以在触发器产生problem的时候触发一个事件
url
在Monitoring → Triggers中,可以看到URL并且可以点击,一般情况下他需要配合触发器ID来使用,在url中包含触发器ID(宏变量 {TRIGGER.ID}),这样可以直接点击到具体触发器中。
触发器告警级别和颜色
1.管理--->一般--->触发器严重性
2.把msgid "Important"
msgstr "very import"保存到/usr/local/nginx/html/zabbix/locale/en_US/LC_MESSAGES/frontend.po
2.把msgid "Important"
msgstr "very import"保存到/usr/local/nginx/html/zabbix/locale/en_US/LC_MESSAGES/frontend.po
事件
可视化配置
模板配置
报警配置
宏变量
用户与组管理
外部命令检测
基本检测
icmpping[<target>,<packets>,<interval>,<size>,<timeout>] 检测是否支持icmpping
cmppingloss[<target>,<packets>,<interval>,<size>,<timeout>] 返回丢包率百分比
icmppingsec[<target>,<packets>,<interval>,<size>,<timeout>,<mode>] 返回响应时间
cmppingloss[<target>,<packets>,<interval>,<size>,<timeout>] 返回丢包率百分比
icmppingsec[<target>,<packets>,<interval>,<size>,<timeout>,<mode>] 返回响应时间
zabbix监控ODBC
zabbix通过调用ODBC来获取数据库的数据以及数据库状态
1.安装unixODBC :yum -y install unixODBC unixODBC-devel
Description = MySQL test database
Driver = mysql
Server = 127.0.0.1
User = root
Password =
Port = 3306
Database = zabbix4.验证ODBC是否可用 :使用isql命令,如 isql test
6.配置监控项 :
1.安装unixODBC :yum -y install unixODBC unixODBC-devel
2.安装unixODBC驱动 :yum install mysql-connector-odbc
3.配置unixODBC :[test]
Description = MySQL test databaseDriver = mysql
Server = 127.0.0.1
User = root
Password =
Port = 3306
Database = zabbix
4.验证ODBC是否可用 :使用isql命令,如 isql test
5.编译支持ODBC的zabbix :--with-unixodbc[=ARG]
6.配置监控项 :
Type | 类型,选择监控数据库. |
Key | 监控项key db.odbc.select[unique_description,data_source_name] unique_description:描述,要唯一 data_source_name:odbc.ini中定义的数据源名称. |
User name | 数据库用户名 (可选,如果odbc.ini中已经定义) |
Password | 数据库密码 (可选,如果odbc.ini中已经定义) |
SQL query | SQL语句 |
Type of information | 返回值类型,如果类型选错了,这个监控项会不可用 |
0 条评论
下一页