欢迎光临
我们一直在努力

zabbix在运维方面的监控方法小结最后一次更新20211203

一些经典的运维问题: 1.配置文件中有空格,导致服务端下发的域名出现问题 2.修改数据库没有备份 3.修改dnspod问题,指向了错误的IP地址 4.时间不一致,需要重新设定时区 5.启动程序必须是最新版本,如:ps -ef|grep sdk-speech-1.1.1.jar 有可能没有杀死老版本的程序 6.ssl证书更换(cdn,slb,nginx,tomcat,haproxy,upyun,qiniu) 7.域名解析,经过通用高防以后无法获取客户端的真实IP地址,获取的全部是高防的IP地址 8.每个业务应用都需要至少双实例(避免单点问题) slb,nginx,jar,redis,mysql 9.域名证书到期时间监控 10.网络问题 4G网络连接系统没有问题,发现wifi出现连接失败的问题 原因是wifi上有vpn,连接到了国外的服务器,同样的域名只是dnspod解析的地区不同分国内国外(国外服务器又没有添加cp的信息,导致认证失败) 11.mysql数据库utf8mb4编码,innodb数据库引擎,还有连接数,文件句柄 12.slb的安全ip添加 13.关键的域名需要判断是否解析到了正常的城市和国家(分国内、国外、港澳台线路,或者移动,联通线路等) elk,hadoop集群的安全性,root密码,服务器权限 es的9200端口,9300端口 qps需要注意是否达到瓶颈 磁盘的吞吐量 # sar -n DEV 2 5 Linux 2.6.32-431.11.29.el6.ucloud.x86_64 (rdp02_confluent) 12/26/2017 _x86_64_ (16 CPU) 11:17:44 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 11:17:46 PM lo 41508.12 41508.12 7543.42 7543.42 0.00 0.00 0.00 11:17:46 PM eth0 3872.08 1309.64 5181.46 183.86 0.00 0.00 0.00 IO监控分以下几个级别: 1、系统级别 ,iostat vmstat dstat 2、进程级别 iotop pidstat 3、业务级别 ioprofile 4、文件级别 lsof 基本上可以完全定位到IO问题了 运维的原则: 列出计划方案并发出评审(具体实施方案,失败的回滚方案) 中间实施时的通知,并且在业务低峰进行 事后的观察(流量、资源使用),日志是否报错等 监控系统: zabbix监控 阿里云监控 ucloud监控 资源监控 阿里云 ucloud 机房 报警通知人管理(不同级别报警人不一样,报警的方式短信,邮件,微信等) 每个服务都需要使用双份 使用阿里云和ucloud云监控报警 1.服务器硬件(cpu,磁盘,memory使用率)

监控mysql的cpu占用率
UserParameter=mysqlcpu,ps aux|grep "mysqld"|grep -v "grep"|awk '{sum+=$3}; END{print sum}'

