zabbix3.2.3安裝部署


安裝nginx

[root@xuegod64 ~]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel   //zlib:給Nginx提供gzip模塊,需要的支持;OPenssl提供SSL功能;PCRE,地址重寫

[root@xuegod64 ~# tar xvf nginx-1.10.2.tar.gz -C /usr/local/src/ ; cd /usr/local/src/nginx-1.10.2

[root@xuegod64 nginx-1.10.2]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module

[root@xuegod64 nginx-1.10.2]# make && make install ;cd

[root@xuegod64 ~]# useradd -u 8001 -M -s /sbin/nologin nginx

[root@xuegod64 ~]# vim /usr/local/nginx/conf/nginx.conf

#user nobody;

user nginx nginx; #此行添加

…… #下面這段內容,需要去掉注釋,然后修改script_filename

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;

include fastcgi_params;

}

[root@xuegod64 ~]# /usr/local/nginx/sbin/nginx

[root@xuegod64 ~]# echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

[root@xuegod64 ~]# setenforce 0

[root@xuegod64 ~]# service iptables stop

iptables: Setting chains to policy ACCEPT: filter          [  OK  ]

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Unloading modules:                               [  OK  ]

[root@xuegod64 ~]# chkconfig iptables off

安裝mysql

[root@xuegod64 ~]# yum remove -y mysql mysql-devel mysql-server

[root@xuegod64 ~]# tar xvf mysql-5.6.26.tar.gz -C /usr/local/src/ ; cd /usr/local/src/mysql-5.6.26

[root@xuegod64 mysql-5.6.26]# useradd -u 8003 -M -s /sbin/nologin mysql

[root@xuegod64 mysql-5.6.26]# yum install -y cmake

[root@xuegod64 mysql-5.6.26]# yum -y install ncurses-devel

[root@xuegod64 mysql-5.6.26]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql

[root@xuegod64 mysql-5.6.26]# make -j 4 ; make install

[root@xuegod64 mysql-5.6.26]# chown -R mysql:mysql /usr/local/mysql/

[root@xuegod64 mysql-5.6.26]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

[root@xuegod64 mysql-5.6.26]# cp /usr/local/mysql/support-

files/mysql.server /etc/init.d/

[root@xuegod64 mysql-5.6.26]# cd ; vim /etc/init.d/mysql.server

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

[root@xuegod64 ~]# chkconfig mysql.server on

[root@xuegod64 ~]# /usr/local/mysql/scripts/mysql_install_db

--defaults-file=/etc/my.cnf --basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data --user=mysql

[root@xuegod64 tmp]# ln -s /tmp/mysql.sock /var/lib/mysql/

[root@xuegod64 tmp]# service mysql.server restart

 ERROR! MySQL server PID file could not be found!

Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/xuegod64.com.pid).

解決方法:

[root@xuegod64 ~]# mv /etc/my.cnf /etc/my.cnf.backup

[root@xuegod64 ~]# service mysql.server restart

 ERROR! MySQL server PID file could not be found!

Starting MySQL. SUCCESS!

[root@xuegod64 ~]# /usr/local/mysql/bin/mysql_secure_installation

安裝PHP

[root@xuegod64 ~]#  tar xvf libmcrypt-2.5.8.tar.gz -C /usr/local/src/ ;

cd /usr/local/src/libmcrypt-2.5.8/

[root@xuegod64 libmcrypt-2.5.8]# ./configure

--prefix=/usr/local/libmcrypt

[root@xuegod64 libmcrypt-2.5.8]# make ; make install ; cd

[root@xuegod64 ~]# tar xvf php-5.6.13.tar.bz2 -C /usr/local/src/ ;cd /usr/local/src/php-5.6.13/

[root@xuegod64 php-5.6.13]# yum install -y php-pear libjpeg-devel libxml2 libxml2-devel curl curl-devel libpng-devel freetype-devel

[root@xuegod64 php-5.6.13]# echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf

[root@xuegod64 php-5.6.13]# echo "/usr/local/libmcrypt/lib" >> /etc/ld.so.conf

[root@xuegod64 php-5.6.13]# ldconfig

[root@xuegod64 php-5.6.13]# echo "ldconfig" >> /etc/rc.local

[root@xuegod64 php-5.6.13]# ./configure --prefix=/usr/local/php -with-config-file-path=/usr/local/php

--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir

--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath

--enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm

--enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets

--with-xmlrpc --enable-zip --enable-soap --with-mcrypt=/usr/local/libmcrypt --with-gettext

[root@xuegod64 php-5.6.13]# make && make install

