1. 程式人生 > >運維筆記41 zabbix3.2監控搭建(rhel6.5+nginx0.7+mysql5.7+php5.6+rpm安裝的zabbix3.2帶詳細排錯過程)

運維筆記41 zabbix3.2監控搭建(rhel6.5+nginx0.7+mysql5.7+php5.6+rpm安裝的zabbix3.2帶詳細排錯過程)

系統拓撲:
這裡寫圖片描述

zabbix伺服器環境:
系統版本:Red Hat Enterprise Linux Server release 6.5 (Santiago)
nginx版本: nginx-0.7.69
mysql版本:mysql Ver 14.14 Distrib 5.7.18
php版本:PHP 5.6.30

概述:平常搭建的時候可能只是使用了系統自帶的lamp版本,這次lnmp環境使用的基本都是最新版本的,就是為了多踩坑。其中php出現的問題最多。

一. lnmp安裝

1.1 nginx安裝與配置
nginx的原始碼安裝沒什麼說的,因為主要就是web伺服器,請求的處理都是扔給後面的php,所以用最基本的配置即可。

./configure --prefix=/usr/local/nginx --with-http_stub_status_module

建立nginx使用者

[root@localhost ~]# useradd -s /sbin/nologin nginx

修改nginx配置檔案使其可以支援php

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME
/scripts$fastcgi_script_name; include fastcgi.conf; }

1.2 mysql的安裝與配置
mysql使用官網釋出的5.7.18版本的rpm包安裝
mysql5.7.18下載地址

這裡寫圖片描述
我選擇mysql全家桶(bundle包)下載。並將除了帶有embedded(嵌入式)的包直接使用yum安裝。

原始碼編譯安裝php

./configure --prefix=/usr/local/php56 --with-config-file-path=/usr/local/php56/etc \
--enable-inline
-optimization --disable-debug --disable-rpath --enable-shared \ --enable-opcache --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx \ --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \ --enable-bcmath -enable-mbstring --enable-sockets --with-png-dir \ --with-jpeg-dir --with-freetype-dir --with-gettext \

在一般的環境下(我的是centos6.5最小安裝),需要解決的依賴如下:

libxml2-devel

解決上面的依賴後就可以configure成功,表現如下:

Thank you for using PHP.

config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands

接下來直接make && make install
安裝完成後開始配置

[root@localhost etc]# ls
pear.conf  php-fpm.conf.default
[root@localhost etc]# pwd
/usr/local/php56/etc

由於是原始碼安裝,我們的配置目錄是我們自己規定的,不是正常情況下的/etc/php,但是發現上面的配置目錄中少了一些東西,比如php.ini,這時切記,php的原始碼目錄是個百寶箱,一會大家也會看出,一旦發現什麼東西沒有,第一時間先看下原始碼目錄。
現在確定我們缺的配置檔案:

php.ini     #php的主配置檔案
php-fpm.conf    #php的fastcgi配置檔案,因為我們是要用php作為處理web請求的一個服務,還使用以前的cgi指令碼效率就太低,至於這個fpm是什麼,下面有一篇文章很好的解釋了這個問題

從原始碼包中將配置檔案複製到我們指定的配置目錄。

[root@localhost php-5.6.30]# cp php.ini-development /usr/local/php56/etc/
[root@localhost php-5.6.30]# cp sapi/fpm/php-fpm.conf /usr/local/php56/etc/

新增php-fpm啟動指令碼

[root@localhost php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-5.6.30]# chmod a+x  /etc/init.d/php-fpm

將php的bin目錄新增到環境變數中
啟動php-fpm,並測試php是否正常

[root@localhost php-5.6.30]# /etc/init.d/php-fpm status
php-fpm (pid 12760) is running...
[root@localhost php-5.6.30]# php -v
PHP 5.6.30 (cli) (built: Apr 17 2017 17:02:57) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

到此為止基礎的lnmp配置就結束了。下面開始與zabbix相關的配置

二. zabbix3.2對php的配置需求

我們先從zabbix安裝時候的介面看下他對php的要求
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這是我經過反覆修改已經解決了全部的依賴,但是如果你只是按照上面的方式配置了php,那會有很多令人惱火的問題等著你。
按照上面配置php在安裝zabbix時候會與到的配置問題:

