溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Zabbix監控的安裝配置

發布時間:2020-06-09 21:24:37 來源:億速云 閱讀:222 作者:元一 欄目:系統運維

一、Zabbix概述

1)Zabbix簡介

zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。

zabbix能監視各種網絡參數,保證服務器系統的安全運營;并提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

zabbix由2部分構成,zabbix server與可選組件zabbix agent。

zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。

2)優缺點

Zabbix優點:

1 支持分布式監控

2 自帶繪圖功能,獲取到數值型的數據,可自動生成圖

3 Web配置方式,操作易用性較好。添加監控項或機器時速度很快。

4 有報警時無論在任何界面會彈出小窗口報警,同時有報警的聲音提示,同時可對監控項的快速查看。

5 自帶內置函數較為豐富,同時也支持腳本及nagios等腳本的調用。

6 出現問題時,可自動遠程執行命令(需對agent設置執行權限)

Zabbix 缺點:

1 批量修改不方便,可用數據庫輔助

2 深入后,中文資料相當少,大部分問題需看官方的文檔及論壇。

3 缺少數據匯總功能,如無法查看一組服務器平均值,可考慮對其進行二次開發。

4 zabbix較cacti來說,畫圖功能較差些、流量獲取較為復雜

4)Zabbix的功能

Zabbix具有以下功能:

  • 1)具備常見的商業監控軟件所具備的功能(主機的性能監控、網絡設備性能監控、數據庫、性能監控、FTP 等通用協議監控、多種告警方式、詳細的報表圖表繪制);
  • 2)支持自動發現網絡設備和服務器(可以通過配置自動發現服務器規則來實現);
  • 3)支持自動發現(low discovery)key 實現動態監控項的批量監控(需寫腳本);
  • 4)支持分布式,能集中展示、管理分布式的監控點 ;
  • 5)擴展性強,server 提供通用接口(api 功能),可以自己開發完善各類監控(根據相關接口編寫程序實現)編寫插件容易,可以自定義監控項,報警級別的設置;
  • 6)服務器/代理和客戶端模式; 靈活的觸發器;可以定義非常靈活的問題閾值,稱為觸發器; 高可定制的報警;發送通知,可定制的報警升級,收件人,媒體類型。 CPU 負荷、內存使用、磁盤使用、網絡狀況、端口監視、日志監視等等;

4)Zabbix的監控原理

Zabbix通過c/s模式采集數據,通過b/s模式在web端展示和配置。

被控制端:主機通過安裝agent方式采集數據,網絡設備通過snmp方式采集數據;
Server端:通過收集snmp和agent發送的數據,寫入數據庫,再通過php+nginx(或者apache)在web前端顯示;

5)Zabbix的組成

zabbix主要由以下幾個重要的組件構成,具體作用如下:

  • Zabbix Server:負責接收Agent發送報告信息的核心組件,所有的配置、數據統計、數據操作都由它組織進行;
  • Database strongage:負責存儲所有的配置信息以及收集的數據;
  • Web interface:是zabbix的GUI接口,通常情況下與Zabbix Server運行在同一臺主機上;
  • Proxy:屬于可選組件,常用于分布式監控環境中,代理Server收集部分數據,然后轉發到Server,可以減輕Server的壓力;
  • Agent:部署在被監控的主機(客戶端)上,負責收集被監控端主機的數據,如CPU、內存、數據庫等數據,然后發送到Server端或Proxy端。

6)Zabbix運行流程

1)Agent需要安裝到被監控的主機上,她負責定期收集各項數據并發送到zabbix server 端;
2)zabbix server將數據存儲到數據庫中,zabbix web根據數據在前端進行展現和繪圖;

agent收集數據分為主動和被動兩種模式:
主動:agent請求server獲取主動的監控項列表,并主動將監控向內檢測的數據提交給server/proxy;
被動:server向agent請求獲取監控項的數據,agent返回數據;