[root@xuegod64 php-5.6.13]# cp /usr/local/src/php-5.6.13/php.ini-production /usr/local/php/php.ini

[root@xuegod64 php-5.6.13]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

[root@xuegod64 php-5.6.13]# cp /usr/local/src/php-5.6.13/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@xuegod64 php-5.6.13]# chmod +x /etc/init.d/php-fpm ; cd

[root@xuegod64 ~]# chkconfig --add php-fpm

[root@xuegod64 ~]# chkconfig php-fpm on

[root@xuegod64 ~]# echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/index.php

[root@xuegod64 ~]# service php-fpm start

Starting php-fpm  done

安裝zabbix

Zabbix需要數據庫的支持,而卻Zabbix已經自帶了數據庫結構,images數據庫和表數據等相關內容

創建Zabbix使用數據庫

[root@xuegod64 ~]# mysql -uroot -p

mysql> create database zabbix;

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

mysql> flush privileges;

mysql> exit

[root@xuegod64 ~]# tar xvf zabbix-3.2.3.tar.gz -C /usr/local/src/ ;cd /usr/local/src/zabbix-3.2.3

[root@xuegod64 zabbix-3.2.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql

[root@xuegod64 zabbix-3.2.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql

[root@xuegod64 zabbix-3.2.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

如果在做分布式的環境中,Proxy服務器只需要一個數據庫schema,代理者agent不需要數據庫!Server必須三個數據庫同時擁有

Zabbix同時支持很多類型數據庫

編譯安裝zabbix

[root@xuegod64 zabbix-3.2.3]# yum install -y net-snmp-devel     

//net-snmp-config依賴

[root@xuegod64 zabbix-3.2.3]# /usr/sbin/ntpdate ntp1.aliyun.com  

//同步系統時間

[root@xuegod64 zabbix-3.2.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent

--with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl

[root@xuegod64 zabbix-3.2.3]# make install ; cd

[root@xuegod64 ~]# ls /usr/local/zabbix/

bin  etc  lib  sbin  share

[root@xuegod64 ~]# vim /usr/local/zabbix/etc/zabbix_server.conf

DBHost=localhost #默認注釋掉了,直接取消注釋即可

DBName=zabbix #數據庫用戶,我們授權的用戶也是zabbix

DBUser=zabbix #默認是root,我們授權的用戶是zabbix

DBPassword=zabbix #密碼我們授權的也是zabbix

監控Zabbix Server本身

監控本身,意思是本身作為服務器之外,自己也做自己的客戶端,也要使用agentd這個代理者

配置文件中,有agentd和agent兩個配置文件,前者是守護進程,后者依賴xinetd

[root@xuegod64 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

Server=127.0.0.1 #默認監控服務器自己,這三行不用改

ServerActive=127.0.0.1

Hostname=Zabbix server

UnsafeUserParameters=1 #允許所有的字符是在用戶定義的參數,參數傳遞,也就是支持自定義腳本

其中Server和ServerActive都指定zabbixserver的IP地址,不同的是,前者是被動后者是主動。也就是說前者允許127.0.0.1這個ip來我這取數據。而serverActive的127.0.0.1的意思是,客戶端主動提交數據給他。

啟動服務

[root@xuegod64 ~]# useradd -u 8005 -M -s /sbin/nologin zabbix

//如果zabbix用戶不存在,將以root運行,新建之后,如果zabbix存在,那么久直接可以用zabbix運行

[root@xuegod64 ~]# /usr/local/zabbix/sbin/zabbix_server  //直接運行

[root@xuegod64 ~]# echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local   //開機啟動

[root@xuegod64 ~]# netstat -antup | grep zabbix 

tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      94837/zabbix_server

bix_server

[root@xuegod64 ~]# 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

通過啟動腳本啟動zabbix

Zabbix默認有部分啟動腳本,如果你自己也可以通過腳本的方式來實現,可以使用他的模板來實現

腳本在源碼目錄的misc/init.d/下面(使用fedora下面的core即可,也可以使用fedroa core5的腳本均可)

[root@xuegod64 ~]# cd /usr/local/src/zabbix-3.2.3/misc/init.d/

[root@xuegod64 init.d]# cp fedora/core/zabbix_server /etc/init.d/

[root@xuegod64 init.d]# cp fedora/core/zabbix_agentd /etc/init.d/

[root@xuegod64 init.d]# vim /etc/init.d/zabbix_server

BASEDIR=/usr/local/zabbix  #找到此行,並修改

[root@xuegod64 init.d]# vim /etc/init.d/zabbix_agentd

BASEDIR=/usr/local/zabbix  #找到此行,並修改

[root@xuegod64 ~]# chkconfig --add zabbix_agentd

[root@xuegod64 ~]# chkconfig zabbix_agentd on

[root@xuegod64 ~]# chkconfig --add zabbix_server

[root@xuegod64 ~]# chkconfig zabbix_server on

[root@xuegod64 ~]# service zabbix_agentd start

[root@xuegod64 ~]# service zabbix_server start

編輯php頁面控制文件

默認配置文件沒有寫入到我們的Nagix的配置文件中,也就是不能加載到我們的zabbix頁面目錄

[root@xuegod64 ~]# rm –rf /usr/local/nginx/html/*

[root@xuegod64 ~]# cp -r /usr/local/src/zabbix-3.2.3/frontends/php/* /usr/local/nginx/html/

[root@xuegod64 ~]# vim /usr/local/nginx/conf/nginx.conf

location / {

root html;

index index.php index.html index.htm; #找到此行內容,添加index.php

}

重啟服務

[root@xuegod64 ~]# /usr/local/nginx/sbin/nginx -s reload ; /etc/init.d/php-fpm restart

Gracefully shutting down php-fpm . done

Starting php-fpm  done

打開網頁安裝zabbix

瀏覽器輸入:http:// 192.168.134.131 如圖,下一步Next

[root@xuegod64 nginx]# vim /usr/local/php/php.ini

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

date.timezone = Asia/Shanghai

always_populate_raw_post_data = -1

[root@xuegod64 nginx]# /usr/local/nginx/sbin/nginx -s reload ; /etc/init.d/php-fpm restart

下一步,

輸入賬戶密碼,下一步

下一步,

下一步,

將下載的文件拷貝到/usr/local/nginx/html/conf/目錄下

點擊Finish,完成安裝!

登陸Zabbix並配置

登陸之后我們修改語言

默認用戶名和密碼分別問admin,zabbix

點擊右上角,,Profile,然后選擇語言

已變成中文,如果所示,可到我們當前監控的本機(默認沒有啟動,點擊后面紅色的停用,則啟用)

導入中文字體字符集,文中的亂碼問題就解決了

[root@xuegod64 ~]# mv simkai.ttf /usr/local/nginx/html/fonts/

[root@xuegod64 ~]# cd /usr/local/nginx/html/fonts/

[root@xuegod64 fonts]# mv DejaVuSans.ttf /root/

[root@xuegod64 fonts]# mv simkai.ttf DejaVuSans.ttf

監控xuegod63網站服務器apache服務

(http://showerlee.blog.51cto.com/2047005/1206875/)

首先在本機下載模板:

https://github.com/rdvn/zabbix-templates/archive/master.zip

該zip包有apache、memcache、redis、varnish模板,我們解壓后使用其中的apache模板

安裝agent

[root@xuegod63 ~]# yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI

[root@xuegod63 ~]# useradd -u 8002 -M -s /sbin/nologin zabbix

[root@xuegod63 zabbix-3.2.3]# tar -zxvf zabbix-3.2.3.tar.gz -C /usr/local/src/ ; cd /usr/local/src/zabbix-3.2.3

[root@xuegod63 zabbix-3.2.3]# ./configure --prefix=/usr/local/zabbix --enable-agent

[root@xuegod63 zabbix-3.2.3]# make install ;cd

[root@xuegod63 ~]# grep "chkconfig" /usr/local/src/zabbix-3.2.3/ -R --color

/usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_agentd:# chkconfig: - 90 10

/usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_agentd:# description:  Starts and stops Zabbix Agent using chkconfig

/usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_server:# chkconfig: - 90 10

/usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_server:# description:  Starts and stops Zabbix Server using chkconfig

/usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core5/zabbix_agentd:# chkconfig: - 95 5

/usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core5/zabbix_server:# chkconfig: - 95 5

[root@xuegod63 ~]# cp /usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d

[root@xuegod63 ~]# vim /etc/init.d/zabbix_agentd   

//上一步生成了啟動腳本,然后現在編輯腳本

ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd" #修改此行

[root@xuegod63 ~]# chkconfig --add zabbix_agentd

[root@xuegod63 ~]# chkconfig zabbix_agentd on

[root@xuegod63 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

//客戶端操作

Server=192.168.134.131 #zabbix server地址,可以多個,用,隔開

ServerActive=192.168.134.131  #主動檢查的意思,主動檢查手機的數據的數據發送給Zabbix Server

Hostname=xuegod64.cn

UnsafeUserParameters=1

啟動服務

[root@xuegod63 ~]# /etc/init.d/zabbix_agentd restart

Stopping Zabbix Agent:                                     [FAILED]

Starting Zabbix Agent:                                     [  OK  ]

[root@xuegod63 ~]# netstat -antup | grep zabbix

tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      8708/zabbix_agentd 

打開apache的server-status:

[root@xuegod63 ~]# vim /etc/httpd/conf/httpd.conf

末行添加如下內容:

---------------------

ExtendedStatus On

<location /server-status>

   SetHandler server-status

   Order Allow,Deny

   Allow from all

</location>

保存后重啟httpd服務

[root@xuegod63 ~]# service httpd restart

Stopping httpd:                                            [  OK  ]

Starting httpd:                                            [  OK  ]

zabbix配置:

將下載下來的zip包內apache目錄下的apache_status.sh上傳到系統/usr/local/bin/下,並賦予

執行權限

[root@xuegod63 ~]# mv apache_status.sh /usr/local/bin/

[root@xuegod63 ~]# cd /usr/local/bin/

[root@xuegod63 bin]# chmod +x apache_status.sh

修改zabbix_agentd.conf配置:

[root@xuegod63 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

末行添加如下內容:

-------------

UserParameter=apache[*],/usr/local/bin/apache_status.sh $1

-------------  

重啟zabbix服務

[root@xuegod63 ~]# pkill zabbix

[root@xuegod63 ~]# /etc/init.d/zabbix_agentd start

訪問zabbix web后台導入模板

訪問zabbix-配置-模板,點擊右上角的匯入

訪問zabbix-配置-模板,查看模板:

創建apache服務器主機

添加后,添加apache模板

輸入http://192.168.134.130多刷新幾次就有數據了

郵件報警

sendEmail配置zabbix郵件報警

1、下載sendEmail:

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

2、配置sendEmail:

 

# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL        # 安裝組件

# tar xf sendEmail-v1.56.tar.gz -C /usr/local/src/ ; cd /usr/src/sendEmail-v1.56/

# cp -a sendEmail /usr/local/bin/

 

3、測試命令行發送郵件:

/usr/local/bin/sendEmail –f 5879555@163.com -t 549795534@qq.com -s smtp.163.com -u "test sendEmail" -o message-content-type=

html -o message-charset=utf8 -xu 5879555@163.com -xp wdc123(此為163郵箱授權密碼而非登陸密碼) -m "hahaha"

Aug 19 11:23:37 localhost sendEmail[17493]: Email was sent successfully!         # 發送成功返回此信息提示。

4、發送郵件腳本:(/usr/local/zabbix/alertscripts/mail.sh   在/usr/local/zabbix/目錄下新建alertscripts,並在zabbix_server.conf配置文件AlertScriptsPath定義/usr/local/zabbix/alertscripts/路徑)

#!/bin/bash

export LANG=zh_CN.UTF8

to=$1

subject=$2

body=$3

/usr/local/bin/sendEmail -f 5879555@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu 5879555@163.com -xp wdc123 -m "$body"

# chmod +x mail.sh

 # chown –R zabbix.zabbix mail.sh

腳本參數說明:

 

-f:發件人郵箱

-t:收件人郵箱

-u:主題

-o:選項

-xu:用戶名

-xp:密碼

-m:郵件正文

 

注:163、qq郵箱需要到設置下面生成授權碼,用授權碼代替密碼才能成功發送郵件。

通過命令發送郵件成功了,發送郵件腳本也寫好了,並且放到zabbix_server配置文件指定的目錄里,那么,我們接下來就可以通過zabbix web頁面來配置郵件報警了。(可參照博客http://blog.csdn.net/xiegh2014/article/details/52118643)

配置zabbix web管理頁面添加報警

配置報警媒介類型

管理 --> 報警媒介類型  --> 創建媒體類型

創建媒體類型

添加(更新),

添加用戶,報警媒介

新的觸發條件選擇主機,=,xuegod63

操作,

默認接收人:

故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!

默認信息:

告警主機:{HOST.NAME}

主機IP:  {HOST.IP}

告警時間:{EVENT.DATE}  {EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警名稱:{TRIGGER.NAME}

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

事件ID:  {EVENT.ID}

恢復操作,

默認接收人:

恢復{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!

默認信息:

告警主機:{HOST.NAME}

主機IP:  {HOST.IP}

告警時間:{EVENT.DATE}  {EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警名稱:{TRIGGER.NAME}

目前狀態:{TRIGGER.STATUS}

事件ID:  {EVENT.ID}

報警URL: {TRIGGER.URL}

 

 


免責聲明!

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



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