2.带宽使用率 3.数据库rds使用率iops,connection,cpu,内存,空间 1.默认都安装zabbix系统硬件监控包括: cpu 平均负载,idel小于10%报警 磁盘占用率 主机密码是否修改 是否重启、关机 内存小于10%,触发重启java的voice服务 haiwai 1.tcp端口监控 nmap aya3.chinasoft.com -p 6666 | grep -c open 2.响应时间 3.端口监控(nmap监控tcp或者udp端口) 流量告警,通过aliyun监控平台 ecs_InternetOutRateNew 4.对tcp连接数的监控 established个数大于8W established个数小于100 5.对关键进程的个数监控如voice 6.对http服务的监控(阿里云和ucloud) 7.对集群状态的监控 8.对关键进程监控,进程挂掉重新启动 java出现内存溢出的监控 UserParameter=java_error,sudo /bin/find /home/chinasoft -name hs_err_pid*.log -o -name java_pid*.hprof -o -name jvm.log -o -name core.*|wc -l 9.redis的qps和cpu使用率内存使用率 mysql的磁盘空间,cpu,内存使用率,连接数使用率 10.监控log日志 # cat /usr/local/zabbix-agent/scripts/esb_status.sh #!/bin/bash # 日志文件目录 path=/home/chinasoft/log/esbE001 # 找到最新的日志文件名 ls -t 按照时间排序,最新的在上面 esb_file=`ls -t "${path}" | head -1` fail_count=`tail -n 500 $path/${esb_file} |grep 'failure'|wc -l` echo $fail_count 11.关键的接口监控,如 12.dnspod解析监控(是否解析到了国内或者国外,需要判断) 13.数据库,redis还有应用是否在同一机房同一个局域网(如果跨机房影响性能,高并发可能会引发问题) 14.写脚本自动删除、清理日志、是否需要切割日志,统计日志等 关于终端自动触发执行action的配置: Defaults:jenkins !requiretty Defaults:zabbix !requiretty zabbix ALL=(ALL) NOPASSWD: ALL EnableRemoteCommands = 1 UserParameter=java_error,sudo /bin/find /data/chinasoft -name hs_err_pid*.log -o -name java_pid*.hprof -o -name jvm.log|wc -l UserParameter=check_web1,curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" http://yuyin.chinasoft.com:9999/check UserParameter=check_port,nmap aya3.chinasoft.com -p 6666 | grep -c open # 每分钟超时的次数 UserParameter=check_baidu,grep -a `date +%H:%M` /home/chinasoft/chinasoft-speech2/logs/all.log | grep '30000' | wc -l UserParameter=check_port0,/usr/bin/python /usr/local/zabbix-agent/scripts/check_port.py [root@u04mix03 ~]# cat /usr/local/zabbix-agent/scripts/check_port.py #!/usr/bin/python #coding=utf-8 import types import urllib2 import json import socket html=urllib2.urlopen(r"http://u01.f.chinasoft.com/config_route?name=CT_ROOM&no=123") hjson = json.loads(html.read()) #print hjson ip = hjson["outside"] port = hjson["port"] #print ip #print port sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sk.settimeout(10) try: sk.connect((ip,port)) print 1 except Exception: print 2 sk.close() # python脚本,agentd.conf要配置Timeout = 30 #encodig:utf-8 import requests import json try: r = requests.get('http://api.chinasoft.com:8199/api3?appId=100000&method=queryOnlineUser&roomId=100000&version=2&appKey=10d5aea05bef4f4ed988e1278b53ab5c', timeout = 10) r_json = json.loads(r.content) res = r_json.get('result',0) print res except Exception as e: print 500 ********** 监控语音超时,超过30000ms UserParameter=check_log,grep "30000ms" /home/chinasoft/chinasoft-speech2/logs/all.log | wc -l # 删除日志脚本 find /home/chinasoft/chinasoft_script_sdk/logs/bi -name "*.log.gz" -mtime +3 -exec rm -f {} \; #!/bin/bash path1=/home/proxy/rtmpclient/Bin64/log if [ -d $path1 ];then for file1 in `ls ${path}`; do if [ "${file1##*.}" == "log" ];then echo /dev/null >$path1/$file1 fi done fi path2=/home/proxy/rtmpclient/Bin64/log if [ -d $path2 ];then for file2 in `ls ${path2}`; do if [ "${file2##*.}" == "log" ];then echo /dev/null >$path2/$file2 fi done fi path3=/home/proxy/chatroom/Bin64/log if [ -d $path3 ];then for file3 in `ls ${path3}`; do if [ "${file3##*.}" == "log" ];then echo /dev/null >$path3/$file3 fi done fi java的溢出文件jvm.log,触发脚本重启java服务 #!/bin/bash for i in {/data/chinasoft/sdk_translator_speech,/data/chinasoft/chinasoft-speech2,/data/chinasoft/chinasoft-text2audio};do if [ -f $i/jvm.log ];then rm -f $i/jvm.log ps -ef|grep $i|grep -v grep|awk '{print $2}'|xargs kill -9 sleep 2 cd $i && /bin/bash start.sh start fi done

 

跳板机搭建在公司内部,通过跳板机管理国内和国外的服务器,因海外的服务器较多默认走香港线路
国内的服务器要设置定向路由

为了及时处理同事登录跳板机不能正常办公的问题,对跳板机和海外服务器的网络质量进行监控
动作可以触发报警,切换线路等操作,需要观察一段时间后作出处理