被動:比較消耗性能。
在被動模式中,zabbix server(或者proxy)詢問agent數據,如CPU的負載情況,然后zabbix agent回送結果,zabbix server周期性的向agent 索取數據,這種模式的最大問題就是會加大zabbix server的工作量,也是默認的工作模式。
主動:效率高,但數據可能缺失。
主動模式是由zabbix agent主動采集數據并返回給zabbix server,不再需要zabbix serve進行干預, 因此主動模式在一定程度上可減輕zabbix server的壓力。

7)Zabbix監控架構

在實際生產環境中,Zabbix根據網絡環境,監控規模等外界因素分為三種架構,如圖:
Zabbix監控的安裝配置

(1)server-client架構(直接連接)

server-client架構是Zabbix的最簡單的架構,監控機和被監控機之間不經過任何代理,直接在zabbix server和zabbix agentd之間進行數據交互,適用于網絡比較簡單,設備比較少的監控環境;

(2)master-node-client架構(node架構)

master-node-client架構是Zabbix最復雜的監控架構,適用于跨網絡、跨機房、設備較多的大型環境。每個node同時也是一個server端。node下面可以接proxy,也可以直接接client。node有自己的配置文件和數據庫。其要做的是將配置信息和監控數據項master同步。當master發生故障或損壞,node可以保證架構的完整性;

(3)server-proxy-client架構(proxy架構)

proxy是server、client之間溝通的一個橋梁,proxy本身沒有前端,而且其本身并不存放數據,只是將agentd發來的數據暫時存放,而后在提交給server。該架構經常是和master-node-client架構做比較的架構,一般適用于跨機房、跨網絡的中型網絡架構的監控;

二、搭建LNMP環境

由于部署Zabbix需要使用到LNMP的環境,所以需事先部署。關于其部署詳細工程,可以參考搭建LNMP,接下來關于LNMP命令的解釋就不再詳細解釋了!

1)安裝Nginx

下載nginx軟件包

[root@zabbix ~]# yum -y install pcre-devel openssl-devel zlib-devel 
[root@zabbix ~]# tar zxf nginx-1.14.0.tar.gz && cd nginx-1.14.0
[root@zabbix nginx-1.14.0]# ./configure && make && make install
//由于只是使用nginx提供簡單的web頁面啟動即可!
[root@zabbix ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
//創建符號鏈接,稍后啟動

2)安裝PHP

下載PHP軟件包

[root@zabbix ~]#  yum -y install freetype-devel libpng-devel libjpeg-devel libxml2-devel bzip2-devel libcurl-devel
//安裝php所需依賴
[root@zabbix ~]#  tar zxf libmcrypt-2.5.7.tar.gz && cd libmcrypt-2.5.7
[root@zabbix libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install
//安裝libmcrypt
[root@zabbix ~]# tar zxf php-5.6.27.tar.gz && cd php-5.6.27
[root@zabbix php-5.6.27]# ./configure --prefix=/usr/local/php5.6 \
 --with-config-file-path=/etc --with-mysql=/usr/local/mysql \
 --with-mysqli=/usr/local/mysql/bin/mysql_config \
 --with-mysql-sock=/usr/local/mysql/mysql.sock \
 --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt=/usr/local/libmcrypt \
 --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib \
 --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml \
 --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization \
 --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp \
 --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets \
 --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext \
 --enable-session --with-curl && make && make install
//編譯安裝php
[root@zabbix ~]# cp /root/php-5.6.27/php.ini-production /etc/php.ini
[root@zabbix ~]# cp /root/php-5.6.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@zabbix ~]#  chmod +x /etc/init.d/php-fpm 
[root@zabbix ~]# chkconfig --add php-fpm
[root@zabbix ~]# cd /usr/local/php5.6/etc
[root@zabbix etc]# cp php-fpm.conf.default php-fpm.conf
[root@zabbix etc]# sed -i 's#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g' php-fpm.conf
[root@zabbix etc]# sed -i 's/listen = 127.0.0.1:9000/listen = 0.0.0.0:9000/g' php-fpm.conf
[root@zabbix etc]# sed -i 's/pm.max_children = 5/pm.max_children = 50/g' php-fpm.conf
[root@zabbix etc]# sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' php-fpm.conf
[root@zabbix etc]# sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' php-fpm.conf
[root@zabbix etc]# sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 35/g' php-fpm.conf
[root@zabbix etc]# systemctl start php-fpm  
[root@zabbix etc]# ss -lnt | grep 9000
LISTEN     0      128          *:9000                     *:*          
//保證PHP啟動成功

3)配置nginx可以與PHP相互連接

