LNMP+Zabbix的安裝與部署
一、Zabbix簡介
1、zabbix是一個基於WEB界面的,並提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。 zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供柔軟的通知機制以讓運維人員能夠快速定位。
2、zabbix通過C/S模型來收集數據,通過B/S模型模式在web端展示和進行配置。
被監控端:主機設備通過安裝agent收集數據並發送給server端,網絡設備通過SNMP收集數據並發送給server端。
server端:通過收集SNMP和agent發送來的數據,將數據寫入到后台數據庫中(例如:mysql,oracle),在通過web展示出來。
3、運行環境
zabbix server 需要運行在LAMP或者是LNMP的環境下;
agent可以部署在目前常見的OS中,例如linux,windows,HPUX,Solaris,Sun;
SNMP可以支持常見的網絡設備。
官方給出了zabbix根據不同環境與平台所需要的硬件需求:
二、Zabbix 的部署准備
1、LNMP環境准備與配置
LNMP編譯安裝詳細步驟博客鏈接:http://www.cnblogs.com/liuyansheng/p/6065296.html
安裝好lnmp后,編輯PHP相關的 /etc/php.ini 文件。(這里必須做響應的修改,否則在之后的web初始化過程中會報錯。)
vim /etc/php.ini
修改如下條目或者通過 sed 命令進行內容替換 date.timezone = Asia/Shanghai max_execution_time = 300 post_max_size = 16M ###有時候這里會被設置成32M,但是這里根據后面初始化提示中的信息,被要求設置成16M max_input_time=300 memory_limit = 128M mbstring.func_overload = 2
或通過 sed 方式進行內容替換:
#sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/g" /etc/php.ini #sed -i "s#max_execution_time = 30#max_execution_time = 300#g" /etc/php.ini #sed -i "s#post_max_size = 8M#post_max_size = 32M#g" /etc/php.ini #sed -i "s#max_input_time = 60#max_input_time = 300#g" /etc/php.ini #sed -i "s#memory_limit = 128M#memory_limit = 128M#g" /etc/php.ini #sed -i "/;mbstring.func_overload = 0/ambstring.func_overload = 2\n" /etc/php.ini
2、MySQL數據庫的准備
添加mysql數據庫的 zabbix用戶,並設置密碼:
先用root身份登入mysql中,並執行以下命令
mysql>use mysql mysql>insert into mysql.user(Host,User,Password) values("localhost","zabbix",password("zabbix")); mysql>flush privileges
3、為centos系統創建zabbix用戶
#groupadd zabbix -g 501 #useradd -g zabbix -u 501 -m zabbix
PS:這里將zabbix用戶的UID與GID均設置為501。
三、Zabbix Server的安裝
1、zabbix源文件的下載 https://fossies.org/linux/misc/zabbix-3.2.1.tar.gz/
關於zabbix的最新版本源文件可以訪問其官方網站並下載,地址為:http://www.zabbix.com/download.php
2、zabbix的解壓縮與編譯安裝
#tar xvf zabbix-2.x.x.tar.gz #./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/localmysql/bin/mysql_config --with-net-snmp --with-libcurl #make #make install
PS:第一行shell語句的“2.x.x”代表所下載的zabbix源文件的版本號。
3、檢查zabbix是否被添加進入系統服務文件中
tail -n4 /etc/services
如果看到如下信息則代表已經添加成功,或者可以自行手動查詢一下/etc/services 文件,真沒有手動添加到 /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 Trappe
4、建立zabbix所需的數據庫
root身份等人到mysql數據庫中,並執行以下命令建立zabbix數據庫:
mysql>create database zabbix character set utf8; mysql>grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; mysql>flush privileges;
而后在下載的源文件中存在一個database/mysql 子目錄,中間存放在建立zabbix數據庫結構的SQL腳本文件。先進入到zabbix源文件所在的目錄,並執行以下語句:
要按照下面順序導入:
#mysql -u zabbix -p zabbix < ./database/mysql/schema.sql #mysql -u zabbix -p zabbix < ./database/mysql/images.sql #mysql -u zabbix -p zabbix < ./database/mysql/data.sql
PS:以上三條指令將目的執行sql腳本,構建zabbix數據庫的結構,每次都要輸入mysql中zabbix賬戶的密碼
5、創建zabbix的的日志文件和連接
#mkdir /var/log/zabbix #chown zabbix.zabbix /var/log/zabbix #ln -s /usr/local/zabbix/etc /etc/zabbix #ln -s /usr/local/zabbix/bin/* /usr/bin/ #ln -s /usr/local/zabbix/sbin/* /usr/sbin/
6、拷貝與配置zabbix啟動文件
#cp misc/init.d/fedora/core/zabbix_* /etc/init.d/ #chmod 755 /etc/init.d/zabbix_* #sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_server #sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd
7、配置zabbix_server.conf服務端文件
編輯並修改 /etc/zabbix/etc/zabbix_server.conf 文件,並修改如下條目:
DBName=zabbix 數據庫名稱
DBUser=zabbix 數據庫用戶
DBPassword=zabbix 數據庫密碼(這里為了演示,先前設置了zabbix數據庫密碼為zabbix)
tmp/zabbix_server.log 改 var/log/zabbix/zabbix_server.log #更改日志路徑
或者用 sed 方式替換文件內容:
#sed -i "s/DBUser\=root/DBUser\=zabbix/g" /etc/zabbix/etc/zabbix_server.conf #sed -i "/# DBPassword=/aDBPassword=zabbix\n" /etc/zabbix/etc/zabbix_server.conf #sed-i "s#tmp/zabbix_server.log#var/log/zabbix/zabbix_server.log#g" /etc/zabbix/etc/zabbix_server.conf
8、配置 zabbix_agentd.conf 文件 (這里是為了監控 server 本身, 如對其他服務器進行監控,配置文件相類似)
PS:這里要住的的是zabbix_agentd.conf是客戶端配置文件,這里是為了演示,因此這里配置這個文件的目的就是為了能夠實現對本地服務器的監控。該文件需要修改如下四個條目:
Server=127.0.0.1 此處添加服務端的 ip,如服務器不為本機,則需要填寫遠端 zabbix_server 的 ip 地址
ServerActive=127.0.0.1 此處修改為服務端的 ip,這里應該修改為該服務器對外的ip地址
/tmp/zabbix_agentd.log 修改日志路徑
UnsafeUserParameters=0 默認是不啟用自定義腳本功能的,要自定義 key ,需開啟,設置為1
Include=/etc/zabbix/zabbix_agentd.conf.d/ 自定義的 agent d 配置文件可以寫在這個目錄下面
利用sed 方式內容替換的執行命令如下:
#sed -i "s/Server\=127.0.0.1/Server\=127.0.0.1,192.168.1.89/g" /etc/zabbix/etc/zabbix_agent.conf #sed -i "s/ServerActive\=127.0.0.1/ServerActive\=192.168.1.89:10051/g" /etc/zabbix/etc/zabbix_agent.conf #sed -i "s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g" /etc/zabbix/etc/zabbix_agentd.conf #sed -i "#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /etc/zabbix//etc/zabbix_agentd.conf
9、拷貝php網頁文件到nginx中
#cp -r ./frontends/php/ /usr/local/nginx/html/zabbix
10、修改nginx.conf配置文件
server{
service_name xxx.xxx.xxx
index index.html index.htm index.php
root /usr/local/nginx/html/zabbix;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
改為:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
要是搭建的不是nginx,是 Apache如下:
#cp -r ./frontends/php/ /var/www/html/zabbix
#chown -R apache.apache /var/www/html/zabbix
11、開啟zabbix
#/etc/init.d/zabbix_server start
#/etc/init.d/zabbix_agent start
至此,zabbix的安裝完成。
四、通過Web設置zabbix
瀏覽器中輸入地址:http://ip/zabbix,則可看到如下初始化歡迎界面。
PS:其中ip代表本地服務器對外開放的ip地址
1、出現如下錯誤是說缺少.php文件
點擊下載, Download the configuration file
下載到本地后上傳到/usr/local/nginx/html/zabbix/conf目錄下。
2、如果出現一下錯誤:
解決:修改CFrontendSetup.php文件
1、vi /usr/local/nginx/html/zabbix/include/classes/setup/CFrontendSetup.php
$current=-1;
/**$current=ini_get('always_populate_raw_post_data');**/
2、修改php.ini文件
vi /usr/local/php/etc/php.ini
;mbstring.func_overload = 2
之后reload php和nginx
再次訪問瀏覽器:http://ip/zabbix.php
檢測zabbix各類需求通過之后即可點擊Next按鈕,如下:
根據所要填寫的需求填寫,輸入zabbix的密碼,這里使用的密碼是zabbix,然后點擊Test connection測試連接,顯示綠色的“OK”代表數據庫連接測試成功,即可點擊Next,如下:
預覽配置信息,確認無誤點擊Next按鈕,如下:
創建成功后顯示綠色的“OK“,點擊Finish按鈕后進入zabbix的管理操作登陸界面:
PS:這里初始的賬號名為:admin,初始密碼為:zabbix。
填寫完賬號和密碼后登陸zabbix的管理操作界面,如下:
至此,zabbix server 基本安裝結束。