zoukankan      html  css  js  c++  java
  • zabbix的基本使用

    zabbix

    Zabbix server默认的78个Item学习记录

    zabbix监控方式

    img

    一、zabbix自定义监控

    zabbix-agent '收集'数据,然后'定义key',交给'zabbix-server端'
    

    1.要监控的内容

    #监控服务器登录用户的数量
    [root@web01 ~]# w | awk 'NR==1 {print $(NF-6)}'
    1
    

    2.客户端配置监控项

    1)客户端配置文件

    [root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf
    ...
    Include=/etc/zabbix/zabbix_agentd.d/*.conf
    

    2)定义监控项语法

    #官方示例
    [root@web01 ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
    UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}'
    
    #语法:
    UserParameter=<key>,<shell command>
    UserParameter=<key>[*],<shell command>
    

    3)设置自定义监控项

    [root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/login_user.conf
    UserParameter=login_usernumber,w | awk 'NR==1 {print $(NF-6)}'
    

    4)重启客户端

    [root@web01 ~]# systemctl restart zabbix-agent.service
    

    3.客户端验证

    [root@web01 ~]# zabbix_agentd -t login_usernumber
    login_usernumber                              [t|4]
    
    [root@web01 ~]# zabbix_agentd -p | grep login_usernumber
    login_usernumber                              [t|4]
    
    [root@zabbix ~]# man zabbix_agentd
    #得到的结果,前面的字母含义
    d   	#带小数部分的数字
    m   	#不支持,只有在这种模式下,查询日志才可能是活动的(如日志监视项或需要多个收集值的项)引起的。权限问题或不正确的用户参数可能
    s   	#文本。最大长度不受限制。
    t   	#文本。最大长度不受限制。
    u   	#无符号整数
    

    4.服务端获取值

    #需要安装zabbix-get,才能在命令行获取agent端的数据
    [root@zabbix ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.1-1.el7.x86_64.rpm
    
    #zabbix_get语法
    zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key
    
           -s		:agent 端的主机名或者IP地址
           -p		:agent 监听的端口   默认是10050
           -I		:如果server 端有多个网卡 可以指定通过哪个网卡进行数据获取
           -k		:指定agent 端定义的key
    
    [root@zabbix ~]# zabbix_get -s 172.16.1.7 -p 10050 -k login_usernumber
    4
    

    5.web页面添加监控项

    监控项 (item)

    - 你想要接收的主机的特定数据,一个度量数据。

    找到指定主机的监控项

    [w3LX01.md.jpg

    创建监控项

    [w3LOmR.md.jpg

    w3LjTx.md.png

    二、zabbix自定义阈值(触发器)

    触发器 (trigger)

    - 一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式

    当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。

    找到指定主机监控项

    w3XQPK.md.jpg

    创建监控项

    w3Xl8O.md.jpg

    w3XK56.md.jpg

    注意:表达式结果为True,触发器才会被触发

    三、自定义告警

    开启触发器报警动作

    w3XvRO.md.jpg

    1.QQ邮件方式示例

    1.配置---动作---启用里面的动作
    
    2.点击动作---操作
    #默认标题:
    故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
    #消息内容:
    告警主机:{HOSTNAME1}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}
    
    3.点击动作---恢复操作
    #默认标题:
    恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
    #消息内容:
    告警主机:{HOSTNAME1}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}
    
    4.点击更新
    
    5.管理---报警媒介类型---mail
    	smtp.qq.com
    	465
    	qq.com
    	1240206455@qq.com
    	SSL/TLS:
    		SSL验证对端 -- 勾选
    		SSL验证主机 -- 勾选
    	用户名和密码:
    		1240206455@qq.com
    		QQ邮箱授权码
    	
    6.更新
    
    7.配置收件人
    	头像---报警媒介---添加
    	填写收件人
    	根据职位设置接收告警的级别
    

    操作截图

    w3zSQU.md.jpg

    恢复操作截图

    w3xxzT.md.jpg

    选择报警类型

    w3XjJK.md.jpg

    编辑表单,选择使用哪个邮箱发送email

    w8pgZ4.md.jpg](ht

    验证 ‘用户数登录过多,zabbix自动报警’,选择报警信息的指向

    w8pysU.md.jpg

    w8p6LF.md.jpg

    w8psMT.md.jpg

    w8p2dJ.md.jpg

    2.微信方式,叮叮方式 ...

    1)注册企业微信

    2)配置脚本

    #1.查看zabbix_server默认脚本存放位置
    [root@zabbix ~]# grep 'script' /etc/zabbix/zabbix_server.conf 
    # AlertScriptsPath=${datadir}/zabbix/alertscripts
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    
    #2.上传或编辑脚本,zabbix_server自动读取该脚本
    [root@zabbix ~]# cd /usr/lib/zabbix/alertscripts
    [root@zabbix alertscripts]# vim weixin.sh
    #!/bin/bash
    CropID='wwad27164a9cd4730a'            #企业ID
    Secret='CiI-CKdNkNRgbr8eIoTo3E2Rje9FZxVz-MoRI8jfII4'    #企业号中的应用Secret
    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" 
    Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F" '{print $10}')
    
    PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
    
    function body() {
    local int AppID=1000002                  #企业号中的应用id
    local UserID=$1                          #部门成员id,zabbix中定义的微信接收者
    local PartyID=2                          #部门id,定义了范围,组内成员都可接收到消息
    local Msg=$(echo "$@" | cut -d" " -f3-)  #过滤出zabbix中传递的第三个参数
    printf '{
    '
    printf '	"touser": "'"$User""",
    "
    printf '	"toparty": "'"$PartyID""",
    "
    printf '	"msgtype": "text",
    '
    printf '	"agentid": "'" $AppID """,
    "
    printf '	"text": {
    '
    printf '		"content": "'"$Msg"""
    "
    printf '	},
    '
    printf '	"safe":"0"
    '
    printf '}
    '
    }
    /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
    
    
    #3.授权
    [root@zabbix alertscripts]# chmod +x weixin.sh
    
    #企业ID
    corpid='ww69b7626c5e711bdf'
    #应用的secret
    appsecret='TchtAn_azm8DGT5gpVgPNffzOn8BeuVhT1jHQlbRHzs'
    #应用的agentid
    agentid=1000002
    
    #5.手动测试脚本
    [root@zabbix alertscripts]# ./weixin.sh SongYangYang[部门成员] 2[部门id] hello[发送内容]
    

    3)添加报警媒介

    w89iwQ.md.jpg
    w89Peg.md.jpg

    {ALERT.SENDTO}                    #发送的⽤户
    {ALERT.SUBJECT}                    #发送的主题
    {ALERT.MESSAGE}                    #发送的内容
    

    四、zabbix深入自定义监控项

    1.自定义监控项-ssh端口

    命令行配置

    1.客户端关闭ssh端口
    [root@web01 ~]# systemctl stop sshd
    [root@web01 ~]# netstat -lntup|grep 22
    2.zabbix服务端查看数据
    [root@zabbix alertscripts]# zabbix_get -s 172.16.1.7 -k net.tcp.listen[22]
    1
    [root@zabbix alertscripts]# zabbix_get -s 172.16.1.7 -k net.tcp.listen[22]
    0
    

    图形化设置监控项

    wGCxmT.md.png

    图形化设置触发器

    w8CK3t.md.jpg

    自定义映射值

    [wGCjXV.md.png

    2.自定义监控项-TCP11种状态

    1)了解11种状态

    LISTEN - 侦听来自远方TCP端口的连接请求;
    SYN_SENT -在发送连接请求后等待匹配的连接请求;
    SYN_RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认;
    ESTABLISHED- 代表一个打开的连接,数据可以传送给用户;
    FIN_WAIT_1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
    FIN_WAIT_2 - 从远程TCP等待连接中断请求;
    CLOSE_WAIT - 等待从本地用户发来的连接中断请求;
    CLOSING -等待远程TCP对连接中断的确认;
    LAST_ACK - 等待原来发向远程TCP的连接中断请求的确认;
    TIME_WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认;
    CLOSED - 没有任何连接状态;
    
    客户端独有的:(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 (4)CLOSING (5)TIME_WAIT
    服务端独有的:(1)LISTEN (2)SYN_RCVD (3)CLOSE_WAIT (4)LAST_ACK
    共有的:(1)CLOSED (2)ESTABLISHED
    

    2)配置监控项

    [root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/tcp_state.conf
    UserParameter=tcp_state[*],netstat -ant | grep -c $1
    
    [root@web01 ~]# systemctl restart zabbix-agent.service
    

    3)客户端验证

    [root@web01 ~]# zabbix_agentd -t tcp_state[TIME_WAIT]
    tcp_state[TIME_WAIT]                          [t|47]
    
    [root@web01 ~]# netstat -ant | grep -c TIME_WAIT
    47
    

    4)服务端验证

    #需要安装zabbix-get,才能在命令行获取agent端的数据
    [root@zabbix ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.1-1.el7.x86_64.rpm
    
    [root@zabbix alertscripts]# zabbix_get -s 172.16.1.7 -k tcp_state[LISTEN]
    15
    

    5)添加监控项

    w8CMgP.md.jpg

    自定义映射值

    wGCjXV.md.png

    6)添加触发器

    w8CK3t.md.jpg

    7)设置报警媒介

    w8Cu9I.md.jpg

    w8Cm4A.md.jpg

  • 相关阅读:
    linuxc查看进程命令
    Springboot+post请求接口
    Springboot+get请求接口
    xml 加载多个properties文件
    TCP的三次握手(建立连接)和四次挥手(关闭连接)
    记一次 synchronized 锁字符串引发的坑兼再谈 Java 字符串
    java单点登录原理与简单实现
    关于 Java 面试,你应该准备这些知识点
    Java 内存模型
    java利用SuffixFileFilter统计目录下特定后缀名文件的数目
  • 原文地址:https://www.cnblogs.com/syy1757528181/p/13655818.html
Copyright © 2011-2022 走看看