# 检查网络的ping值丢包率,如果大于50%触发报警
UserParameter=eus_pedb_net_loss,sudo /usr/local/fping/sbin/fping -p 100 -c 10 1.1.1.1 2>&1| tail -n 1 | awk -F ' ' '{print $5}'| cut -d '/' -f3 | cut -d '%' -f1
# 检查端口的可用性
UserParameter=pedbserver_sshport,/usr/bin/nmap 1.1.1.1 -p 2008 | grep -c open

监控nginx的访问日志出现 50x或者40x

UserParameter=nginx_access_50x,sudo /usr/bin/tail -n 500 /data/www/logs/nginx_log/access/www.chinasoft.com_access.log|awk '{print $1" "$10" "$11}'|grep 'HTTP/1.1" 50'|uniq|wc -l
UserParameter=nginx_access_40x,sudo /usr/bin/tail -n 500 /data/www/logs/nginx_log/access/www.chinasoft.com_access.log|awk '{print $1" "$10" "$11}'|grep 'HTTP/1.1" 40'|uniq|wc -l

 

触发器的另外一种编写方式:

UserParameter=chinasoft_api01_mm_node_8000,nmap 172.18.10.10 -p 8000 | grep -c open

# 连续5次的结果统计都等于0,触发报警
{Template alisz_chinasoft_api_node:chinasoft_api01_mm_node_8000.count(#5,1,"eq")}=0

 

# 监控url服务,中间要带端口,否则无法生效
UserParameter=chinasoft_ioweb01_mindmaps,res=`curl -I -m 10 --connect-timeout 10 -o /dev/null -s -w %{http_code}"\n" --resolve www.chinasoft.io:443:172.31.18.105 "https://www.chinasoft.io/mind-maps/"` && echo $res
UserParameter=chinasoft_ioweb02_mindmaps,res=`curl -I -m 10 --connect-timeout 10 -o /dev/null -s -w %{http_code}"\n" --resolve www.chinasoft.io:443:172.31.17.40 "https://www.chinasoft.io/mind-maps/"` && echo $res

# 监控3333 node端口
UserParameter=chinasoft_ioweb01_3333,res=`curl -I -m 10 --connect-timeout 10 -o /dev/null -s -w %{http_code}"\n"  "http://172.31.18.105:3333/mind-maps/"` && echo $res
UserParameter=chinasoft_ioweb02_3333,res=`curl -I -m 10 --connect-timeout 10 -o /dev/null -s -w %{http_code}"\n"  "http://172.31.17.40:3333/mind-maps/"` && echo $res

upstrem定义:
upstream chinasoft_node_servers{
        ip_hash;
        server 172.31.18.105:3333 max_fails=2 fail_timeout=30s weight=1;
        server 172.31.17.40:3333 max_fails=2 fail_timeout=30s weight=1;

        check interval=3000 rise=2 fall=5 timeout=1000 type=tcp port=3333;
        check_keepalive_requests 100;
}

        if ($http_user_agent ~ Ezooms) {
        return 403;
    }

    location ~ ^.*\.(htaccess|htpasswd|ini|sh)$ {
        deny all;
    }

nginx location部分
    location /mind-maps/ {
            proxy_pass http://chinasoft_node_servers;
        }

 

关于shell获取代码执行结果的处理

 带密码验证的api接口验证功能

 监控脚本

# 调用方法
/usr/local/api_monitor_env/bin/python /usr/local/zabbix_agents_3.2.0/scripts/api_monitor.py crm_api_zendesk

# 监控项
UserParameter=api.status[*],/usr/local/api_monitor_env/bin/python /usr/local/zabbix_agents_3.2.0/scripts/api_monitor.py $1

root下切换其他用户执行命令

su apache -l -c '/usr/bin/pm2 restart templates-cn-max'

 

# 状态码探测脚本

 1.编写脚本,监控进程,端口,对应的接口,如果挂了就重启程序
vim /usr/local/worksh/chinasoft_procss_mon.sh

# 添加可执行权限
chmod +x /usr/local/worksh/chinasoft_procss_mon.sh

2.加入计划任务
# monitor
*/5 * * * * /bin/bash /usr/local/worksh/chinasoft_procss_mon.sh > /dev/null 2>&1

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《zabbix在运维方面的监控方法小结最后一次更新20211203》
文章链接:https://www.456zj.com/22078.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址