基本思路:php
服務器端(虛擬機1):安裝 zabbix-server zabbix_get mysql5.7.9html
客戶端(虛擬機2):安裝zabbix-agent nginx1.8.0 mysql
服務器和客戶端都是使用redhat6.5搭建的linux
--------------------------------------------------------------------------------------------------nginx
實驗環境:必須能上網,由於要yum和編譯安裝一些必要的組件c++
由於是實驗環境,因此防火牆iptables,selinux 必定要關閉!!web
服務器端和客戶端的防火牆iptables,selinux 都要關閉!sql
重要的事情說三遍!! 若是你是大神,能夠此條能夠忽略。shell
[root@server ~]# iptables -F數據庫
[root@server ~]# chkconfig iptables off # 開機就關閉iptables
[root@server ~]# setenforce 0
setenforce: SELinux is disabled
[root@server ~]# vim /etc/selinux/config
將SELINUX=enforcing 改成 SELINUX=disabled
服務器端和客戶端的防火牆iptables,selinux 都要關閉!
炮製雖繁必不敢省人工,品味雖貴必不敢減物力
----------------------------------------------------------------------------------------------------------------
服務器端的搭建(虛擬機1)
1.配置 epel,163,Zabbix三個網絡yum源:
[root@server ~]#rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [root@server ~]# wget -O /etc/yum.repos.d/CentOS6-Base-163.repo #到這以前都有添加進去,後面網址也要輸入進去 [root@server ~]#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 注意:1.若是你沒有wget命令,用epel源 yum install wget就能夠下載163的repo了。 2.[root@server yum.repos.d]# pwd /etc/yum.repos.d [root@server yum.repos.d]# ls CentOS6-Base-163.repo epel.repo epel-testing.repo local.repo zabbix.repo CentOS6-Base-163.repo 這個文件最好編輯一下,將$releasever改爲6.緣由是在redhat6.5上 $releasever 這個變量獲得的值是6server 明星在下找不到這個文件夾 baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
2.安裝必要的包,若是少安裝一個,那就等着排錯吧 (yum安裝完成後,下面會有說明,若是那個包沒安裝成功,會報錯,注意看一下,報錯後,從新安裝,不行的話,換個yum源)
[root@server yum.repos.d]# yum -y groupinstall "Development Tools" [root@server yum.repos.d]#
3.建立zabbix 用戶 (目的:所謂專人專用,防止出現越權行爲)
[root@server yum.repos.d]#
4.在mysql中創建zabbix數據庫和zabbix用戶
初始化mysql5.7.9 ,本身百度喲或者看官方文檔,而後啓動mysql [root@server yum.repos.d]# service mysqld start
mysql -uroot -p123456 #這是個人數據庫密碼:123456,不是你的!!!
5. 安裝zabbix服務器端並將相關數據導入MySQL數據庫中
[root@server yum.repos.d]# yum install zabbix-server-mysql zabbix-web-mysql zabbix_get zabbix-agent root@server yum.repos.d]# cd /usr/share/doc/zabbix-server-mysql-2.4.7/create
[root@server create]# mysql -uroot -p123456 zabbix < schema.sql
[root@server create]# mysql -uroot -p123456 zabbix < images.sql
[root@server create]# mysql -uroot -p123456 zabbix < data.sql
這三個導入的順序不要顛倒!!否則報錯
[root@server create]# mysql -uroot -p123456 mysql> use mysql mysql> delete from user where host='localhost'; mysql> commit; mysql> exit
6.修改zabbix配置文件中關於數據庫的部分
[root@server create]# vim /etc/zabbix/zabbix_server.conf 你須要在zabbix_server.conf裏面找到下面幾項,而且修改爲我這樣的記得去掉它們前面的#號,否則會被註釋掉 ,不起做用的。
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix
7.啓動zabbix-server服務和httpd服務
[root@server create]# cd ~ [root@server ~]# service zabbix-server start [root@server ~]# service httpd restart [root@server ~]# chkconfig httpd on #一開機就啓動httpd服務 [root@server ~]# chkconfig zabbix-server on #同上
8.啓動web界面,繼續編輯(不建議使用360安全瀏覽器,會出問題,其餘瀏覽器應該均可以)
1. 用ie瀏覽器訪問http://ip/zabbix/ #這裏的IP是你服務器配置的IP,例如個人服務器IP是
2.172.16.20.23.我就要在瀏覽器裏輸入http://172.16.20.23/zabbix .
3.英文看不懂不要緊,下一步,下一步,總認識吧
9.哈哈出下面的問題了吧
解決方法:修改時區 vim /etc/php.ini
找到date.timezone=Asia/Shanghai #記得將date.timezone前面的#去掉!!
而後必定要重啓httpd 服務:service httpd restart
不重啓服務,修改是不會生效的。
安裝配置客戶端 (虛擬機2)
炮製雖繁必不敢省人工,品味雖貴必不敢減物力
1.配置 epel,163,Zabbix三個網絡yum源:
[root@server ~]#rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [root@server ~]# wget -O /etc/yum.repos.d/CentOS6-Base-163.repo #到這以前都有添加進去,後面網址也要輸入進去 [root@server ~]#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm 注意:1.若是你沒有wget命令,用epel源 yum install wget就能夠下載163的repo了。 2.[root@server yum.repos.d]# pwd /etc/yum.repos.d [root@server yum.repos.d]# ls CentOS6-Base-163.repo epel.repo epel-testing.repo local.repo zabbix.repo CentOS6-Base-163.repo 這個文件最好編輯一下,將$releasever改爲6.緣由是在redhat6.5上 $releasever 這個變量獲得的值是6server 明星在下找不到這個文件夾 baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
2.安裝必要的包,和安裝zabbix-agent客戶端
[root@server yum.repos.d]# yum -y groupinstall "Development Tools" [root@server yum.repos.d]#
3.修改agent的配置文件
[root@agent ~]# vi /etc/zabbix/zabbix_agentd.conf 找到#Server= 將它改爲 Server=ip #服務器的IP(虛擬機1的IP) 記得將ServerActive=127.0.0.1 註釋掉!!!也就是變成###ServerActive=127.0.0.1
4.啓動zabbix-agent服務
[root@agent ~]#service zabbix-agent start
5.編譯安裝nginx-1.8.0
5.1搭建編譯環境
[root@agent ~]#yum -y install gcc gcc-c++ autoconf automake make [root@agent ~]#
5.2下載nginx-1.8.0 ,並解壓
[root@agent ~]#yum install wget [root@agent ~]#wget #網址也要輸入, [root@agent ~]#tar -zxvf nginx-1.8.0.tar.gz [root@agent ~]# cd nginx-1.8.0 [root@agent nginx-1.8.0]# ./configure –-with-http_stub_status_module #模塊不默認安裝,一點要安裝這個模塊 [root@agent nginx-1.8.0]# make && make install [root@agent nginx-1.8.0]# cd ../ [root@agent ~]#
5.3 啓動nginx,觀察現象
[root@agent ~]# /usr/local/nginx/sbin/nginx
nginx啓動正常啓動後,在瀏覽器中輸出http://本機IP/ 會出現以下畫面
5.4 設置開機啓動nginx,若是高版本的nginx支持chkconfig nginx on
(或者 chkconfig nginx on )更好了,下面的腳本能夠忽略。(能夠先試試這個兩個命令可否讓nginx開機啓動)
[root@agent ~]# vim /etc/init.d/nginx
添加以下代碼
5.6 修改訪問權限
[root@agent ~]#chmod a+x /etc/init.d/nginx #a+x參數表示 ==> all user can execute 全部用戶可執行 [root@agent ~]#echo /etc/init.d/nginx start >> /etc/rc.local #利用重定向將/etc/init.d/nginx start 追加到 /etc/rc.local 文件的末尾處
5.7 開啓nginx的stub_status模塊
查看已安裝的 Nginx 是否包含 stub_status 模塊
[root@agent ~]# vim /usr/local/nginx/conf/nginx.conf
server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location /{root html;index index.html index.htm;}location ~ /status #紅字爲修改部分{stub_status on;access_log off;#加入訪問限制allow IP; #IP=服務器的IP,虛擬機1的IPallow 127.0.0.1;deny all;}}
重啓nginx
service nginx restart
nginx status信息
[root@agent ~]# curl http://127.0.0.1/ngx_status
Active connections: 10
server accepts handled requests
9 9 8
Reading: 0 Writing: 0 Waiting: 0
5.8 zabbix客戶端配置status
/usr/bin/status.sh
#!/bin/bash
# Functions to return nginx stats
function active {
/usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| grep 'Active' | awk '{print $NF}' }
function reading {
/usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| grep 'Reading' | awk '{print $2}' }
function writing {
/usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| grep 'Writing' | awk '{print $4}'}
function waiting {
/usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| grep 'Waiting' | awk '{print $6}' }
function accepts {
/usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| awk NR==3 | awk '{print $1}' }
function handled {
/usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| awk NR==3 | awk '{print $2}'}
function requests {
/usr/bin/curl "http://127.0.0.1:80/status" 2>/dev/null| awk NR==3 | awk '{print $3}' }# Run the requested function
$1
EOF
5.9 修改權限
位置:cd /usr/bin/
修改status.sh 的權限 和屬主:屬組
chmod o+x status.sh
chown zabbix.zabbix status.sh
[root@nginx bin]# ls -ll |grep status.sh
-rwxr-xr-x 1 zabbix zabbix 1225 Jan 22 08:13 status.sh
5.10
修改nginx服務器上zabbix客戶端的zabbix_agentd.conf配置文件,而後重啓zabbix agentd客戶端。
vim /etc/zabbix/zabbix_agentd.conf 而後修改和下面同樣 LogFile=/tmp/zabbix_agentd.log Server=IP #zabbix server端的IP地址 ServerActive=IP #zabbix server端的IP地址 Hostname=IP2 #本地的IP地址 UnsafeUserParameters=1 ##下面的是新添加進去的key(鍵值) UserParameter=nginx.accepts, /usr/bin/status.sh accepts UserParameter=nginx.handled, /usr/bin/status.sh handled UserParameter=nginx.requests, /usr/bin/status.sh requests UserParameter=nginx.connections.active, /usr/bin/status.sh active UserParameter=nginx.connections.reading, /usr/bin/status.sh reading UserParameter=nginx.connections.writing, /usr/bin/status.sh writing UserParameter=nginx.connections.waiting,/usr/bin/status.sh waiting
http://my.oschina.net/u/2618987/blog/608262