zabbix配置

zabbix安裝過程php

(圖片太多很差粘貼,本文省略,主要是之後本身查起來方便,偷個懶呢)css

mysqlhtml

PHPmysql

nginxnginx

zabbix-serversql

zabbix-agent數據庫

 

安裝zabbix以前須要準備基本環境,須要安裝mysqlnginxphp,詳細安裝見一下連接vim

mysql安裝:https://www.cnblogs.com/Christine-ting/p/10697708.htmlapi

nginx安裝:https://www.cnblogs.com/Christine-ting/p/10697726.html瀏覽器

PHP安裝:https://www.cnblogs.com/Christine-ting/p/11328071.html

 

安裝mysql:

https://www.cnblogs.com/Christine-ting/p/10697708.html

建立zabbix數據庫,和用戶,並執行導入zabbix數據文件

一、進入數據庫,建立用戶

create database zabbix character set utf8;

GRANT all  privileges ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix..321com';

flush privileges;

二、導入數據文件

use zabbix;

source /opt/zabbix-4.2.5/database/mysql/schema.sql;

source /opt/zabbix-4.2.5/database/mysql/images.sql;

source /opt/zabbix-4.2.5/database/mysql/data.sql;

 

安裝PHP:

https://www.cnblogs.com/Christine-ting/p/11328071.html

修改監聽方式爲端口監聽

 

安裝nginx:

https://www.cnblogs.com/Christine-ting/p/10697726.html

一、安裝

二、建立zabbix的訪問根目錄,並將zabbixPHP文件拷貝到此目錄

mkdir /data/zabbix/zabbix -p

