zabbix的安裝和監控nginx redis mysql tomcat

zabbix 安裝

系統環境: CentOS Linux release 7.4.1708 (Core)

服務端安裝腳本如下:(用到的是HTTP服務,可自行修改爲nginx)

#!/bin/bash
#設置解析 注意:網絡條件較好時,可以不用自建yum源
# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts
#安裝zabbix源、aliyun YUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
#安裝zabbix 
yum install -y zabbix-server-mysql zabbix-web-mysql
#安裝啓動 mariadb數據庫
yum install -y  mariadb-server
systemctl start mariadb.service
#創建數據庫
mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'
#導入數據
zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix
#配置zabbixserver連接mysql
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
#添加時區
sed -i.ori '18a php_value date.timezone  Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
#解決中文亂碼
yum -y install wqy-microhei-fonts
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
#啓動服務
systemctl start zabbix-server
systemctl start httpd
#寫入開機自啓動
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start mariadb.service
systemctl start httpd
systemctl start zabbix-server
EOF
#輸出信息
echo "瀏覽器訪問 http://`hostname -I|awk '{print $1}'`/zabbix" 

客戶端安裝腳本如下:

#!/bin/bash
#設置解析
echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts
#安裝zabbix源、aliyu nYUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
#安裝zabbix客戶端
yum install zabbix-agent -y
sed -i.ori 's#Server=127.0.0.1#Server=server-IP#' /etc/zabbix/zabbix_agentd.conf
systemctl start  zabbix-agent.service
#寫入開機自啓動
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start  zabbix-agent.service
EOF

腳本安裝完成的是最爲簡單的功能自行在配置文件中增加所需功能

檢測server與agent的連通性:

在server端安裝zabbix_get    yum install zabbix-get  
server執行測試語句: zabbix_get -s agent-IP -p port -k "system.cpu.load[all,avg1]"

web端進行操作:

瀏覽器訪問http://IP/zabbix   進行初始化操作   登陸密碼Admin/zabbix   在設置中選擇中文即可漢化

http://ip/zabbix/setup.php

zabbix的安裝和監控nginx  redis mysql  tomcat

在檢測信息時,可查看具體的報錯信息進行不同的解決

zabbix的安裝和監控nginx  redis mysql  tomcat

選擇mysql數據庫,輸入密碼即可

zabbix的安裝和監控nginx  redis mysql  tomcat

host與port不需要修改,name自定義

zabbix的安裝和監控nginx  redis mysql  tomcat

確認信息,正確點擊下一步

zabbix的安裝和監控nginx  redis mysql  tomcat

安裝完成、點擊finsh

zabbix的安裝和監控nginx  redis mysql  tomcat

進入登陸界面 賬號Admin密碼zabbix 注意A大寫

zabbix的安裝和監控nginx  redis mysql  tomcat

配置主機

zabbix的安裝和監控nginx  redis mysql  tomcat

添加系統默認的模板

zabbix的安裝和監控nginx  redis mysql  tomcat

到這裏的話基本上在系統自帶的默認模板一些基礎的監控項已經建立起來了下面演示自創模板


利用系統自己帶的鍵值:

zabbix的安裝和監控nginx  redis mysql  tomcat

裏面有各個鍵值的使用說明

