Zabbix-2.4.3監控系統安裝配置

weixin_34205076發表於2017-11-22

Zabbix-2.4.3監控系統安裝配置

環境

作業系統:Red Hat Enterprise Linux Server release 6.4 (Santiago) 32位

zabbix版本:zabbix-2.4.3.tar.gz

一、zabbix WEB環境搭建

zabbix的安裝需要LAMP或者LNMP環境。

#yum install httpd mysql mysql-server mysql-devel gcc net-snmp-devel curl-devel perl-DBI php php-gd php-mysql php-xml -y

#chkconfig mysqld on

#chkconfig httpd on

#cd /opt/rpm

將rpm資料夾上傳到/opt目錄下(由於預設安裝PHP版本為php-5.3.3-22.el6.i686

所以需要下載php-mbstring-5.3.3-22.el6.i686.rpm php-bcmath-5.3.3-22.el6.i686.rpm,下載地址:

http://rpm.pbone.net/index.php3?stat=26&dist=74&size=464260&name=php-mbstring-5.3.3-22.el6.i686.rpm

http://rpm.pbone.net/index.php3?stat=26&dist=74&size=33768&name=php-bcmath-5.3.3-22.el6.i686.rpm)

#yum localinstall php-mbstring-5.3.3-22.el6.i686.rpm php-bcmath-5.3.3-22.el6.i686.rpm


二、zabbix 資料庫設定

登入資料庫,建立帳號和設定許可權:

#service mysqld restart

#mysql -uroot -S /var/lib/mysql/mysql.sock

mysql>use mysql;

mysql>delete from user where user='';

mysql>create database zabbix character set utf8;

mysql>grant all privileges on *.* to root@'%' identified by 'root' with grant option;

mysql>grant all privileges on zabbix.* to zabbix@'192.168.1.101' identified by 'zabbix';

mysql>flush privileges;

注:192.168.1.101為zabbix伺服器的IP地址。



三、安裝zabbix服務(192.168.1.101)

1、增加zabbix使用者和組

#groupadd zabbix

#useradd -g zabbix -m zabbix


2、將從官網下載的zabbix上傳到/opt下

官網下載地址:http://sourceforge.net/projects/zabbix/files/latest/download

#cd /opt

#tar -zxvf zabbix-2.4.3.tar.gz


3、匯入資料庫表(按一下循序依次進行)

#cd /opt/zabbix-2.4.3/database/mysql

#mysql -uroot -S /var/lib/mysql/mysql.sock zabbix < schema.sql

#mysql -uroot -S /var/lib/mysql/mysql.sock zabbix < images.sql 

#mysql -uroot -S /var/lib/mysql/mysql.sock zabbix < data.sql


4、編譯安裝zabbix

#cd /opt/zabbix-2.4.3/

#./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy

#make

#make install


5、新增服務埠

#vim /etc/services

zabbix-agent 10050/tcp # Zabbix Agent

zabbix-agent 10050/udp # Zabbix Agent

zabbix-trapper 10051/tcp # Zabbix Trapper

zabbix-trapper 10051/udp # Zabbix Trapper


6、修改server配置檔案,新增zabbix資料庫密碼

#vim /usr/local/zabbix/etc/zabbix_server.conf

LogFile=/tmp/zabbix_server.log

PidFile=/tmp/zabbix_server.pid

DBHost=192.168.1.101

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix #zabbix資料庫密碼

ListenIP=192.168.1.101 #zabbix伺服器IP地址


檢視修改結果:

#cat /usr/local/zabbix/etc/zabbix_server.conf|grep -Ev ^#|grep -v ^$


7、修改Agentd配置檔案,更改HOSTNAME為本機的hostname

#vi /usr/local/zabbix/etc/zabbix_agentd.conf

PidFile=/tmp/zabbix_agentd.pid #程式PID

LogFile=/tmp/zabbix_agentd.log #日誌儲存位置

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

UnsafeUserParameters=1 #啟用自定義key

EnableRemoteCommands=1 #允許執行遠端命令

Server=192.168.1.101 #server端IP地址

# ServerActive=127.0.0.1 #登出自動註冊

Hostname=192.168.1.101#被監控端的IP


檢視修改結果:

#cat /usr/local/zabbix/etc/zabbix_agentd.conf|grep -v ^#|grep -v ^$


8、新增web前端php檔案

#cd /opt/zabbix-2.4.3/frontends/

#cp -rf php /var/www/html/zabbix #虛擬主機目錄

#cd /var/www/html/

#chown -R zabbix:zabbix /var/www/html/zabbix


9、web前端安裝配置

修改PHP相關引數

#vi /etc/php.ini

max_execution_time = 300

max_input_time = 600

memory_limit = 128M

post_max_size = 32M

date.timezone = Asia/Shanghai

mbstring.func_overload=0

修改hosts

#vi /etc/hosts

192.168.1.101 zabbix

修改主機名(若不用本地郵箱發報警資訊,可省略)

#vi /etc/sysconfig/networkx

NETWORKING=yes

HOSTNAME=zabbix.nagiosa.com

修改httpd.conf

#vi /etc/httpd/conf/httpd.conf

ServerName 192.168.1.101:80

重啟apache

#service httpd restart


10、為zabbix的啟動、關閉和重啟的指令碼檔案做連結,方便系統可以找得到

#cd /usr/local/zabbix/bin/

#for i in *;do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i};done

#cd /usr/local/zabbix/sbin/

#for i in *;do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i};done


11、把mysql的lib庫檔案新增到系統動態庫配置檔案中,方便系統可以找到mysql的lib庫。   

#echo "/usr/lib64/mysql/" >>/etc/ld.so.conf

#ldconfig   //使上面的操作立即生效

   

12、將zabbix相關的啟動指令碼等檔案拷貝的/etc/init.d/下,方便日後對zabbix的啟動關閉操作

#cp /opt/zabbix-2.4.3/misc/init.d/fedora/core/zabbix_server /etc/init.d/

#chmod +x /etc/init.d/zabbix_server #賦予可執行許可權

#cp /opt/zabbix-2.4.3/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

#chmod +x /etc/init.d/zabbix_agentd

修改zabbix server和agentd程式目錄的位置:

#vi /etc/init.d/zabbix_server

progdir="/usr/local/zabbix/sbin/" 

BASEDIR=/usr/local/zabbix

#vi /etc/init.d/zabbix_agentd

progdir="/usr/local/zabbix/sbin/"

BASEDIR=/usr/local/zabbix


 

13、新增開機啟動服務

#chkconfig --add zabbix_server

#chkconfig --add zabbix_agentd

#chkconfig --level 345 zabbix_server on

#chkconfig --level 345 zabbix_agentd on


14、在客戶端瀏覽器上面訪問zabbix,開始WEB的前端配置

http://ZabbixIP/zabbix,按提示點選下一步

Step1:下一步。

Step2:如果全部OK的話才能進行下一步的安裝,如果有錯誤請返回到server端檢查相關的軟體包是否安裝。

Step3:需要輸入mysql資料庫帳號密碼,如果資料庫不在zabbix伺服器上面,在Host裡面新增資料庫伺服器的地址,並且要用grant命令給資料庫授權。

Step4:輸入伺服器端hostname或者IP,埠預設,name預設無;

Step5:若會提示fail,按頁面上的提示下載配置檔案到zabbix伺服器上的/var/www/html/zabbix/conf下,名字一定要是zabbix.conf.php,然後點選Retry

配置完成後出現登陸介面,預設的使用者名稱為:admin,密碼為:zabbix。



四、更改zabbix預設語言為簡體中文、替換監控影像上系統預設的中文字型

1、修改系統配置檔案,讓web頁面支援簡體中文顯示

#vi /var/www/html/zabbix/include/locales.inc.php #編輯修改

'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false),

修改為

'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => true),


2、替換監控影像上系統預設的字型(預設字型不支援中文,如果不替換,影像上會顯示亂碼)

在Windows系統中的C:\Windows\Fonts目錄中複製出一箇中文字型檔案,例如simkai.ttf(楷體)

把字型檔案simkai.ttf上傳到zabbix站點根目錄下/var/www/html/zabbix/fonts資料夾中

備份預設的字型檔案

#cd /var/www/html/zabbix/fonts

#mv DejaVuSans.ttf DejaVuSans.ttf.bak

修改simkai.ttf名稱為DejaVusSans.ttf

#mv simkai.ttf DejaVuSans.ttf


3、在瀏覽器中開啟:

http://192.168.105.107/zabbix

點選頁面右上角的Profile

選中Language:Chinese(zh_CN)  #簡體中文

點update儲存

預設介面已經是中文顯示

至此,Zabbix安裝圖解教程完成。



五、禁用顯示“install”選項

在zabbix初始安裝完成後,管理介面上的“configuration”中還有一個頁面是“install”選項,存在誤操作重新安裝的風險,通過修改menu.inc.php檔案可以禁用該顯示專案

#vi /var/www/html/zabbix/include/menu.inc.php --註釋如下幾行

#,array(

#       'url' => 'setup.php',

#       'label' => _('Installation')

#)



六、被監控端配置agent(192.168.1.200)

在此伺服器上Zabbix agent不能通過root使用者執行,需建立一個單獨使用者執行zabbix agent

#useradd -s /sbin/nologin  zabbix

1、將從官網下載的zabbix上傳到192.168.1.200的/opt下

#cd /opt

#tar -zxvf zabbix-2.4.3.tar.gz

#rm -rf zabbix-2.4.3.tar.gz

#cd zabbix-2.4.3/


2、編譯安裝zabbix

#cd /opt/zabbix-2.4.3/

#./configure --prefix=/usr/local/zabbix  --enable-agent 

#make

#


3、新增服務埠

#vim /etc/services

zabbix-agent 10050/tcp # Zabbix Agent

zabbix-agent 10050/udp # Zabbix Agent

zabbix-trapper 10051/tcp # Zabbix Trapper

zabbix-trapper 10051/udp # Zabbix Trapper


4、修改Agentd配置檔案

#vi /usr/local/zabbix/etc/zabbix_agentd.conf

PidFile=/tmp/zabbix_agentd.pid #程式PID

LogFile=/tmp/zabbix_agentd.log #日誌儲存位置

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

UnsafeUserParameters=1 #啟用自定義key

EnableRemoteCommands=1 #允許執行遠端命令

Server=192.168.1.101 #server端IP地址

# ServerActive=127.0.0.1 #登出自動註冊

Hostname=192.168.1.200 #被監控端的IP


修改完檢視:

#cat /usr/local/zabbix/etc/zabbix_agentd.conf|grep -v ^#|grep -v ^$


5、修改hosts

#vi /etc/hosts

192.168.1.200 Redhata


6、為zabbix的啟動、關閉和重啟的指令碼檔案做連結,方便系統可以找得到

#cd /usr/local/zabbix/bin/

#for i in *;do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i};done

#cd /usr/local/zabbix/sbin/

#for i in *;do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i};done

   

7、將zabbix相關的啟動指令碼等檔案拷貝的/etc/init.d/下,方便日後對zabbix的啟動關閉操作

#cp /opt/zabbix-2.4.3/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

#chmod +x /etc/init.d/zabbix_agentd


8、修改agentd程式目錄的位置:

#vi /etc/init.d/zabbix_agentd

progdir="/usr/local/zabbix/sbin/"

BASEDIR=/usr/local/zabbix


 

9、新增開機啟動服務

#chkconfig --add zabbix_agentd

#chkconfig --level 345 zabbix_agentd on

#service zabbix_agentd start


10、測試,下面的命令需要在server端執行,其中192.168.1.200是agent的ip

#/usr/local/zabbix/bin/zabbix_get -s192.168.1.200 -p10050 -k"system.uptime"

20310



七、解決zabbix 報警郵件以附件形式傳送



1、yum install dos2unix

cd /usr/local/zabbix/share/zabbix/alertscripts

2、修改sendmail.sh

#!/bin/sh

echo "$3" > /tmp/1.txt

dos2unix /tmp/1.txt 

mail -s "$2" $1 < /tmp/1.txt


八、關於防火牆和selinux的設定,以下操作在被監控的Linux主機進行


1、在不關閉iptables防火牆的情況下配置防火牆,開啟10050、10051的TCP和UDP埠


vi /etc/sysconfig/iptables #編輯防火牆配置檔案


-A INPUT -s 192.168.21.127 -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCEPT


-A INPUT -s 192.168.21.127 -m state --state NEW -m udp -p udp --dport 10050:10051 -j ACCEPT


:wq! #儲存退出


service iptables restart #重啟防火牆使配置生效


說明:192.168.21.127是Zabbix服務端的IP地址,表示埠只對此IP開放,如果要對所有IP開放,規則如下:


-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCEPT


-A INPUT -m state --state NEW -m udp -p udp --dport 10050:10051 -j ACCEPT


2、關閉SELINUX


vi /etc/selinux/config


#SELINUX=enforcing #註釋掉


#SELINUXTYPE=targeted #註釋掉


SELINUX=disabled #增加


:wq! #儲存退出


setenforce 0 #使配置立即生效

九、Zabbix通過Simple check 用ICMP ping來判斷主機是否存活的問題

  Zabbix使用fping處理ICMP ping的請求,需要安裝fping程式,安裝完畢之後需要在zabinx_server.conf中的引數FpingLocation配置fping安裝的路徑。

由於fping預設是root許可權工作,而zabbix-server是zabbix使用者執行的,所以需要對fping程式設定setuid許可權,如果在自定義key的時候需要用到netstat命令,也同樣要設定setuid,否則不能獲取到資料,而在日誌中提示權拒絕。

如果不修改許可權的話,會出現下面許可權的問題

#fping 192.168.1.200

#fping: can't create raw socket (must run as root?) : Operation not permitted

1.fping安裝

# wget http://www.fping.org/dist/fping-3.10.tar.gz

# tar zxvf fping-3.10.tar.gz

# cd fping-3.10

# ./configure --prefix=/usr/local/fping/

# make && make install

2.修改zabbix_server.conf配置檔案

# vim /usr/local/zabbix/etc/zabbix_server.conf

把FpingLocation路徑修改為剛安裝的fping路徑。

 FpingLocation=/usr/local/fping/sbin/fping

如果不修改zabbix_server.conf配置件需要使用軟連線到/usr/local/sbin/fping,zabbix預設fping的路徑是/usr/sbin/fping


#ln -s /usr/sbin/fping /path/to/non-existant/fping

#ln -s /usr/sbin/fping6 /path/to/non-existant/fping6

# service zabbix_server restart  #重啟服務

3.修改fping許可權

# chown root:zabbix /usr/local/fping/sbin/fping

# chmod 4710 /usr/local/fping/sbin/fping

4.zabbix使用者測試fping命令

[zabbix@LS fping-3.10]$ /usr/local/fping/sbin/fping 192.168.1.200 

192.168.1.200  is alive   # 說明命令返回成功。


10、zabbix伺服器端配置簡訊報警

1、修改zabbix_server.conf檔案

#vi /usr/local/zabbix/etc/zabbix_server.conf

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts


2、建立簡訊告警指令碼sendSMS.sh

#cd /usr/local/zabbix/share/zabbix/alertscripts

#vi sendSMS.sh --新增如下內容

#!/bin/bash

#

# Filename:    sendSMS.sh

# Revision:    1.0

# Date:        2015/01/19

# Author:      Likey

# Email:

# Website:     http://

# Description: zabbix簡訊告警指令碼

# Notes:       簡訊閘道器使用了中國網建SMS簡訊通

#

# 指令碼的日誌檔案

LOGFILE="/tmp/SMS.log"

:>"$LOGFILE"

exec 1>"$LOGFILE"

exec 2>&1

# Uid和Key的值需要自行修改,http://www.smschinese.cn/api.shtml

# Uid 網站使用者名稱

# Key 介面祕鑰

Uid="xxxxx"

Key="xxxxxxxxxx" 

MOBILE_NUMBER=$1    # 手機號碼

MESSAGE_UTF8=$3        # 簡訊內容

XXD="/usr/bin/xxd"

CURL="/usr/bin/curl"

TIMEOUT=5 

# 簡訊內容要經過URL編碼處理,除了下面這種方法,也可以用curl的--data-urlencode選項實現。

MESSAGE_ENCODE=$(echo "$MESSAGE_UTF8" | ${XXD} -ps | sed 's/\(..\)/%\1/g' | tr -d '\n')

# SMS API

URL="http://utf8.sms.webchinese.cn/?Uid=${Uid}&Key=${Key}&ILE_NUMBER}&smsText=${MESSAGE_ENCODE}"

# Send itsmsMob=${MOB

set -x

${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"


3、設定指令碼和日誌檔案許可權:

#touch /tmp/SMS.log

#chown zabbix:zabbix /tmp/SMS.log

#chown zabbix:zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendSMS.sh

#chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendSMS.sh


4、手動測試指令碼:

#/usr/local/zabbix/share/zabbix/alertscripts/sendSMS.sh xxxxxxxxxxx "" "尊敬的客戶,您的訂單已出庫發貨,正在配送中,請您耐心等待。"

指令碼第一個引數為手機號碼;第二個引數不會用到,設為空就行;第三個引數為簡訊內容。

注意:簡訊內容要符合要求,不要傳送廣告或者聊天簡訊,否則賬戶可能會被禁用。實測這種訂單類簡訊是不會被遮蔽的。如果簡訊接收有很高的延遲,可以聯絡客服。

指令碼執行後,到日誌檔案/tmp/SMS.log裡檢視返回值,如果大於0代表傳送成功,小於0傳送失敗。


5、配置告警方式(Media types)

選擇【Administration】->【Media types】,建立簡訊告警方式:

注意,"Name"給告警方式起個名字,"Type"選擇Script型別,"Script name"填寫上面建立的指令碼名。


6、配置使用者的手機號碼

選擇【Administration】->【Users】,進入使用者配置介面,在"Media"選項卡中配置使用者接收告警的手機號碼。點選"Add",在彈出的視窗中輸入使用者手機號


7、配置告警動作(Action)

選擇【Configuration】->【Actions】,進入告警動作配置介面,建立新的action。

官方資料:https://www.zabbix.com/documentation/2.2/manual/config/notifications/action

7.1、配置簡訊內容(Default message)

7.2、配置告警條件(Conditions)

7.3、配置告警接收人(Action operations)














本文轉自shangshanyang51CTO部落格,原文連結:http://blog.51cto.com/qqran/1917067 ,如需轉載請自行聯絡原作者


相關文章