cp /opt/zabbix-4.2.5/frontends/php/* /data/zabbix/zabbix/ -rp

三、配置關於zabbixnginx配置文件

zabbix.conf

server

  {

        listen 80;

        index index.html index.htm index.php;

        root /data/zabbix;

 

 

        location ~ ^(.+.php)(.*)$ {

                   fastcgi_split_path_info ^(.+.php)(.*)$;

                    include fastcgi.conf;

                   fastcgi_pass  127.0.0.1:9000;

                   #fastcgi_pass   /tmp/php-cgi.sock;

                   fastcgi_index index.php;

                   fastcgi_param  PATH_INFO          $fastcgi_path_info;

           }

        location /nginx_status

                {

                        stub_status on;access_log off;

                }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

                {

                        expires 30d;

                }

        location ~ .*\.(js|css)?$

                {

                        expires 12h;

                }

        access_log /opt/logs/zabbixaccess.log;

  }

3

 

 

安裝zabbix:

1、下載安裝包,上傳到opt目錄下,下載地址:https://www.zabbix.com/download_sources

2、解壓安裝包:cd /opt && tar -zcvf zabbix-4.2.5.tar.gz

3、建立用戶:

groupadd --system zabbix

useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System"zabbix

 

四、zabbix建立家目錄

mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix

chown zabbix:zabbix /usr/lib/zabbix

五、安裝依賴包:yum install mysql-devel net-snmp-devel curl curl-devel libevent-devel

六、執行編譯,編譯完成後會在/usr/lib/zabbix/下生成文件目錄

cd  zabbix-4.2.5 && ./configure   --prefix=/usr/lib/zabbix/  --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

make install

七、zabbix相關命令建立軟鏈接

ln -s /usr/lib/zabbix/sbin/zabbix_server /usr/bin/#zabbixserver啓動命令

ln -s /usr/lib/zabbix/sbin/zabbix_agentd /usr/bin/#zabbixagent啓動命令

ln -s /usr/lib/zabbix/bin/zabbix_get /usr/bin/ #獲取agent狀態的命令

八、編輯zabbix_server.conf文件,修改一下字段

vim /usr/lib/zabbix/etc/zabbix_server.conf

ListenPort=10051#server監聽的端口

LogFile=/tmp/zabbix_server.log

DBHost=localhost#數據庫的IP

DBName=zabbix#數據庫名字

DBUser=zabbix#數據庫用戶名

DBPassword=zabbix..321com#數據庫用戶密碼

DBSocket=/tmp/mysql.sock#數據庫的sock文件位置

DBPort=3306#數據庫端口

ListenIP=0.0.0.0server監聽的IP範圍

Timeout=4

AlertScriptsPath=/usr/lib/zabbix/alertscripts#server執行腳本的位置,如微信報警腳本等

LogSlowQueries=3000

九、修改zabbix_agentd.conf文件,修改如下字段

LogFile=/tmp/zabbix_agentd.log

Server=127.0.0.1#zabbix-serverIP地址

ServerActive=127.0.0.1#zabbix-serverIP:端口,在本機上不用加端口

Hostname=10.128.0.48#agent本機IP

十、啓動zabbix-serverzabbix-agent進程

 

在瀏覽器中打開zabbix

一、打開瀏覽器http://ip/zabbix,以下圖,點擊下一步

 

 

2、檢查前期要求,後面都是OK狀態,若是存在不知足的選項,須要想辦法解決掉

 

3、配置mysql鏈接,須要填寫數據庫地址、端口、庫名、用戶名、密碼等

 

4、填寫zabbix-server的地址、端口和server名字,填寫完成以後會自動建立zabbix-server的相關配置文件並寫庫

 

5、初始化zabbix完成後,會提示登陸,以下圖,若是直接登陸,是以guest的身份登陸,咱們要點擊Go to dashboard,以後會出現登陸界面,默認用戶是Admin,密碼是zabbix

 

6、登陸完成後會進入到主頁面,以下圖,咱們首先要設置zabbix的語言環境、修改管理員的默認密碼、禁止guest用戶登陸,點擊右上角的人形按鈕

 

7、點擊Admin設置語言環境和修改密碼,修改,也能夠新建管理用戶

 

 

8、修改密碼或者新建用戶以後,退出從新登陸,以下圖

 

九、安裝被監控主機agent

爲被監控主機安裝zabbix-agent,最好與zabbix版本一致

在被監控主機執行如下腳本

function Check (){

    Agentd=/usr/local/zabbix/sbin/zabbix_agentd

    if test -e $Agentd && "$Agentd" -V2 | grep 4.2 > /dev/null

then

    echo "Zabbix_agentd 4.2 has been already installed. Exit" && exit

    else

    test -f zabbix_agentd_install.sh && rm -f zabbix_agentd_install.sh

    test -f /usr/local/zabbix/sbin/zabbix_agentd && rm -rf /usr/local/zabbix/sbin/zabbix_agentd

    test -f /etc/init.d/zabbix_agentd && rm -f /etc/init.d/zabbix_agentd

    fi

}

#配置相關

function Config(){

    Server=$1

    IP="`ifconfig | grep -o 'inet [0-9.]*' | grep -o '[0-9.]*$' | grep -e '^192\.' -e '^10\.' -e '^172\.'`"   #內網IP獲取

#IP="`curl ip.6655.com/ip.aspx`"    #公網IP獲取

    mkdir -p /usr/local/zabbix/sbin/

    mkdir -p /usr/local/zabbix/etc/

    mkdir -p /var/log/zabbix/ && touch /var/log/zabbix/zabbix_agentd.log

    chown zabbix:zabbix /var/log/zabbix/zabbix_agentd.log && chmod 755 /var/log/zabbix/zabbix_agentd.log

    cd /usr/local/zabbix/sbin/

 

cat > /usr/local/zabbix/etc/zabbix_agentd.conf <<EOF

Server=${Server}

Hostname=${IP}

ServerActive=${Server}:10051

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=10

BufferSize=1024

EOF

 

}

 

function Install(){

    yum install -y gcc pcre*

    wget http://35.198.217.74:8088/09/mc/drum/zabbix-4.2.3.tar.gz

tar zxvf zabbix-4.2.3.tar.gz && cd zabbix-4.2.3

    ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install

    echo 'zabbix-agent 10050/tcp # Zabbix Agent'>>/etc/services

    echo 'zabbix-agent 10050/udp # Zabbix Agent'>>/etc/services

    cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

    sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd

    chkconfig --add zabbix_agentd

    chkconfig zabbix_agentd on

    chmod +x /etc/init.d/zabbix_agentd

    chmod +x /usr/local/zabbix/sbin/zabbix_agentd

    groupadd zabbix

    useradd -g zabbix zabbix -s /bin/false

    Config $1

    service zabbix_agentd start && chkconfig zabbix_agentd on

    rm -rf ~/zabbix-4.2.0 && rm -rf ~/zabbix-4.2.0.tar.gz

 

    echo ---------------------Result---------------------------------

 

    netstat -ntlp | grep zabbix_agentd && echo -e "\033[33minstall Succeed.\033[0m" || echo -e "\033[31minstall Failed.\033[0m"

}

 

if [ -z $1 ]

then

    Server="10.148.0.99"  ###zabbix-serverIP地址,必定要記得改,不改的話在執行腳本的時候,須要帶上zabbix-serverIP

else

    Server=$1

fi

#main

Check

Install $Server

 

若是須要批量安裝zabbix-agent,能夠執行如下腳本

ips="10.148.0.11   ##agentIP

10.148.0.12

10.148.0.13

10.148.0.14

10.148.0.15

"

for i in $ips

do

echo $i

scp addagent.sh $i:/home/apple && echo $i scp successed! ##將安裝agent的腳本拷貝到主機

ssh $i "sudo sh /home/apple/addagent.sh"  ##遠程執行腳本

#ssh $i "ps -ef | grep zabbix | grep -v grep"  ##安裝完成後能夠檢查是否安裝成功

echo

done

 

十、添加被監控主機agent

在監控頁面點擊配置主機建立主機,如圖

 

爲主機設置組和模版

 

主機名稱是agentIP地址

可見的名稱填寫容易記憶的別名,選擇羣組,便於管理,能夠在現有的羣組中選擇,也能夠新建羣組。根據不一樣需求添加不一樣監控模版,通常選擇Templat OS Linux

agent代理程序IP地址填寫agentIP

設置以後點擊添加

 

十一、自定義監控模版

主要針對監控特定的程序,當程序異常能夠發出報警

 

建立模版,填上模版名稱,羣組能夠根據本身須要選擇,也能夠在建立模版以前本身建立羣組。

 

點擊監控項,再自定義監控項

 

編輯監控鍵值,我這裏是定義監控端口,當檢測到端口不通會發出報警,以後更新保存,以後在主機監控中就能夠選擇這個模版對服務器進行監控

 

十二、添加微信報警

在管理中選擇報警媒介類型,選擇建立媒體類型

 

自定義微信報警,制定腳本名稱,這個腳本應該存放在zabbix-server上指定的路徑,該路徑在zabbix-server文件中有配置:AlertScriptsPath=/usr/lib/zabbix/alertscripts,該微信腳本weixin.sh內容以下(以前須要申請企業微信帳號):

#SCRIPT_NAME:  weixin.sh

#DESCRIPTION:  send message from weixin for zabbix monitor

#!/bin/bash

CropID='wwe1f9cb0XXXXXXd4df'    # 個人企業的CorpID

Secret='NR2h-W3tZd2TOHXXXXXZ-QSjz2RzVk9_jTC0ikpeg4'    # 建立應用時的Secret

#獲取access_token

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           #發送的用戶位於$1字符串

   local PartyId=1           # 通信錄中部門的ID

   local Meg=$(echo "$@" | cut -d" " -f3-)

   echo """{

    \"touser\" : \"$UserId\",

    \"toparty\" : \"$PartyId\",

    \"msgtype\" : \"text\",

    \"agentid\" : \"$AppId\",

    \"text\" : {

        \"content\" : \"$Meg\"}

}"""

}

/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

 

 

配置好微信報警腳本後還須要設置動做,纔會將微信報警關聯起來。

新建動做

 

設置操做

標題:{TRIGGER.STATUS}:{TRIGGER.NAME}

消息內容:

\n報警主機: {HOST.NAME}\n

主機IP: {HOST.IP}\n

狀態:{TRIGGER.STATUS}\n

報警時間: {EVENT.DATE} {EVENT.TIME}\n

報警等級: {TRIGGER.SEVERITY}\n

報警信息: {TRIGGER.NAME}\n

問題詳情: {ITEM.NAME}:{ITEM.VALUE}\n

事件ID: {EVENT.ID}\n

設置恢復操做

標題:Resolved: {TRIGGER.NAME}

消息內容:

\n主機:{HOST.NAME}\n

地址:{HOST.IP}\n

狀態:{TRIGGER.STATUS}\n

時間:{EVENT.DATE} {EVENT.RECOVERY.TIME}\n

級別: {TRIGGER.SEVERITY}\n

內容: {TRIGGER.NAME}:{ITEM.VALUE}\n

事件ID: {EVENT.ID}\n

操做(動做恢復操做都須要設置):選擇發送用戶羣組、用戶、發送方式,添加更新保存

相關文章
相關標籤/搜索