Zabbix監控部署方案php
目的:java
搭建數據中心監控環境mysql
初始化系統自動話腳本init.shweb
LAMP環境部署sql
安裝編譯環境,使用一鍵安裝腳本安裝lamp或lnmpshell
#注:腳本使用時要注意軟件連接是否失效,以避免安裝失敗。數據庫
Lamp安全與優化:apache
1.配置disable_function 禁用一些函數vim
disable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_closeapi
2.Mysql配置
開啓每表表空間
登陸:
#/usr/local/mysql/bin/mysql -S /data/mysql/mysql.sock
mysql>use mysql;
mysql> update user set password=password('123456') where user = 'root';
mysql> flush privileges;
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/mysql.sock
Zabbix下載地址:
wget http://ncu.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.4/zabbix-3.0.4.tar.gz
建立、導入zabbix數據庫
mysql> create database zabbix character set utf8;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; #建立zabbix用戶
flush privileges; #再次刷新系統受權表
use zabbix #進入數據庫
select database();#查看當前數據庫
source /usr/local/src/zabbix-3.0.4/database/mysql/schema.sql #導入腳本文件到zabbix數據庫
source /usr/local/src/zabbix-3.0.4/database/mysql/p_w_picpaths.sql #導入腳本文件到zabbix數據庫
source /usr/local/src/zabbix-3.0.4/database/mysql/data.sql #導入腳本文件到zabbix數據庫
注意:請按照以上順序進行導入,不然會出錯。
安裝zabbix
一、添加用戶:
因爲安全zabbix只能使用普通用戶運行
groupadd zabbix #建立用戶組zabbix
useradd -M zabbix -s /sbin/nologin
useradd zabbix -g zabbix -s /bin/false #建立用戶zabbix,而且把用戶zabbix加入到用戶組zabbix中
cd /usr/local/src/zabbix-3.0.4/ #進入安裝目錄
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-net-snmp --with-libcurl --enable-proxy --with-mysql=/usr/bin/mysql_config
--enable-java #支持jmx監控java類進程
make #編譯
make install #安裝
說明:find / -name mysql_config 查找位置,若是沒有mysql_config,須要安裝yum install mysql-devel
修改zabbix配置文件
cd /usr/local/zabbix/etc
vi etc/zabbix_server.conf
DBName=zabbix #數據庫名稱
DBUser=zabbix #數據庫用戶名
DBPassword=123456 #數據庫密碼
ListenIP=127.0.0.1 #數據庫ip地址
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #zabbix運行腳本存放目錄
:wq! #保存退出
vi /home/sxit/zabbix/etc/zabbix_agentd.conf
Include=/home/sxit/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1 #啓用自定義key
:wq! #保存退出
六、添加開機啓動腳本
cp /usr/local/src/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server #服務端
cp /usr/local/src/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd #客戶端
chmod +x /etc/init.d/zabbix_server #添加腳本執行權限
chmod +x /etc/init.d/zabbix_agentd #添加腳本執行權限
chkconfig zabbix_server on #添加開機啓動
chkconfig zabbix_agentd on #添加開機啓動
修改zabbix開機啓動腳本中的zabbix安裝目錄
vi /etc/rc.d/init.d/zabbix_server #編輯服務端配置文件
BASEDIR=/home/sxit/zabbix/ #zabbix安裝目錄
:wq! #保存退出
vi /etc/init.d/zabbix_agentd #編輯客戶端配置文件
BASEDIR=/home/sxit/zabbix/ #zabbix安裝目錄
:wq! #保存退出
3、配置web站點
cd /home/sxit/zabbix-3.0.3
cp -r /usr/local/src/zabbix-3.0.4/frontends/php /usr/local/apache/htdoc/zabbix
chown daemon.daemon -R /usr/local/apache/htdoc/zabbix
備註:/home/sxit/apache/htdoc/爲apache默認站點目錄 daemon爲apache運行帳戶
service zabbix_server start #啓動zabbix服務端
service zabbix_agentd start #啓動zabbix客戶端
4、修改php配置文件參數
一、vi /etc/php.ini #編輯修改
post_max_size =16M
max_execution_time =300
max_input_time =300
:wq! #保存退出
PHP databases supportoffFail
php databases support off fail 經查詢是缺乏mysqli
安裝mysqli
須要在php源碼中編譯出模塊而後加載
/usr/local/php/bin/phpize
./configure --prefix=/usr/local/php/mysqli \
--with-php-config=/usr/local/php/bin/php-config \
--with-mysqli=/usr/bin/mysql_config
Make &&make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
Installing header files: /usr/local/php/include/php/
編輯php.ini
#vi etc/php.ini
在最末尾添加一行:
extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/mysqli.so
重啓http服務
注:此處可能回報:/usr/local/src/php-5.6.6/ext/mysqli/mysqli_api.c:36:47: error: ext/mysqlnd/mysql_float_to_double.h: No such file or directory
直接修改:mysqli/mysqli_api.c 文件第36行路徑爲絕對路徑
include "/usr/local/src/php-5.6.6/ext/mysqlnd/mysql_float_to_double.h"
PHP gettextoffWarning
手動編譯安裝gettext模塊
cd /usr/local/src/php-5.6.6/ext/gettext
# /usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config
#make && make install
安裝以後會生成一個相似於這樣的信息提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
編輯php.ini
#vi etc/php.ini
在最末尾添加一行:
extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/gettext.so
重啓http服務
問題:
Zabbix server is runningNo10.0.8.153:10051
Zabbix server is not running:the information displayed may not be current
一、php.ini文件中查找 allow_url_fopen = On;
讓你的php支持 opensll擴展
/usr/local/php/bin/phpize
./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
在最末尾添加一行:
extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/openssl.so
二、開啓fsockopen函數就能夠了
disable_function 去掉pfsockopen
5、安裝web
在瀏覽器中打開:
http://10.0.8.153/zabbix/setup.php
登陸:
默認用戶名:Admin
密碼:zabbix
zabbix agent安裝:
./configure --prefix=/usr/local/zabbix_agent --enable-agent
make && make install
cp /usr/local/src/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd #客戶端
chmod +x /etc/init.d/zabbix_agentd
chkconfig zabbix_agentd on
修改安裝目錄:vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix_agent/
zabbix客戶端配置
配置zabbix_server配置文件,zabbix源碼目錄下
# vim /usr/local/zabbix_agent/etc/zabbix_agentd.conf
Server=127.0.0.1(注意,客戶機上面這個須要修改成監控機的IP地址)
ServerActive=127.0.0.1(注意,客戶機上面這個須要修改成監控機的IP地址)
Hostname=Zabbix server(這裏的名字須要和監控機上面配置的一致)
其中Server和ServerActive都指定zabbixserver的IP地址,不一樣的是,前者是被動後者是主動。也就是說Server這個配置是用來容許127.0.0.1這個ip來我這取數據。而serverActive的127.0.0.1的意思是,客戶端主動提交數據給他。明白了嗎?爲何要分主動和被動?後續再來討論這個問題!
zabbix agent檢測分爲主動(agent active)和被動(agent)兩種形式,主動與被動的說法均是相對於agent來討論的。簡單說明一下主動與被動的區別以下:
主動:agent請求server獲取主動的監控項列表,並主動將監控項內須要檢測的數據提交給server/proxy
被動:server向agent請求獲取監控項的數據,agent返回數據。
主動配置:監控客戶端主動發送數據
Server 192.168.18.223 監控端ip(服務器端)
ServerActive 192.168.18.223:10051 監控端ip:端口
Hostname=Zabbix server(這裏的名字須要和監控機上面配置的一致)
被動配置:監控服務器主動收集數據
Server 192.168.18.223 監控端ip(服務器端)
ServerActive 192.168.18.22x:10050 被監控端ip:端口
Hostname=192.168.18.22x(這裏的名字須要和監控機上面配置的一致)
測試,下面的命令須要在server端執行,其中10.0.8.152是agent的ip
#/usr/local/zabbix/bin/zabbix_get -s 10.0.8.152 -p10050 -k "system.host"
11163875
#/usr/local/zabbix/bin/zabbix_get -s 10.0.8.152 -p10050 -k "system.hostname"
HOSTNAME