zabbix是基於web界面的開源分布式監控平台,可以監控各種服務器的配置參數,支持自定義配置和自定義告警,並且可以實現郵件、短信等方式的告警,zabbix基本組件如下:
zabbix_server:zabbix服務端守護進程,所有的監控數據都會統一匯總給server
zabbix_agentd:客戶端守護進程,負責執行server命令,收集客戶端各種參數,如cpu負載,內存,硬盤io等
zabbix_get:zabbix的一個工具,通常用於從server或者proxy獲取遠程客戶端的信息,以及故障排查等
zabbix_sender:zabbix的一個工具,用於發送數據給server或者proxy,通常用於耗時比較長的檢查
zabbix_proxy:zabbix代理守護進程,功能類似server,作為中轉站將收集到的數據轉發給server,主要就是用於分布式集群中分擔server的負擔,構成類似分布式的server架構,但是最終數據還是要提交給server來匯總
下面使用bigdata1和bigdata2來安裝zabbix,其中bigdata1運行server,agent,web界面 bigdata2只運行agent,下面分別進行:
1. bigdata1 server,agent,web界面的部署
首先去zabbix官網下載最新的安裝包,下載地址為:http://www.zabbix.com/download 這里是下載通用的源碼包,要拉到頁面最下方下載對應的源碼包,目前最新版本是3.2,下載包名為:zabbix-3.2.3.tar.gz
下載后上傳至服務器,
由於web部分是使用php,所以必須要配置php的環境,可以是lamp或者lnmp 這里使用的是lnmp php版本為最新的7.1.0
另外php務必要開啟如下模塊:
bcmath 使用編譯參數:--enable-bcmath
mbstring --enable-mbstring
sockets --enable-sockets
gd --with-gd
libxml --with-libxml-dir
xmlwriter php7默認開啟,直接編譯即可
xmlreader php7默認開啟
ctype php7默認開啟
session 默認開啟
gettext --with-gettext
具體php安裝和nginx配置可以參考我之前的文章:http://www.cnblogs.com/freeweb/p/5425554.html
並且特別注意要專門修改php.ini的參數配置,才能運行web端,具體配置如下:
max_execution_time = 30 修改為 300
memory_limit 默認如果為 128M 不用修改
post_max_size 默認是8M 修改為16M
upload_max_filesize 這項默認是2M 不用修改
max_input_time 默認為60 修改為 300
date.timezone 默認是注釋的,要修改為PRC或者Asia/Shanghai
修改完這些配置要重啟php-fpm進程
然后安裝zabbix server和agent
安裝的時候需要依賴:net-snmp-devel libxml2-devel libcurl-devel否則編譯階段會失敗,其中后兩個在php安裝過程中應該都是安裝好的,這里只安裝第一個: yum -y install net-snmp-devel
然后安裝zabbix:
tar -xvzf zabbix-3.2.3.tar.gz cd zabbix-3.2.3/ ./configure --prefix=/opt/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 make -j4 make install
執行完上述命令,zabbix就安裝成功了,位置在/opt/zabbix,並且--enable-server和--enable-agent是同時開啟server和agent,並且后面的參數對於server來說都要加上
zabbix啟動默認使用zabbix用戶,所以需要創建用戶和組:
groupadd zabbix
useradd -g zabbix zabbix
然后初始化mysql數據庫,這里mysql用戶名和密碼都為root,首先登錄數據庫: mysql -uroot -proot
然后創建zabbix數據庫用於zabbix server使用: > create database zabbix default charset utf8; 這里編碼要注意,一定是utf8的,否則會出現亂碼
然后導入需要的數據文件:
mysql -uroot -proot zabbix < database/mysql/schema.sql mysql -uroot -proot zabbix < database/mysql/images.sql mysql -uroot -proot zabbix < database/mysql/data.sql
注意:只有server需要這三個sql文件,proxy只需要schema.sql這一個sql,agent都不需要
然后執行 cd /opt/zabbix/ 進入zabbix目錄,執行: vim etc/zabbix_server.conf 編輯server配置文件,修改項如下:
DBName=zabbix
DBUser=root
DBPassword=root
DBPort=3306
另外DBHost默認是localhost,實際中php連接本地的mysql時會出現各種問題,如果是mariadb那么默認是可以的,如果是原版mysql那么啟動后查看日志會出現/tmp/mysql.sock無法訪問的錯誤,但是/tmp/mysql.sock一切正常,網上各種說法都是錯誤的,原因是localhost會走本地的socket,而php連接localhost會出問題,所以強烈建議DBHost配置為127.0.0.1從而避免各種問題
配置之后保存並退出
然后執行 ./sbin/zabbix_server 啟動服務端,服務端默認綁定端口號是10051,如果關閉zabbix_server直接平緩殺掉一個主進程即可
然后配置本機的agent: vim etc/zabbix_agentd.conf 修改參數如下:
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
上面的Server和ServerActive都是指定zabbix_server的地址,由於是本機所以可以寫成127.0.0.1 其他的主機要具體配置server的實際ip或者主機名,這兩個配置項的功能是Server是配置允許server來我這取數據,ServerActive是主動提交數據給server
其中Hostname配置一個主機標識,在集群中一般是主機名即可,這里由於是本地默認使用Zabbix server也是可以的
配置完成保存並退出,然后啟動客戶端: ./sbin/zabbix_agentd 客戶端默認端口號是10050 關閉方法和server一致
然后配置web部分,首先定義web目錄是/web 可以將zabbix統一放到/web/zabbix中,假設這些目錄都不存在,則首先創建web目錄:
mkdir /web 然后進入到之前編譯zabbix的目錄zabbix-3.2.3下,拷貝前端程序:
cp -rp frontends/php/ /web/zabbix
然后給/web/zabbix目錄授權php用戶可以訪問: chown -Rv www-data:www-data /web/zabbix/
然后在nginx中稍微做一下配置,指向web目錄並且開啟優雅uri參數,具體配置如下:
root /web; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
其中root指向web根目錄在最上面進行了全局設置,配置保存后重新加載nginx配置,然后訪問界面:http://ip:port/zabbix進行安裝,這里是:http://192.168.0.157:10086/zabbix
安裝過程很簡單,歡迎界面執行下一步會檢測php配置,如果不符合會給出提示,等修改好刷新可以繼續安裝,另外注意在mysql配置部分主機要配置127.0.0.1其余根據實際參數配置,然后后面的步驟全部默認即可,最后php會在/web/zabbix目錄下創建對應的配置文件,所以上面授權是必須的,最后點擊Finish完成安裝,頁面會跳轉至登錄界面,默認登錄用戶名為:admin 密碼為:zabbix
進入界面可以進行基本的語言設置和用戶配置,點擊配置->主機可以進行主機的管理,點擊右上角可以創建一個新的agent主機
默認的Zabbix server會被自動發現,可以查看其中一些默認的參數等,接下來在bigdata2配置另外一個agent主機
2. bigdata2 agent2配置
bigdata2只運行一個純agent,其他的都不需要,同樣是先將包zabbix-3.2.2.tar.gz發送至bigdata2服務器,然后執行安裝:
tar -xvzf zabbix-3.2.3.tar.gz cd zabbix-3.2.3/ ./configure --prefix=/opt/zabbix --enable-agent make make install
這里編譯參數只加--enable-agent即可,安裝完成之后同樣需要先創建zabbix用戶
groupadd zabbix
useradd -g zabbix zabbix
然后執行: vim /opt/zabbix/etc/zabbix_agentd.conf 編輯agent配置文件,配置如下參數:
Server=192.168.0.157
ServerActive=192.168.0.157
Hostname=bigdata2
上面Server和ServerActive都要指定具體的zabbix_server地址,Hostname配置agent主機名即可
然后執行: ./sbin/zabbix_agentd 啟動agent,回到界面進入創建主機:
其中主機名稱要和Hostname的配置一致,可見的名稱自己自定義填寫,群組選定一個常用的即可,比如Linux servers或者Zabbix servers都可以,為了便於管理,agent代理的ip那里填寫具體要添加agent主機的ip,其余默認然后點擊上面的模板:
比如這里選擇Template OS Linux然后點擊添加,必須點擊添加添加模板才可以鏈接過去,最后點擊保存即可,然后就可以管理主機的詳細情況了
另外可以將啟動腳本放到/etc/init.d/中方便后來快速啟動,首先進入到編譯目錄下,然后執行下面命令拷貝啟動腳本:
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/ cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
在misc/init.d/下面有對應不同操作系統的腳本,比如debian,ubuntu等,這里是使用的CentOS,所以使用的是fedora的,因為redhat,fedora,centos都是基於reahat的不同發行版
然后分別編輯這兩個腳本,修改BASEDIR為實際的zabbix安裝位置,這里是:BASEDIR=/opt/zabbix,修改完分別保存
首次使用必須先使用kill結束zabbix的server和agent進程,然后就可以使用腳本啟動或者關閉了,具體命令和其他服務是通用的: /etc/init.d/zabbix_server start|stop|status
設置開機隨系統啟動:
chkconfig zabbix_server on
chkconfig zabbix_agentd on
啟動后也可以使用systemctl來進行管理,比如: systemctl status zabbix_server.service
然后其余的agent主機啟動腳本配置完全一樣
現在zabbix最基本的平台就安裝完畢了