配置檔案不滿足
PHP option "post_max_size"  #php預設安裝是8M,我們需要16M
PHP option "max_execution_time"#預設30,我們需要300
PHP option "max_input_time"     #預設60,我們需要300
PHP option "always_populate_raw_post_data"  #如過你的php版本是5.6以上的一定要將這個功能關閉,方法是讓這個值為-1'always_populate_raw_post_data = -1'

缺少的模組
#這裡我們通過原始碼包的方式安裝gd圖形模組,而且需要phpize的幫助
PHP gd
PHP gd PNG support
PHP gd JPEG support
PHP gd FreeType support

我們發現系統中沒有gd模組的時候,首先肯定會想著去下載,但是我們剛才說過,php的原始碼目錄是個百寶箱,我們先去原始碼目錄看看。

[root@localhost gd]# pwd
/root/php-5.6.30/ext/gd

在原始碼目錄下確實有這個gd的原始碼,但是檢視後發現沒有configure檔案。這怎麼安裝?

[[email protected] gd]# ls
config.m4   CREDITS  gdcache.c  gd_compat.c  gd_ctx.c  libgd     tests
config.w32  gd.c     gdcache.h  gd_compat.h  gd.dsp    php_gd.h

現在phpize就有用處了,他就是專門來為php的模組生成環境的。

[[email protected] gd]# phpize 
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
[[email protected] gd]# ls
acinclude.m4    config.h.in   config.w32  gd_compat.c  libgd            php_gd.h
aclocal.m4      config.m4     CREDITS     gd_compat.h  ltmain.sh        run-tests.php
autom4te.cache  config.sub    gd.c        gd_ctx.c     Makefile.global  tests
build           configure     gdcache.c   gd.dsp       missing
config.guess    configure.in  gdcache.h   install-sh   mkinstalldirs

現在有了conifgure檔案,就可以進行安裝了。

 ./configure --with-php-config=/usr/local/php56/bin/php-config --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd

但在這前提要先安裝好系統的jpeg,png等庫。使用yum命令安裝即可。

[root@localhost gd]# yum install libjpeg-devel -y
[root@localhost gd]# yum install libpng-devel -y
[root@localhost gd]# yum install freetype-devel.x86_64 -y

configure成功後執行make && make install 即可。

[root@localhost gd]# make install
Installing shared extensions:     /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/
Installing header files:           /usr/local/php56/include/php/

在make install最後看到上面的提示,可以確定我們的gd庫安裝在了/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/目錄下。

重啟php-fpm,看下gd庫是否安裝成功。

[root@localhost etc]# php -m | grep gd

發現gd庫並沒有安裝,所以需要在php.ini檔案中新增模組所在路徑。

extension_dir = "/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/"
extension=gd.so

修改之後重啟php。
再檢視一下模組是否已經載入成功。

[root@localhost etc]# php -m | grep gd
gd

經過以上的配置你的lnmp環境就可以適合zabbix的部署了。

三. zabbix的安裝

zabbix3.2我們使用的是官網上rpm包進行安裝,官網上有很詳盡的文件
zabbix3.2官方文件
官方rpm包下載地址
上面有很多rpm包可以去下載,但是並不是所有都要下載,最後我們選擇下載的包如下所示。

[[email protected] zabbix3]# ls | grep zabbix
zabbix-agent-3.2.0-1.el6.x86_64.rpm
zabbix-release-3.2-1.el6.noarch.rpm
zabbix-server-mysql-3.2.0-1.el6.x86_64.rpm
zabbix-web-3.2.0-1.el6.noarch.rpm
zabbix-web-mysql-3.2.0-1.el6.noarch.rpm

依賴包如下:

[[email protected] zabbix3]# ls | grep -v zabbix
fping-2.4b2-16.el6.x86_64.rpm
iksemel-1.4-2.el6.x86_64.rpm

安裝過程很簡單,只要yum就可以了,但是安裝好後,我們還要生成zabbix的資料庫,也就是說需要一個sql檔案,用原始碼包安裝過的同學一定使用過,但在rpm包中很難找到,最後通過rpm命令才發現

