zabbix在運維方面的監控方法小結最后一次更新20190809


一些經典的運維問題:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM