1. 程式人生 > >1.Zabbix3.0部署

1.Zabbix3.0部署

ddl raw oca 中文界面 sqlit leg arc sock 驗證

相關服務軟件版本環境

https://monitoringartist.github.io/zabbix-searcher/ zabbix 全局配置

https://www.zabbix.com/documentation/2.0/manual/config/items/userparameters 如何自定義

Linuxcentos 6.7

nginx1.10.3

MySQL5.6.30

PHP5.6.35

apache2.4yum源安裝

wget http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-httpd24.repo

yum install httpd24-httpd -y

httpd24-httpd-devel httpd24-mod_ssl

一:用yum源安裝

#cd /etc/yum.repos.d

cat << EOF >> /etc/yum.repos.d/nginx.repo

> [nginx]

> name=nginx repo

> baseurl=http://nginx.org/packages/centos/6/$basearch/

> gpgcheck=0

> enabled=1

> EOF

第三方yum

# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

安裝程序:【Nginx+php

yum install nginx openssh-clients -y

yum --enablerepo=remi,remi-php55 install php php-common

yum --enablerepo=remi,remi-php55 install php-cli php-gd php-redis php-pear php-mysqlnd php-pdo php-pgsql php-pecl-mongo php-sqlite php-pecl-memcached php-pecl-memcache php-mbstrin php-xml php-soap php-mcrypt php-fpm

------------------->國外比較好用

#rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

#rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

php5.6.30版本】

yum install --enablerepo=remi --enablerepo=remi-php56 php-fpm

yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-bcmath php-gd --skip-broken

-------------------->國內比較好用

Php.ini配置

max_execution_time = 300

memory_limit = 128M

post_max_size = 16M

upload_max_filesize = 2M

max_input_time = 300

date.timezone = PRC

always_populate_raw_post_data = -1

mysql5.6 社區版yum

[mysql56-community]

name=MySQL 5.6 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/5/$basearch/

enabled=1

gpgcheck=0

gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

比如要安裝5.7版本的mysql,要確定5.6enabled=05.7enabled=1,一次保證只啟用一個子倉庫

[mysql57-community-dmr]

name=MySQL 5.7 Community Server Development Milestone Release

baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

二:測試php環境:(nginx+php整合)

在網站存放路徑下寫index.php文件,文件內容

<?php

phpinfo();

?>

然後進行訪問:http://192.168.0.160

技術分享

三:安裝mysql5.6.35版本(社區版)

1. 查看是否已經默認安裝mysql軟件:

rpm -qa|grep mysql

如果存在的話,繼續刪除即可

yum remove mysql * -y

2.安裝mysql5.6

#sudo yum install mysql-community-server

mysql-community-libs-compat-5.6.35-2.el5.x86_64

mysql-community-devel-5.6.35-2.el5.x86_64

mysql-community-libs-5.6.35-2.el5.x86_64

mysql-5.6.35-2.el5.x86_64

mysql-community-server-5.6.35-2.el5.x86_64

mysql-community-client-5.6.35-2.el5.x86_64

mysql-community-common-5.6.35-2.el5.x86_64

#sudo service mysqld start

#mysql –uroot –p

update mysql.user set password = password(‘xxxxxxxx‘) where user=‘root‘ and Host = ‘localhost‘; (為root用戶添加密碼)

或者mysqladmin -uroot password "zabbix"

mysql> create database zabbix default charset utf8;

Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘;

Query OK, 0 rows affected (0.03 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| zabbix |
+--------------------+
5 rows in set (0.00 sec)

四:安裝zabbix

1.下載:wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.0/zabbix-3.0.0.tar.gz

-rw-r--r-- 1 root root 15407273 521 2016 zabbix-3.0.0.tar.gz

[[email protected] ~]# tar zxf zabbix-3.0.0.tar.gz && cd zabbix-3.0.0

2.編譯zabbix

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

#make && make install

3.編譯過程中如果出錯

故障checking for mysql_config... no

configure: error: MySQL library not found

解決: yum install mysql-community-devel -y

4.創建用戶:

[[email protected] zabbix-3.0.0]#groupadd zabbix

[[email protected] zabbix-3.0.0]#useradd zabbix -s /sbin/nologin -M -g

5.導入文件:

[[email protected] zabbix-3.0.0]# mysql -uroot -pzabbix zabbix <

database/mysql/schema.sql

[[email protected] zabbix-3.0.0]# mysql -uroot -pzabbix zabbix < database/mysql/images.sql

[[email protected] zabbix-3.0.0]# mysql -uroot -pzabbix zabbix < database/mysql/data.sql

五:管理網站配置:

[[email protected] zabbix-3.0.0]#mkdir /home/www/zabbix -p

[[email protected] zabbix-3.0.0]#cp -rp frontends/php/* /home/www/zabbix

1.nginx虛擬主機配置

2./etc/nginx/conf.d下的default.conf文件備份,原文件刪掉,在重新寫一個zabbix.conf文件:文件配置內容如下

[[email protected] conf.d]#pwd

/etc/nginx/conf.d

[[email protected] conf.d]#vim zabbix.conf

server{

listen 80;

server_name _;

index index.php;

root /home/www/zabbix;

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {

expires 30d;

}

location ~* \.php$ {

root /home/www/zabbix;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /home/www/zabbix$fastcgi_script_name;

include fastcgi_params;

}

}

3.修改zabbix配置文件:

進入/usr/local/zabbix/etc

[[email protected] etc]#ll

-rw-r--r-- 1 root root 10241 317 03:20 zabbix_agentd.conf

drwxr-xr-x 2 root root 4096 316 23:52 zabbix_agentd.conf.d

-rw-r--r-- 1 root root 15760 316 23:52 zabbix_proxy.conf

drwxr-xr-x 2 root root 4096 316 23:52 zabbix_proxy.conf.d

-rw-r--r-- 1 root root 14680 317 00:52 zabbix_server.conf

drwxr-xr-x 2 root root 4096 316 23:52 zabbix_server.conf.d

修改zabbix_server.conf的配置文件,配置如下

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

再修改zabbix_agentd.conf

Server=192.168.0.160

ServerActive=192.168.0.160

Hostname=Zabbix server (根據自己修改)

4.啟動所有服務:

Service nginx restart

Service php-fpm restart

Service mysql restart

/usr/local/zabbix/sbin/zabbix_server

/usr/local/zabbix/sbin/zabbix_agentd

六:訪問主頁:http//192.168.0.160

技術分享

註:如果點擊下一步沒有反應:就執行setfacl -R -m u:nginx:rwx /var/lib/php

技術分享

如果出現以下情況,請安裝php的依賴包

PHP bcmath extension missing (PHP configuration parameter --enable-bcmath).

PHP option "always_populate_raw_post_data" must be set to "-1"

PHP gd extension missing (PHP configuration parameter --with-gd).

PHP gd PNG image support missing.

PHP gd JPEG image support missing.

PHP gd FreeType support missing

技術分享

技術分享

技術分享

技術分享

技術分享

需要下載文件,並上傳到指定的服務器目錄中.

技術分享

技術分享

技術分享

修改界面為中文界面

默認登錄界面為英文:

修改以下配置,並重啟服務即可;

vim /home/www/zabbix/include/locales.inc.php
#‘zh_CN‘ => [‘name‘ => _(‘Chinese (zh_CN)‘), ‘display‘ => false],
‘zh_CN‘ => [‘name‘ => _(‘Chinese (zh_CN)‘), ‘display‘ => true],

技術分享

接下來的配置就根據需求開發了

Zabbix服務端設置郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動發送報警郵件到指定郵箱。

具體操作:(作為參考)

以下操作在Zabbix監控服務端進行

下載sendemail軟件

然後安裝那兩個依賴包,命令是

yum install perl-Net-SSLeayperl-IO-Socket-SSL -y

解壓軟件,然後將復制sendemail到/usr/local/bin/目錄下,並加上可執行權限,然後修改用戶和群組。

[[email protected] ~]# tar zxfsendEmail-v1.56.tar.gz

[[email protected] ~]# cdsendEmail-v1.56/

[[email protected]]# cp sendEmail /usr/local/bin/sendEmail

[[email protected]]# chown zabbix:zabbix /usr/local/bin/sendEmail

[[email protected]]# ll /usr/local/bin/sendEmail

-rwxr-xr-x. 1 zabbix zabbix80213 Nov 21 21:26 /usr/local/bin/sendEmail

執行#/usr/local/bin/sendEmail -h查看sendEmail的幫助

#/usr/local/bin/sendEmail [email protected] -t [email protected] -s smtp.126.com -u "hello" -omessage-content-type=html -o message-charset=utf8 -xu [email protected] -xp 123abc-m "abcfdd"

命令主要選項說明:
/usr/local/bin/sendEmail #命令主程序
-f [email protected] #發件人郵箱
-t [email protected] #收件人郵箱
-s smtp.126.com #發件人郵箱的smtp服務器
-u "我是郵件主題" #郵件的標題
-o message-content-type=html #郵件內容的格式,html表示它是html格式
-o message-charset=utf8 #郵件內容編碼
-xu [email protected] #發件人郵箱的用戶名
-xp [email protected]$ #發件人郵箱密碼
-m "我是郵件內容" #郵件的具體內容

進入/usr/local/zabbix/share/zabbix/alertscripts/目錄

然後在這個目錄下創建報警腳本sendmail.sh

[[email protected] alertscripts]#vi mail.sh

下面是腳本內容(塗顏色部分是你的郵箱和密碼,-f和-xu參數後面跟郵箱,-xp後面跟授權碼)

#!/bin/bash

to=$1

subject=$2

body=$3

/usr/local/bin/sendEmail-o tls=auto -f [email protected] -t "$to" -s smtp.126.com -u"$subject" -o message-content-type=html -o message-charset=utf8 [email protected] -xp 123abc -m "$body"

[[email protected] alertscripts]#chmod +x mail.sh

執行腳本測試發郵件

[[email protected] alertscripts]#./mail.sh [email protected] test 123

*******************************************************************

Using the defaultof SSL_verify_mode of SSL_VERIFY_NONE for client

is deprecated! Please set SSL_verify_mode toSSL_VERIFY_PEER

together with SSL_ca_file|SSL_ca_path for verification.

If you reallydon‘t want to verify the certificate and keep the

connection open to Man-In-The-Middle attacks please set

SSL_verify_mode explicitly to SSL_VERIFY_NONE in yourapplication.

*******************************************************************

at /usr/local/bin/sendEmail line 1906.

invalid SSL_version specified at/usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 415

註:進行發送郵件測試時,出現了第一個報錯

原因是sendemail軟件和perl5裏面的ssl版本不兼容導致的,通過修改sendemail裏面的內容可以解決這個問題。

解決方法:

sendemail中1906行的內容,從

if (!IO::Socket::SSL->start_SSL($SERVER, SSL_version => ‘SSLv3 TLSv1‘)) {

修改為

if (! IO::Socket::SSL->start_SSL($SERVER)){

即不指定SSL的版本,讓程序來自己選擇

不管你使用的是163/126郵箱還是qq郵箱,你都必須開通pop3服務,而且126/qq郵箱還要求使用第三方客戶端發送郵件是必須使用授權碼登錄,使用賬號密碼驗證時,會出現下面圖片中的錯誤。

sendEmail[5102]: ERROR =>ERROR => SMTP-AUTH: Authentication to smtp.126.com:25 failed.

至於郵箱的授權碼,自己登錄126郵箱去設置就好。

經過上面兩個問題的處理後就可以正常發送郵件如下所示顯示成功提示

[[email protected] alertscripts]#./mail.sh [email protected] test 123

Nov 21 22:50:47 mysqlasendEmail[5195]: Email was sent successfully!

zabbix web端配置

上面的郵件腳本配置好後,就要在web端添加報警媒介,在web頁面的管理,報警媒介類型頁面,點擊右邊的創建媒體類型

進入創建頁面,然後輸入名稱“郵件報警腳本”,類型選擇腳本,名稱選擇mail.sh,點擊添加按鈕,添加三個腳本參數,分別是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESAGE},分別對於mail.sh中的to、subject和body。添加完成後點下面的添加按鈕,我們的報警媒介就創建完成了

技術分享

技術分享

創建好報警媒介後,就需要將報警媒介關聯到我們的用戶。點擊管理,用戶,然後選擇我們的用戶admin也可新建一個用戶,點擊用戶名就進入到用戶配置界面。點擊報警媒介,然後點添加,選擇我們上一步創建的郵件報警腳本,輸入收件人,選擇報警時間和類型,然後點擊添加,就將創建好的報警媒介關聯到我們的用戶上面了。

技術分享

技術分享

現在需要做的是,創建一個觸發動作,即系統出現故障時,觸發這個動作,然後給我們的郵箱發送報警郵件。點擊配置,選擇動作,然後點擊右邊的創建動作。

在動作這一頁名稱中寫入我們定義的動作名以及觸發條件

技術分享

設置“操作”

技術分享

技術分享

步驟是1-3,也即是從1開始到3結束。一旦故障發生,就是執行Email.sh腳本發生報警郵件給zabbix用戶。
假如故障持續了1個小時,它也只發送3次,第1-3次(即前3次)郵箱發送給zabbix用戶,時間間隔為0秒。
如果改成1-0,0是表示不限制.無限發送

設置“恢復操作”

技術分享

添加好以後就可以看到我們添加的動作名,以及該動作已啟用的狀態

技術分享

報警測試

192.16831.250服務器的zabbix_agent進程關閉。

發現可以正常收到故障報警郵件

技術分享

最後,點擊”報表“->”動作日誌“,可以看到觸發動作的次數(右邊還看查看到郵件發送狀態“已發送”)

技術分享

1.Zabbix3.0部署