[[email protected] zabbix3]# rpm -ql zabbix-server-mysql| grep sql
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-3.2.0
/usr/share/doc/zabbix-server-mysql-3.2.0/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.2.0/COPYING
/usr/share/doc/zabbix-server-mysql-3.2.0/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.2.0/NEWS
/usr/share/doc/zabbix-server-mysql-3.2.0/README
/usr/share/doc/zabbix-server-mysql-3.2.0/create.sql.gz

最後一個gz結尾的檔案就是我們需要的資料庫備份檔案。
通過mysql命令直接匯入就安裝好了zabbix的資料庫。

相關推薦

筆記41 zabbix3.2監控搭建(rhel6.5+nginx0.7+mysql5.7+php5.6+rpm安裝zabbix3.2詳細過程)

系統拓撲: zabbix伺服器環境: 系統版本:Red Hat Enterprise Linux Server release 6.5 (Santiago) nginx版本: nginx-0.7.69 mysql版本:mysql Ver 14.14

筆記40 Linux系統監控之Cacti(Cacti搭建,自動抓取cacti統計圖片指令碼)

概述:監控系統在一個系統中十分重要,它會將很多重要的資訊,諸如記憶體資訊,cpu資訊,硬碟資訊集合在一起顯示出來,當系統出現問題的時候我們能及時定位並修復錯誤。今天介紹的監控系統是一款輕量級的監控系統Cacti,並附有python編寫的cacti統計圖片採集指令

開發實踐:基於Sentry搭建錯誤日誌監控系統

錯誤日誌監控也可稱為業務邏輯監控, 旨在對業務系統執行過程中產生的錯誤日誌進行收集歸納和監控告警。似乎有那麼點曾相識?沒錯… 就是上一篇文章提到的“APM應用效能監控”。但它又與APM不同,APM系統主要注重應用層的行為分析,收集的更多是運營方向的資料。而sentry所做的是收集應用底層程式碼的崩潰