[root@zabbix ~]# vim /usr/local/nginx/conf/nginx.conf
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;           //修改這一行即可
        }

[root@zabbix ~]# echo -e "<?php\nphpinfo();\n?>" > /usr/local/nginx/html/index.php
[root@zabbix ~]# nginx -t 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@zabbix ~]# nginx

訪問測試;
Zabbix監控的安裝配置

4)安裝mysql數據庫

下載mysql數據庫軟件提供的是一鍵安裝mysql的腳本進行安裝的,直接執行腳本即可!

[root@zabbix ~]# ls | grep mysql
mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
mysql.sh
[root@zabbix ~]# sh mysql.sh
//安裝完成后,數據庫用戶root的密碼為123

這里就先不測試PHP與mysql的鏈接性了,對自己搭建的LNMP有信心!

三、安裝Zabbix

下載Zabbix軟件包

[root@zabbix ~]# tar zxf fping-3.12.tar.gz  && cd fping-3.12
[root@zabbix fping-3.12]#  ./configure && make && make install
//編譯安裝fping,使Zabbix支持自動發現功能
[root@zabbix fping-3.12]# groupadd zabbix
[root@zabbix fping-3.12]# useradd zabbix -M -g zabbix
[root@zabbix fping-3.12]# chown zabbix:zabbix /usr/local/sbin/fping
//創建zabbix用戶使其可以使用fping命令
[root@zabbix ~]# yum -y  install  net-snmp net-snmp-devel curl-devel OpenIPMI-devel libssh3-devel java-devel
//安裝zabbix所需依賴
[root@zabbix ~]# tar zxf zabbix-3.2.1.tar.gz && cd zabbix-3.2.1
[root@zabbix zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-server \
 --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config \
 --with-net-snmp --with-libcurl --with-openipmi && make && make install
//--enable-java:便于日后監控tomcat程序使用;
//--with-openipmi:使其可以監控設備的硬件信息
[root@zabbix ~]# ln  -s  /usr/local/zabbix/bin/*  /usr/local/bin/ 
[root@zabbix ~]# ln  -s  /usr/local/zabbix/sbin/*  /usr/local/sbin/
//為zabbix常用命令創建符號連接
[root@zabbix ~]# mysql -u root -p123
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to 'zabbix'@'192.168.1.%' identified by '123.com';
//創建zabbix數據庫及用戶
[root@zabbix ~]# cd /root/zabbix-3.2.1/database/mysql/
[root@zabbix mysql]# mysql -uzabbix -p123.com -h 192.168.1.8 zabbix < schema.sql
[root@zabbix mysql]# mysql -uzabbix -p123.com zabbix -h 192.168.1.8 < images.sql
[root@zabbix mysql]#  mysql -uzabbix -p123.com zabbix -h 192.168.1.8 < data.sql 
//進入相應的目錄導入相應的數據庫文件
//切記需按照順序導入,否則可能會出現意外
[root@zabbix mysql]# cd /usr/local/zabbix/etc
[root@zabbix etc]# egrep -v '^#|^$' zabbix_server.conf
LogFile=/tmp/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=192.168.1.8
DBName=zabbix
DBUser=zabbix
DBPassword=123.com
DBPort=3306
Timeout=4
FpingLocation=/usr/sbin/fping           //fping(自動發現)文件路徑
LogSlowQueries=3000
//以上是修改完成的配置文件
[root@zabbix etc]# find   / -name  libmysqlclient.so
/usr/local/mysql/lib/libmysqlclient.so
[root@zabbix etc]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
//添加libmysqlclinet的接口文件路徑
[root@zabbix etc]# ldconfig 
//主要是在默認搜尋目錄/lib和/usr/lib以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態鏈接庫(格式如lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件。
[root@zabbix etc]# find  /  -name  mysql.sock
/usr/local/mysql/mysql.sock
[root@zabbix etc]# ln  -s /usr/local/mysql/mysql.sock  /tmp/
//添加mysql.sock文件到tmp目錄下,否則會在啟動時會出現錯誤
[root@zabbix etc]# cd  /root/zabbix-3.2.1/
[root@zabbix zabbix-3.2.1]# cp  misc/init.d/fedora/core/zabbix_server  /etc/init.d/
[root@zabbix zabbix-3.2.1]# chmod +x /etc/init.d/zabbix_server 
[root@zabbix zabbix-3.2.1]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/rc.d/init.d/zabbix_server
//將zabbix系統腳本中zabbix的安裝路徑進行更改
[root@zabbix zabbix-3.2.1]# systemctl daemon-reload 
[root@zabbix zabbix-3.2.1]# /etc/init.d/zabbix_server start
Reloading systemd:                                         [  確定  ]
Starting zabbix_server (via systemctl):                    [  確定  ]
[root@zabbix zabbix-3.2.1]# ss -lnt | grep 10051
LISTEN     0      128          *:10051                    *:*          
//添加為系統服務,并啟動,確定其端口在監聽,默認是10051
//如果啟動失敗查看/tmp/zabbix_server.log這個日志內容
[root@zabbix ~]# cp -r /root/zabbix-3.2.1/frontends/php/ /usr/local/nginx/html/zabbix
//復制zabbix的網頁目錄到nginx網頁根目錄下
[root@zabbix ~]# ps -ef | grep php
//根據查詢結果就可以看出運行php程序的用戶是nobody
[root@zabbix ~]# chown -R nobody:nobody /usr/local/nginx/html/zabbix/
//所以需要保證運行PHP的用戶對這個目錄有絕對的權限否則將無法更改數據

客戶端訪問測試:
Zabbix監控的安裝配置
Zabbix監控的安裝配置
根據提示的警告信息修改php的配置文件

[root@zabbix ~]# sed -i 's/post_max_size = 8M/post_max_size = 16M/g'  /etc/php.ini
[root@zabbix ~]# sed -i 's/max_input_time = 60/max_input_time = 300/g' /etc/php.ini
[root@zabbix ~]# sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini
[root@zabbix ~]# echo -e "date.timezone = Asia/Shanghai" >> /etc/php.ini
[root@zabbix ~]# echo -e "always_populate_raw_post_data = -1" >> /etc/php.ini
[root@zabbix ~]# systemctl restart php-fpm
//重新啟動php,使其加載配置文件

繼續訪問web頁面,如圖:
Zabbix監控的安裝配置
Zabbix監控的安裝配置
Zabbix監控的安裝配置
Zabbix監控的安裝配置
Zabbix監控的安裝配置
Zabbix監控的安裝配置
Zabbix監控的安裝配置
Zabbix監控的安裝配置
由此可以看出界面已經變成了中文!

但是需要注意zabbix中文亂碼的問題,需要使用以下方法修改中文亂碼的問題!

[root@zabbix ~]# ls | grep SIMKAI.TTF
SIMKAI.TTF
[root@zabbix ~]# sed -i 's/DejaVuSans/simkai.ttf/g' /usr/local/nginx/html/zabbix/include/defines.inc.php
[root@zabbix ~]# mv SIMKAI.TTF /usr/local/nginx/html/zabbix/fonts/simkai.ttf

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女