Linux服務器安裝zabbix監控平臺

  zabbix是基於web界面的開源分佈式監控平臺,能夠監控各類服務器的配置參數,支持自定義配置和自定義告警,而且能夠實現郵件、短信等方式的告警,zabbix基本組件以下:php

  zabbix_server:zabbix服務端守護進程,全部的監控數據都會統一彙總給serverhtml

  zabbix_agentd:客戶端守護進程,負責執行server命令,收集客戶端各類參數,如cpu負載,內存,硬盤io等前端

  zabbix_get:zabbix的一個工具,一般用於從server或者proxy獲取遠程客戶端的信息,以及故障排查等mysql

  zabbix_sender:zabbix的一個工具,用於發送數據給server或者proxy,一般用於耗時比較長的檢查nginx

  zabbix_proxy:zabbix代理守護進程,功能相似server,做爲中轉站將收集到的數據轉發給server,主要就是用於分佈式集羣中分擔server的負擔,構成相似分佈式的server架構,可是最終數據仍是要提交給server來彙總web

  下面使用bigdata1和bigdata2來安裝zabbix,其中bigdata1運行server,agent,web界面 bigdata2只運行agent,下面分別進行:sql

  1. bigdata1 server,agent,web界面的部署數據庫

  首先去zabbix官網下載最新的安裝包,下載地址爲:http://www.zabbix.com/download 這裏是下載通用的源碼包,要拉到頁面最下方下載對應的源碼包,目前最新版本是3.2,下載包名爲:zabbix-3.2.3.tar.gzubuntu

  

  下載後上傳至服務器,vim

  因爲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最基本的平臺就安裝完畢了

  

相關文章
相關標籤/搜索