筆記21 (郵件伺服器的搭建

概述: 雖然即時通訊工具諸如qq,微信之類的工具已經是大家和朋友溝通的首選了,但是在一些情況下,我們一定會使用到電子郵件這個東西,基本上國內大一點的網際網路公司都有電子郵件的服務,我們使用電子郵件的時候感覺非常便利,只用編輯標題,發件人,內容之後點擊發送,郵件就被送到了目的

菜鳥筆記安裝與配置Apacheserver

str .cn apach tps 官網 壓縮 ron entos 本地 前幾天在在阿裏花了49.5買了一個月的主機。試著好用再續費吧。 地域:青島可用區:青島可用區ACPU:1核內存:512MB帶寬:1Mbps操作系統:CentOS 6.5 64位雲盾:是

老男孩Linux41期20170910開班第三周學習重點記錄

學習重點記錄一、補充一些find命令的方法:第13題 把/oldboy目錄及其子目錄下所有以擴展名.sh結尾的文件中,文件包含oldboy的字符串全部替換為oldgirl解答:方法1:find + |xargs [[email protected] ~]# find /oldboy/ -type f

老男孩Linux41期20170917開班第四周學習重點課堂記錄

linux運維 學習重點 課堂記錄第1章 必知必會文件配置文件位置該文件作用/etc/sysconfig/network-scripts/ifcfg-eth0第一塊網卡的配置文件 同setup中的network/etc/resolv.conf客戶端DNS配置文件,優先級低於網卡配置文件/etc/hosts主要

Linux筆記(一)網絡基礎知識

使用 可靠 height image inter 電話線 ppp協議 網址 esp 網絡基礎知識 一、基本概念 1.ARPANET & TCP/IP:以“軟件”技術將網絡硬件整合,使得不同的計算機或者數據可以通過這個軟件達成數據溝通(TCP/IP技術也被稱為Inte

CSS樣式表概述---筆記

相同 內容 因此 id選擇器 對象 內部 直接 css 註意事項 CSS是一種標記語言,因此不需要編譯,可以由瀏覽器直接執行。 樣式表分為內部樣式表與外部樣式表,由樣式規則組成,一個樣式的基本語法包括三部分:選擇器,屬性,屬性值。 選擇器:表示修飾對象,包括標簽選擇器,類選

計算機過程---筆記

命令 風扇 行存儲 部件 電源 操作 dram 運維筆記 用戶輸入 1.加電––––打開電源開關,給主板和內部風扇供電。 2.啟動引導程序––––CPU開始執行存儲在ROM BIOS中的指令。 3.開機自檢––––計算機對系統的主要部件進行診斷測試。 4.加載操作系統–––

[筆記] Mysql單庫備份腳本

ash bin nbsp mysqldump zab date user tran 127.0.0.1 工作中用到的Mysql單庫備份Shell腳本,壓縮備份,並在Crontab中添加計劃任務,最多保存60天的備份 #!/bin/bash . /etc/prof

計算機網絡概述---筆記

階段 負載 分組 提高 能力 並行 配置 運維 融合 1.什麽是計算機網絡:計算機網絡將來兩臺或多臺計算機通過通信設備和線路將計算機連接在一起,並配置相應的系統和應用軟件,實現軟硬件資源共享和信息傳遞。 2.計算機網絡功能:數據通信:利用網絡來傳輸各種信息和數據。資源共享:

AD活動目錄概述--筆記

屬性 連續 名稱空間 工作環境 安全 針對 子網 配置 計算機 1.活動目錄的基本概念(1)域和域控制器:域是活動目錄的一種實現形式,也是活動目錄最核心的管理單位。(2)名稱空間:一個區域的名字(3)對象和屬性:對象代表的是具體事務,屬性是用來描述對象的數據。(4)容器:存

綜合布線設計---筆記

實施 辦公 垂直 運維 偏差 水平 模塊 線纜 信息 布線實施: (1)墻壁打孔(孔的直徑,美觀) (2)線槽安裝(水平2mm垂直3mm偏差2mm距地30cm固定點2-3個螺釘,線槽蓋板緊) (3)布設線纜(線纜占用空間不超盒70%) (4)端接線纜:(將配線間的線纜端接到

組策略應用----筆記

容器 篩選 默認 所有 鏈接 包括 今天 gpo 規則 今天學習了組策略應用。大致分為三個部分:組策略簡介,創建組策略,組策略的應用規則。 組策略是位於控制面板與註冊表之間的用於修改程序和系統配置的一種機制。它可以有效避免單機配置的失誤,對特定用戶制定特定策略,集中配置策略

計算機配置與組策略配置的區別---筆記

軟件設置 區別 計算機配置 範圍 域用戶 運維 策略 windows 指正 組策略配置計算機和用戶的不同點在其應用範圍。 若組策略對計算機進行了配置,則受配置計算機的軟件設置,Windows 設置,管理分配等都直接受組策略影響。若組策略對用戶進行了配置,則只有計算機用用戶賬

操作主機---筆記

最小化 屬性。 命名 名稱 添加 其他 變化 序列號 對象 今天學習了操作主機,操作主機主要負責多主復制結構的活動目錄所不能操作的更改。 操作主機分為架構主機,域命名主機,RID主機,PDC仿真主機和基礎結構主機。 架構主機負責域林內的對象和屬性。 域命名住居負責域的添加刪

AD常見故障排查---筆記

AD常見故障排查---運維筆記 在維護AD的時候會經常出現一些故障,良好的問題解決方法,可以在盡可能短時間內解決問題。 一·常見故障類型 (1)域連接失敗:加入域時,提示找不到域。 (2)域無法登陸:登錄時密碼不正確或登錄後訪問不了共享資源。 (3)域登錄緩慢:登錄時非常緩慢 。 (4)組策略部署失敗:組策略

部署DHCP服務--筆記

部署DHCP服務--運維筆記一·DHCP概述 (1)Internet小組專門用於TCP/IP網絡中的為計算機自動分配IP地址的TCP/IP參數協議。(2)dhcp的好處減少管理員的工作量,避免輸入錯誤的可能,避免IP地址沖突,提高了IP的利用率,方便客戶端配置。 二·DHCP工作原理 (1)DHCP工作方式:

部署DNS 服務---筆記

部署DNS 服務---運維筆記DNS是一組協議和服務,它允許用戶在查找網絡資源時使用層次化的對用戶有友好的名稱取代IP地址。 一·DNS的組成 (1)組成DNS的核心是DNS服務器,它保存了主機名和相應IP地址的數據庫。 (2)域命名結構是一種看起來和磁盤文件系統的目錄結構類似的結構方案。包含了根域,頂級域,