以往的面向服務的架構(SOA)是企業軟件的一種主流架構,不但會想到Alibaba內部的SOA服務化治理方案核心框架Dubbo。通常與分佈式的架構框架Zookeeper做到集羣部署,其中Zookepper作爲服務的註冊中心(還有Redis註冊中心等)用來註冊服務和進行負載均衡;還有近來談論比較多的微服務。
在我們實際項目中主要採用REST架構樣式的微服務,Restful+微服務架構,這樣的分佈式集羣部署。這樣以來對於項目的部署和運維帶來不少的工作。更重要的是項目的運行健康情況更是我們的關注點。因此,會考慮對這些服務實時監控運行狀態,才能是我們的系統正常的運行,保證用戶的體驗。爲此在這裏介紹下一種監控工具Zabbix。
1. 關於Zabbix
Zabbix是一個企業級開源的分佈式監控解決方案,用來監控、跟蹤性能、網絡服務的可用性,硬件設備和其他信息資源(CPU、內存等使用率)。它支持分佈式、WEB界面可視化監控,自動發現等等,更多參考官網。
2. 安裝Zabbix
這裏僅以單機Zabbix爲例。
Zabbix Server System:
操作系統:CentOS 7 64bit server
IP Address :192.168.2.128/24
主機名:bogon
首先讓我我們從服務搭建開始。
2.1 預安裝條件
安裝Zabbix之前,我們應該初始化和配置LAMP(Linux+Apache+MySQL+PHP)環境。
在CentOS 7安裝和配置LAMP Server參考鏈接:
http://www.cnblogs.com/candle806/archive/2011/03/14/1983992.html
或http://www.linuxidc.com/Linux/2015-09/123465.htm
搭建好LAMP環境繼續。
2.2 服務端配置
Zabbix在CentOS中沒有可用的安裝源。因此我們將添加EPEL和Zabbix官方安裝源爲了安裝Zabbix服務。
安裝EPEL源,運行命令:
yum install epel-release
配置ZabbixZone 包源和GPG祕鑰,命令:
增加資源庫
rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
用“rpm -Uv”來安裝rpm包
rpm -Uv http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm
接下來,安裝Zabbix server 和 agent ,命令:
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-java-gateway
安裝完成後,編輯文件/etc/httpd/conf.d/zabbix,命令:
vi /etc/httpd/conf.d/zabbix.conf
修改時區:
php_value date.timezone Asia
重啓Apache服務,命令:
systemctl restart httpd
2.3 創建MySQL數據庫和Zabbix用戶
在命令行,登錄MySQL:
mysql -u root -p
創建數據庫名爲:zabbixdb的數據庫 和 用戶名爲:zabbixuser的用戶。
此處,用命令行形式(也可使用可視化工具):
//創建數據庫
create database zabbixdb character set utf8;
//創建用戶
grant all privileges on zabbixdb.* to 'zabbixuser'@'localhost' identified by 'password';
//刷新權限
flush privileges;
詳見:http://note.youdao.com/share/?id=03c39d3843a0b9815b92756e784fdbc2&type=note#/
2.4 初始化zabbix數據庫
讓我將下載的zabbix中的初始化sql導入到數據庫中。此處以命令行方式依次導入(可使用可視化工具):
mysql -u zabbixuser -p zabbixdb < /usr/share/doc/zabbix-server-mysql-2.4.5/create/schema.sql
mysql -u zabbixuser -p zabbixdb < /usr/share/doc/zabbix-server-mysql-2.4.5/create/images.sql
mysql -u zabbixuser -p zabbixdb < /usr/share/doc/zabbix-server-mysql-2.4.5/create/data.sql
2.5 配置Zabbix 服務
編輯文件/etc/zabbix/zabbix_server.conf,命令:
vi /etc/zabbix/zabbix_server.conf
設置你以上創建的數據庫名稱,登錄用戶和密碼。找到如下key,如果已註釋,把註釋去掉設置相應的值。
//數據庫名稱
DBName=zabbixdb
//用戶名
DBUser=zabbixuser
//用戶密碼
DBPassword=your password
保存並退出!
到此,Zabbix服務已配置好。
接下來我們配置Zabbix服務自己的監聽Agent。
爲此,編輯文件/etc/zabbix/zabbix_agentd.conf,命令:
vi /etc/zabbix/zabbix_agentd.conf
編輯如下內容:
## Line 85 - 指定 Zabbix server ##
Server=127.0.0.1
## Line 126 - 指定 Zabbix server ##
ServerActive=127.0.0.1
## Line 137 - 指定 Zabbix server Hostname or IP address(此處我選擇IP) ##
Hostname=192.168.2.128
保存退出!
2.6 調整PHP配置
我們應該調整php.ini文件,按照zabbix推薦設置參數。
編輯文件php.ini 命令:
vi /etc/php.ini
設置如下參數。如果不存在的話就添加。
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia
保存退出!
2.7 調整防火牆設置和SELinux設置
調整zabbix使用的端口號10050和10051允許防火牆訪問。
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
重啓防火牆服務使改變生效。
systemctl restart firewalld
如果你對SELinux有研究,可以做如下操作:
運行如下命令允許Apache和Zabbix能夠通訊,命令:
setsebool -P httpd_can_connect_zabbix=1
由於對SELinux安全沒有研究,沒有調通。所以這裏我直接將SELinux關閉,操作參考鏈接:http://note.youdao.com/noteshare?id=4e0a03bbe4599769afc1079298051805
2.8 使Zabbix web 在指定的IP範圍內可訪問
編輯文件/etc/httpd/conf.d/zabbix.conf,命令:
vi /etc/httpd/conf.d/zabbix.conf
添加ip範圍能訪問zabbix web 界面。如果設置“Allow from All”,那麼任何網段均可訪問。
此處,我設置均可訪問。
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from 192.168.1.0/24
</Directory>
保存,退出!
重啓zabbix,Apache服務或做成開機自動啓動。
systemctl start zabbix-server
systemctl start zabbix-agent
systemctl restart httpd
systemctl restart mariadb
systemctl enable zabbix-server
systemctl enable zabbix-agent
3. 配置Zabbix web控制檯
以上我們完成了安裝和配置的部分內容。接下來讓我們配置zabbix web 控制檯。
訪問:http://ip-address/zabbix or http://domain-name/zabbix.
此處 http://192.168.2.128/zabbix
點擊Next,
校驗必備的先決條件。如果每項均ok,單擊Next,否則返回安裝必備的包。
選填數據名稱,用戶名,密碼點擊Test connection。如果填寫完成正確值(數據庫正常訪問),這裏就會顯示ok信息。就可以單擊Next繼續。
填寫你Zabbix Server的信息。單擊Next。
預覽填寫的數據和zabbix server信息,如果一切填寫ok,單擊Next。
祝賀你,你已安裝成功。單擊Finish,完成安裝。
現在,讓我們重新訪問Zabbix web.
默認登錄用戶名和密碼是admin/zabbix
ok,登錄進去後如下圖:
到此,Zabbix 服務成功安裝完成。
後續,在說下在監控機器上安裝Agent配置以及如何配置監控。