監控MySQL:

  • mysql-server 服務器安裝zabbix-agent,修改配置文件
    在/etc/zabbix/zabbix_agentd.conf配置中增加一條配置
    zabbix-server 添加主機
  • MySQL上創建給zabbix-agent使用的用戶賬號,在/etc/zabbix下創建一個隱藏文件.my.cnf,
    [client]
    user=zabbix
    host=127.0.0.1
    password=123456
  • 測試連接
    HOME=/etc/zabbix/ mysqladmin ping | grep -c alive
    1
  • 修改配置文件/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf(沒有的話自己創建)
    修這兩條配置
    UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix mysql -N | awk '{print $$2}' #因爲是yum安裝的所以改成這樣
    UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive
  • 然後在web頁面進行配置即可

    監控nginx

  • 安裝客戶端
  • 書寫nginx的監控腳本,內容如下:
    #!/bin/bash  
    HOST="127.0.0.1"  
    PORT="88"  
    function ping {  
    /sbin/pidof nginx | wc -l   
    }  
    function active {  
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
    } 
    function reading {  
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'  
    }  
    function writing {
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'  
    }  
    function waiting {  
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'  
    }  
    function accepts {  
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'  
    }  
    function handled {  
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'  
    }  
    function requests {  
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/ null| awk NR==3 | awk '{print $3}'  
    }  
    #執行function  
    $1
  • 修改配置文件/etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf(沒有的話自己創建)
    修這兩條配置
    UserParameter=nginx.status[*],/etc/zabbix/nginx_check.sh $1
  • 導入模板文件,關聯主機即可

    監控redis

    redis 沒有可以用的模板,所以模板,監控項和圖形都要自己製作

  • 書寫監控腳本,內容如下:
    #!/bin/bash  
    redis_status(){  
        R_PORT=$1  
        R_COMMAND=$2   
        (echo -en "INFO \r\n";sleep 1;) | nc 127.0.0.1`   `"$R_PORT" > /etc/zabbix/redis_"$R_PORT".tmp  
        REDIS_STAT_VALUE=$(grep ""$R_COMMAND":" /etc/zabbix/redis_"$R_PORT".tmp | cut -d ':' -f2)  
        echo $REDIS_STAT_VALUE 
    }  
    help(){  
        echo "${0} + redis_status + PORT + COMMAND" 
    }  
    main(){   
    case $1 in  
        redis_status)  
            redis_status $2 $3 
                ;; 
        *)  
            help  
                ;; 
        esac 
    }  
    main $1 $2 $3 
  • 修改配置文件/etc/zabbix/zabbix_agentd.d/userparameter_redis.conf
    vim userparameter_redis.conf
    UserParameter=redis_status[*],/etc/zabbix/redis_check.sh $1 $2 $3
  • 手動創建監控模板
    zabbix的安裝和監控nginx  redis mysql  tomcat
  • 依次創建監控項
    zabbix的安裝和監控nginx  redis mysql  tomcat
  • 把監控項創建成爲圖形
    zabbix的安裝和監控nginx  redis mysql  tomcat

    完成redis的監控

    配置報警

    這我用的是微信報警,註冊的企業微信來實現報警的接受,腳本如下:

    #!/bin/bash
    CropID='wwbda087ee88ce0910
    Secret='tmFH9c2wUKr8Sf_W5TV5r_0YAprKqN_ZHB4DbcSCP4k
    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=1                          #部門id,定義了範圍,組內成員都可接收到消息  
        local Msg=$(echo "$@" | cut -d" " -f3-)  #過濾出zabbix中傳遞的第三個參數  
        printf '{\n'
        printf '\t"touser": "'"$User"\"",\n"
        printf '\t"toparty": "'"$PartyID"\"",\n"  
        printf '\t"msgtype": "text",\n'
        printf '\t"agentid": "'" $AppID "\"",\n"  
        printf '\t"text": {\n'
        printf '\t\t"content": "'"$Msg"\""\n"
        printf '\t},\n'
        printf '\t"safe":"0"\n'
        printf '}\n'}  
        /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
  • 設置zabbix腳本運行路徑,並把報警腳本放於該目錄下
    grep "^[^#]" /etc/zabbix/zabbix_server.conf
    ......
    AlertScriptsPath=/etc/zabbix/alertscripts
    ......
  • 腳本設置權限和所屬用戶
    chown zabbix:zabbix /etc/zabbix/alertscripts/weixin.sh
    chmod 744 /etc/zabbix/alertscripts/weixin.sh
  • 設置監控動作和接收用戶信息,進入zabbix後臺,選擇【管理】-->【報警媒介類型】--> 創建媒介類型
    zabbix的安裝和監控nginx  redis mysql  tomcat
  • 選擇類型爲:【腳本】,腳本名稱爲第二步中創建的腳本名稱,並配置腳本參數
    zabbix的安裝和監控nginx  redis mysql  tomcat
  • 選擇【管理】-->【用戶】--> 選擇admin用戶,選擇報警介質,點擊添加按鈕,關聯上admin用戶和weixin報警
    zabbix的安裝和監控nginx  redis mysql  tomcat
  • 【配置】-->【動作】中配置的默認信息配置
    服務器:{HOST.NAME}出現故障!
    服務器:{HOST.NAME}出現故障!\n
    告警主機:{HOSTNAME1}
    主機地址:{HOST.IP}
    告警時間:{EVENT.DATE} {EVENT.TIME}
    告警信息:{TRIGGER.NAME}
    問題詳情:{ITEM.NAME}:{ITEM.VALUE}
    當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}
    服務器:{HOST.NAME}已恢復!
    服務器:{HOST.NAME}已恢復!\n
    恢復主機:{HOSTNAME1}
    主機地址:{HOST.IP}
    恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
    故障信息:{TRIGGER.NAME}
    問題詳情:{ITEM.NAME}:{ITEM.VALUE}
    當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}
  • 配置成功
    zabbix的安裝和監控nginx  redis mysql  tomcat
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章