图形 Graphs
#点击web端配置下的模板,选择模板对应的图形,点击右上角创建图标 #输入名称 TCP状态 #监控项选择添加,最后点添加 #点击监测下关联该模板的主机,点击图形,就能看到添加的图形 #仪表盘为图形的组合 #配置下模板里,点击仪表盘栏,点击创建仪表盘,构件可把之前画的图添加出来,也可添加其他值等
用户 Users 和组 Groups 管理
用户: 指定用户的Zabbix Web 登录身份 用户组:指定可访问资源的范围,比如哪些主机可以被访问到 角色: 加入角色可以控制用户是否有管理能力,还有更多的细小权限分派,比如:具体某个菜单项的访问
告警通知
E-mail 即时消息:企业微信,钉钉,飞书 短信 (不推荐,成本高,还要申请短信模板)
邮箱通知 #邮箱开启SMTP功能 #左侧管理下的媒介,点击创建媒介类型 输入名称 163邮件通知 输入SMTP服务器: smtp.163.com SMTP服务器端口 465 (加密的端口) 安全连接 SSL/TLS SMTP HELO(打招呼的通知): 163.com SMTP电邮: 邮箱地址 [email protected] SSL验证对端 √ SSL验证主机 √ 认证 用户名和密码:密码为邮箱的授权码(公司邮箱可能没授权码,那就是登录密码) [email protected] PFJWxxxxxxxx #点击消息模版,改成中文的 #可以修改两个消息模板 # 问题 主题: 告警: {EVENT.NAME} 告警主机:{HOST.NAME1} <br> 告警服务: {ITEM.NAME1} <br> 告警Key1: {ITEM.KEY1}:{ITEM.VALUE1}<br> 告警Key2: {ITEM.KEY2}:{ITEM.VALUE2}<br> 严重级别: {TRIGGER.SEVERITY}<br> # 恢复 Problem Recovery 主题: 恢复: {EVENT.DURATION}: {EVENT.NAME} 恢复主机:{HOST.NAME1}<br> 恢复服务: {ITEM.NAME1}<br> 恢复Key1:{ITEM.KEY1}:{ITEM.VALUE1}<br> 恢复Key2: {ITEM.KEY2}:{ITEM.VALUE2}<br> #点击添加 #此时可以在媒介中在已创建的邮件通知后面点击测试 #在管理下用户,点击用户选择告警媒介,添加之前创建的邮件通知,设置邮箱 #在配置下动作,选择触发器动作,点击创建动作(这里可以用开启默认,也会发送媒介) #输入名字,添加条件,选择触发器 #点击操作,添加操作,步骤可执行几次,下面是当中间隔时间。 #发送用户选择,仅发送选择之前添加的邮箱通知,点击添加 可在步骤后添加步骤发给领导邮箱(相当于没解决,发给领导) #下面恢复操作,也可以发,点击添加 #完成,之后发生异常和恢复都会受到邮件
邮件告警方法2
利用脚本方式进行邮件告警
[root@zabbix-server ~]# cat /usr/lib/zabbix/alertscripts/mail.sh #!/bin/bash # #******************************************************************** #Author: wangxiaoxxxx #QQ: 2930xxxx #Date: 2020-02-31 #FileName: mail.sh #URL: http://www.wangxiaochun.com #Description: The test script #Copyright (C): 2020 All rights reserved #******************************************************************** email_send='[email protected]' email_passwd='dgezyimkdsxxxxx' email_smtp_server='smtp.qq.com' . /etc/os-release msg_error() { echo -e "\033[1;31m$1\033[0m" } msg_info() { echo -e "\033[1;32m$1\033[0m" } msg_warn() { echo -e "\033[1;33m$1\033[0m" } color () { RES_COL=60 MOVE_TO_COL="echo -en \\033[${RES_COL}G" SETCOLOR_SUCCESS="echo -en \\033[1;32m" SETCOLOR_FAILURE="echo -en \\033[1;31m" SETCOLOR_WARNING="echo -en \\033[1;33m" SETCOLOR_NORMAL="echo -en \E[0m" echo -n "$1" && $MOVE_TO_COL echo -n "[" if [ $2 = "success" -o $2 = "0" ] ;then ${SETCOLOR_SUCCESS} echo -n $" OK " elif [ $2 = "failure" -o $2 = "1" ] ;then ${SETCOLOR_FAILURE} echo -n $"FAILED" else ${SETCOLOR_WARNING} echo -n $"WARNING" fi ${SETCOLOR_NORMAL} echo -n "]" echo } install_sendemail () { if [[ $ID =~ rhel|centos|rocky ]];then rpm -q sendemail &> /dev/null || yum install -y sendemail elif [ $ID = 'ubuntu' ];then dpkg -l |grep -q sendemail || { apt update && apt install -y libiosocket-ssl-perl libnet-ssleay-perl sendemail ; } else color "不支持此操作系统,退出!" 1 exit fi } send_email () { local email_receive="$1" local email_subject="$2" local email_message="$3" sendemail -f $email_send -t $email_receive -u $email_subject -m $email_message -s $email_smtp_server -o message-charset=utf-8 -o tls=yes -xu $email_send -xp $email_passwd -o message-content-type=html [ $? -eq 0 ] && color "邮件发送成功!" 0 || color "邮件发送失败!" 1 } if [ $# -ne 3 ];then color "脚本参数不正确!" 1 msg_info "Usage: `basename $0` <mail_address> <subject> <message>" exit 1 fi install_sendemail send_email "$1" "$2" "$3" [root@zabbix-server ~]# chmod +x /usr/lib/zabbix/alertscripts/mail.sh #zabbix server端 #把发送邮件脚本放到 /usr/lib/zabbix/alertscripts/ 路径下,并给与执行权限 #在管理下媒介,点创建媒介类型。类型选脚本,输入脚本名称 #添加参数 宏定义 {ALERT.SENDTO} #收件人 {ALERT.SUBJECT} #标题 {ALERT.MESSAGE} #点击模板修改,和上述一致
微信告警
注册企业微信,记下企业ID 创建通讯录,建一个运维部 点击运维管理,创建应用,记下Secret #企业微信发送脚本 [root@zabbix-server alertscripts]#cat wechat.sh #!/bin/bash # #******************************************************************** #Author: wangxiaxxxxx #QQ: 2930xxxx #FileName: wechat.sh #URL: http://www.wangxiaochun.com #Description: Send message from wechat for zabbix monitor #Copyright (C): 2020 All rights reserved #******************************************************************** CorpID="ww644a0d9xxxxxx" #我的企业下面的CorpID Secret="cGp4gHUpHLL1KQZY5abM3panxxxxxxxxxxx" #创建的应用那里的Secret agentid=1000003 #改为 AgentId 在创建的应用可 以查看 #PartyID=1 #通讯录中的部门ID,可选项 GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken? corpid=$CorpID&corpsecret=$Secret" Token=$(/usr/bin/curl -s -G $GURL |awk -F\": '{print $4}'|awk -F\" '{print $2}') #echo $Token PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token" function body(){ local userid=$1 #脚本的第1个参数为接收微信的企业用户帐号,在通讯录中可以查看 #local partyid=$PartyID local subject=$2 #脚本的第2个参数,表示消息主题 local msg=$(echo "$@" | cut -d" " -f3-) #脚本的第3个参数,表示消息正文 printf '{\n' printf '\t"touser": "'"$userid"\"",\n" #printf '\t"toparty": "'"$PartyID"\"",\n" printf '\t"msgtype": "text",\n' printf '\t"agentid": "'"$agentid"\"",\n" printf '\t"text": {\n' printf '\t\t"content": "'"$subject\n\n$msg"\""\n" printf '\t},\n' printf '\t"safe":"0"\n' printf '}\n' } /usr/bin/curl --data-ascii "$(body $*)" $PURL #把脚本放到 /usr/lib/zabbix/alertscripts/ 路径下,并给与执行权限 #在管理下媒介,点创建媒介类型。类型选脚本,输入脚本名称 #添加参数 宏定义 {ALERT.SENDTO} #收件人 {ALERT.SUBJECT} #标题 {ALERT.MESSAGE} #点击模板修改,和上述一致
实现故障自愈功能
Zabbix Agent 开启远程命令功能
#agent端 [root@zabbix-agent ~]#vim /etc/zabbix/zabbix_agentd.conf AllowKey=system.run[*] #开启执行功能,此项适合zabbix5.0版本以上,agent2默认没有配置,需要手工配置,用于代替早期版本的中EnableRemoteCommands UnsafeUserParameters=1 #允许远程执行命令的时候使用不安全的参数(特殊字符串,如: \ ' * ? [] {} ~ $ ! & ; ( ) < > 等 ) #1表示允许,默认为0不允许 #因为agent使用zabbix账号,没法执行重启服务操作,这里通过给zabbix账号sudo权限 [root@zabbix-agent ~]#vi /etc/sudoers #文件只读 保存:wq! #注意:NOPASSWD:后面有空格 表示sudo不用输密码 zabbix ALL=(ALL) NOPASSWD: ALL #检查语法 [root@zabbix-agent ~]#visudo -c [root@zabbix-agent ~]#systemctl restart zabbix-agent.service
添加脚本 (Zabbix 6.0 )
#web端左侧管理下点击脚本,创建脚本 #输入名称 nginx服务重启 类型为脚本 执行在zabbix客户端 命令: sudo systemctl restart nginx #点击添加 #web端左侧配置下动作,触发器动作 #创建动作或已有动作上,点击操作,点击添加操作,操作可选nginx服务重启 目标列表: 当前主机打钩, 点击添加即可 #自此实现触发自愈
Zabbix 主动与被动模式
主动模式可以降低zabbix服务端性能消耗,提高并发
#agent端开启主动模式 [root@zabbix-agent ~]#vim /etc/zabbix/zabbix_agentd.conf ServerActive=10.0.0.151 #多个用逗号隔开 Hostname=10.0.0.152 #必须和配置下主机里主机设置的主机名称相同 [root@zabbix-server ~]#systemctl restart zabbix-agent.service #web端配置下主机,打开主机把之前的被动模板删了,要用主动模式下的模板 这里选Linux by Zabbix agent active(带active字样,本质里面的监控项是active的) #点更新 #服务端查看日志 [root@zabbix-server ~]#tail /var/log/zabbix/zabbix_server.log
监控 JAVA 程序
这里以监控tomcat为例
安装 tomcat#agent端 [root@zabbix-agent ~]#apt update && apt install tomcat9
开启 JMX 监控
#查找catalina.sh文件路径 [root@zabbix-agent ~]#dpkg -L tomcat9|grep cata #没找到 [root@zabbix-agent ~]#dpkg -L tomcat9-common |grep cata /usr/share/tomcat9/bin/catalina.sh ... #开启JMX功能 [root@ubuntu2204 ~]#vim /usr/share/tomcat9/bin/catalina.sh ...... CATALINA_OPTS="$CATALINA__OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.0.0.152" #被监听的地址 [root@zabbix-agent ~]#systemctl restart tomcat9
部署 Java Gateway 服务器
#在zabbix官网下载,可以选 版本 Java Gateway 显示安装步骤 #这里直接在zabbix server端安装java gateway(安装会显示java不存在,没事的) apt install zabbix-java-gateway #上面的步骤之前装过了,直接从一步开始 #查看状态 [root@zabbix-server ~]#systemctl status zabbix-java-gateway.service
配置 Zabbix Server 支持 Java gateway
#zabbix server端 #修改server端配置(编译安装zabbix server的位置) [root@zabbix-server ~]#vim /apps/zabbix_server/etc/zabbix_server.conf #修改server端配置(包安装zabbix server的位置) [root@zabbix-server ~]#vim /etc/zabbix/zabbix_server.conf JavaGateway=127.0.0.1 #指向JAVA gateway主机 StartJavaPollers=2 #指定开启的进程数,默认为0,即不开启,所以必须修改此行 #JavaGatewayPort=10052 #指定端口,此为默认值,可不修改 [root@zabbix-server ~]#systemctl restart zabbix-server.service #查看 [root@zabbix-server ~]#ps aux|grep zabbix|grep java zabbix 1953 0.0 0.1 140844 7492 ? S 00:59 0:00 /usr/sbin/zabbix_server: java poller #1 [got 0 values in 0.000033 sec, idle 5 sec] zabbix 1954 0.0 0.1 140844 7492 ? S 00:59 0:00 /usr/sbin/zabbix_server: java poller #2 [got 0 values in 0.000064 sec, idle 5 sec]使用系统内置模板监控 tomcat 主机
#在web端配置下主机,创建主机,模板选Generic Java JMX 接口选JMX 10.0.0.152 (java被监控真实地址) port:12345 点击添加 #自此zabbix可以监控tomcat信息了
监控网络设备 SNMP
Zabbix 分布式实现 Proxy
实验效果,服务器显示数据比较慢属于正常现象(可能等40分钟)#场景: 1.公司有分公司在不同地区,北京,上海 2.公司服务在不同云上,或者还有公司自己的网络 3.超大规模,上万台机器。一个zabbix服务扛不住并发,采用多个代理分摊压力
标签:JAVA,被动模式,点击,agent,server,zabbix,监控,echo,root From: https://www.cnblogs.com/ludingchao/p/18402214