首頁>技術>

一、Zabbix概述

1、Zabbix簡介

 zabbix是一個基於WEB介面的提供 分散式系統監控以及網路監控功能 的企業級的開源解決方案。zabbix能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

zabbix由zabbix server與可選元件zabbix agent兩部分組成:

zabbix server可以透過SNMP,zabbix agent,ping,埠監視等方法提供對遠端伺服器/網路狀態的監視。zabbix agent需要安裝在被監視的目標伺服器上,它主要完成對硬體資訊或與作業系統有關的記憶體,CPU等資訊的收集。

2、Zabbix監控工作原理

 Agentd安裝在被監控的主機上,Agent負責定期收集客戶端本地各項資料,併發送至Zabbix Server端,Zabbix Server收到資料,將資料儲存到資料庫中,使用者基於Zabbix WEB可以看到資料在前端展現影象。

agent收集資料分為主動和被動兩種模式:

主動: agent請求server獲取主動的監控項列表,並主動將監控項內需要檢測的資料提交給server/proxy。被動: server向agent請求獲取監控項的資料,agent返回資料。

3、Zabbix的常用元件

 Zabbix Web Gui: 提供Web介面。

Zabbix Databases:提供資料庫儲存功能並用於儲存配置資訊。以及採集到的資料。

 Zabbix Server : 接收來自Agent採集資料的核心元件。

 Zabbix Agent :部署在被監控的主機上,用於採集本地的資料。

 Zabbix Proxy: 當監控節點較多時,用於減輕Server壓力元件,也可用於分散式。監控系統,由Proxy接收資料後統一發送給Server。

4、Zabbix支援的資料採集協議

 SNMP(Simple Network Managerment Protocol):這是一個非常古老的且通用的監控協議,幾乎任何裝置都支援用此方式進行系統的監控。

 Agent:在監控端安裝專門的監控程式,將資料採集後透過Agent傳送至Server。

 IPMI:智慧平臺管理介面,即主要應用於裝置的物理特性,包括:溫度、電壓、電扇工作狀態,電源供應以及機箱入侵等。IPMI最大的優勢在於無論OS的開機還是關機狀態下,只要接通電源就可以實現對伺服器的監控。

 JMX:Java Managerment Exlensions。

5、常見程序

 zabbix­_agentd:客戶端守護程序,負責收集客戶端資料,例如cpu負載、記憶體、硬碟使用情況等。

 zabbix_get:zabbix資料接收工具,單獨使用的命令,通常在Server或者Proxy端執行獲取遠端客戶資訊的命令。通常客戶排錯。例如在Server端獲取不到客戶端的記憶體資料,我們可以使用zabbix_get獲取客戶端的內容的方式來做故障排查。

 zabbix_sender:zabbix資料傳送工具,用於傳送資料給Server或者Proxy,通常用於耗時比較長的檢查。很多檢查非常耗時間,導致zabbix超時。於是我們在指令碼執行完畢之後,使用sender主動提交資料。

 zabbix­­_proxy:zabbix代理守護程序。功能類似Server,唯一不同的是它只是一箇中轉站,它需要把收集到的資料提交/被提交到Server裡。

 zabbix­_java­_gateway:Java閘道器,類似agentd,但是隻用於Java方面。它只能主動去獲取資料,而不能被動獲取資料。它的資料最終會給到Server或者proxy。

二、Zabbix監控平臺搭建

環境介紹:

 CentOS 7.5

 Zabbix-server(監控端)192.168.2.128

 Zabbix-agent (被監控端)192.168.2.129

1.基礎環境配置:

[root@localhost ~]# systemctl disable firewalld   #禁止防火牆服務啟動[root@localhost ~]# systemctl stop firewalld    #關閉防火牆服務[root@localhost ~]# setenforce = 0     #臨時關閉SELinux        [root@localhost ~]# vim /etc/sysconfig/selinux    #修改將“SELINUX=enforcing”更改為“SELINUX=disabled”,永久關閉SELINUX...SELINUX=disabled...[root@localhost ~]# getenforceDisabled[root@localhost ~]# yum install tree net-tool net-snmp vim ntpdate  wget                 #安裝部分基礎軟體包[root@localhost ~]# cd /etc/yum.repos.d/         #修改yum源 更改為阿里雲 [root@localhost ~]# mv CentOS-Base.repo CentOS-Base.repo.bak    #備份檔案    [root@localhost ~]# wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo            #下載阿里雲映象倉庫[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo     #下載epel倉庫[root@localhost ~]# yum clean all    #清理快取            [root@localhost ~]# yum makecache   #重新生成快取                                                     

2.安裝Mysql資料庫

[root@localhost ~]# wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm       //下載Mysql 5.7 Yum源[root@localhost ~]# ls mysql57-community-release-el7-11.noarch.rpm mysql57-community-release-el7-11.noarch.rpm[root@localhost ~]# rpm -ivh mysql57-community-release-el7-11.noarch.rpm      //安裝Mysql Yum源[root@localhost ~]# yum -y install mysql-server    //安裝mysql[root@localhost ~]# systemctl start mysqld   //啟動Mysqld服務[root@localhost ~]# systemctl enable mysqld    //開機自啟mysql[root@localhost ~]# ss -antulp | grep :3306tcp    LISTEN     0      80     [::]:3306               [::]:*                   users:(("mysqld",pid=54086,fd=21))[root@localhost ~]# grep 'root@localhost:' /var/log/mysqld.log   //檢視初始密碼2020-03-20T00:57:34.072739Z 1 [Note] A temporary password is generated for root@localhost: hsQ(7(so_cgX[root@localhost ~]# mysql -hlocalhost -uroot -p'hsQ(7(so_cgX' //使用初始密碼登陸mysql: [Warning] Using a password on the command line interface can be insecure....Server version: 5.7.29...mysql>mysql> alter user root@"localhost" identified by "123qqq...A";   修改登陸密碼[root@localhost ~]# mysql -uroot -p123qqq...A    //使用新密碼登陸

3.安裝Zabbix 5.0監控平臺

安裝Zabbix Yum源倉庫

[root@localhost ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm[root@localhost ~]# yum clean all

安裝Zabbix Server 與 Zabbix agent

[root@localhost ~]# yum -y install zabbix-server-mysql zabbix-agent

注意: 如果安裝中報錯:Delta RPMs disabled because /usr/bin/applydeltarpm not installed,則安裝 deltarpm軟體。

yum -y  install deltarpm

安裝Zabbix frontend

[root@localhost ~]# yum -y install centos-release-scl[root@localhost ~]# vim /etc/yum.repos.d/zabbix.repo...[zabbix-frontend]name=Zabbix Official Repository frontend - $basearchbaseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontendenabled=1        //將0修改為1...

安裝Zabbix前端包

[root@localhost ~]# yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl

建立和初始化資料庫

[root@localhost ~]# mysql -uroot -p123qqq...A...mysql> create database zabbix character set utf8 collate utf8_bin;Query OK, 1 row affected (0.00 sec)mysql> create user zabbix@localhost identified by '123qqq...A';Query OK, 0 rows affected (0.00 sec)mysql> grant all privileges on zabbix.* to zabbix@localhost;Query OK, 0 rows affected (0.00 sec)mysql> exitBye

匯入Zabbix資料庫結構和資料

[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123qqq...A zabbixmysql: [Warning] Using a password on the command line interface can be insecure.

 其中-uzabbix是前面在資料庫中建立的使用者,-p123qqq...A是前面資料庫中建立的使用者的密碼,後面的zabbix是前面建立的資料庫。

4.配置Zabbix server

[root@localhost ~]# vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.confserver {#        listen          80;#        server_name     example.com;取消以上兩行註釋修改後為以下:server {        listen          80;        server_name     example.com;...[root@localhost ~]# cat /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.confserver {        listen          80;        server_name     example.com;        root    /usr/share/zabbix;        index   index.php;        location = /favicon.ico {                log_not_found   off;        }        location / {                try_files       $uri $uri/ =404;        }        location /assets {                access_log      off;                expires         10d;        }        location ~ /\.ht {                deny            all;        }        location ~ /(api\/|conf[^\.]|include|locale) {                deny            all;                return          404;        }        location ~ [^/]\.php(/|$) {                fastcgi_pass    unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock;                fastcgi_split_path_info ^(.+\.php)(/.+)$;                fastcgi_index   index.php;                fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix;                fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;                fastcgi_param   PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;                include fastcgi_params;                fastcgi_param   QUERY_STRING    $query_string;                fastcgi_param   REQUEST_METHOD  $request_method;                fastcgi_param   CONTENT_TYPE    $content_type;                fastcgi_param   CONTENT_LENGTH  $content_length;                fastcgi_intercept_errors        on;                fastcgi_ignore_client_abort     off;                fastcgi_connect_timeout         60;                fastcgi_send_timeout            180;                fastcgi_read_timeout            180;                fastcgi_buffer_size             128k;                fastcgi_buffers                 4 256k;                fastcgi_busy_buffers_size       256k;                fastcgi_temp_file_write_size    256k;        }}[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf...116 DBUser=zabbix     //使用者名稱要與資料庫中建立的供zabbix訪問的使用者名稱一致...124 DBPassword=123qqq...A      //去掉註釋,新增建立的zabbix使用者的資料庫密碼...

為Zabbix前端配置PHP

[root@localhost ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf[zabbix]user = apachegroup = apachelisten = /var/opt/rh/rh-php72/run/php-fpm/zabbix.socklisten.acl_users = apache,nginx       //新增一個nginxlisten.allowed_clients = 127.0.0.1pm = dynamicpm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35php_value[session.save_handler] = filesphp_value[session.save_path]    = /var/opt/rh/rh-php72/lib/php/session/php_value[max_execution_time] = 300php_value[memory_limit] = 128Mphp_value[post_max_size] = 16Mphp_value[upload_max_filesize] = 2Mphp_value[max_input_time] = 300php_value[max_input_vars] = 10000; php_value[date.timezone] = Europe/Riga     --》取消註釋將Europe/Riga時區修改為以下:php_value[date.timezone] = Aisa/Shanghai

6.開啟服務

[root@localhost ~]# systemctl restart zabbix-server zabbix-agent  httpd rh-php72-php-fpm[root@localhost ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm[root@localhost ~]# ss -antulp | grep :80tcp    LISTEN     0      128      :::80                   :::*                   users:(("httpd",pid=5619,fd=4),("httpd",pid=5618,fd=4),("httpd",pid=5617,fd=4),("httpd",pid=5616,fd=4),("httpd",pid=5614,fd=4),("httpd",pid=5585,fd=4))[root@localhost ~]# ps -aux | grep zabbix......apache     5677  0.0  0.3 336672  7316 ?        S    16:36   0:00 php-fpm: pool zabbixroot       5809  0.0  0.0 112736   976 pts/0    S+   16:47   0:00 grep --color=auto zabbix

7.訪問

報錯:

檢查設定時區的配置檔案,發現是時區寫錯了

[root@localhost ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf[zabbix]user = apachegroup = apache...php_value[date.timezone] = Aisa/Shanghai     //錯誤,應該是Asia/Shanghai修改:php_value[date.timezone] = Asia/Shanghai[root@localhost ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm     //重啟服務

可以看到已經登入到zabbix 5.0監控介面了,上面的紅色提示不是報錯,只是提示之前“2次登入嘗試失敗..”重新整理一下提示就消失了。

修改Zabbix 5.0介面語言為中文:三、被監控端Zabbix-agent新增

永久關閉防火牆

[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# systemctl disable firewalld     //永久關閉防火牆
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/6/x86_64/zabbix-agent-5.0.0-1.el6.x86_64.rpm[root@localhost ~]# ll -h zabbix-agent-5.0.0-1.el6.x86_64.rpm-rw-r--r-- 1 root root 436K 5月  11 20:06 zabbix-agent-5.0.0-1.el6.x86_64.rpm[root@localhost ~]# rpm -ivh zabbix-agent-5.0.0-1.el6.x86_64.rpm警告:zabbix-agent-5.0.0-1.el6.x86_64.rpm: 頭V4 RSA/SHA512 Signature, 金鑰 ID a14fe591: NOKEY錯誤:依賴檢測失敗:        libpcre.so.0()(64bit) 被 zabbix-agent-5.0.0-1.el6.x86_64 需要

注意:

 如果下載的zabbix-agent 5.0安裝包使用rpm安裝時提示“錯誤:依賴檢測失敗:libpcre.so.0()(64bit)”,則可以使用zabbix 5.0 Yum源來安裝zabbix-agent 5.0軟體。

----> 傳送門 安裝zabbix-agent5.0 報錯解決

安裝Zabbix Yum源倉庫

[root@localhost ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm[root@localhost ~]# yum clean all

使用Zabbix 5.0 Yum原始檔安裝zabbix-agent 5.0軟體,並且將gpgcheck=1修改為gpgcheck=0,防止出現“獲取GPG金鑰失敗”報錯。

修改Zabbix 5.0 Yum源配置檔案:

[root@localhost ~]# sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo[root@localhost ~]# cat /etc/yum.repos.d/zabbix.repo[zabbix]name=Zabbix Official Repository - $basearchbaseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/enabled=1gpgcheck=0          //修改gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591[zabbix-frontend]name=Zabbix Official Repository frontend - $basearchbaseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontendenabled=1gpgcheck=0        //修改gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591[zabbix-debuginfo]name=Zabbix Official Repository debuginfo - $basearchbaseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/debuginfo/enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591gpgcheck=0        //修改gpgcheck=0[zabbix-non-supported]name=Zabbix Official Repository non-supported - $basearchbaseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIXgpgcheck=0        //修改gpgcheck=0[root@localhost ~]# yum -y install zabbix-agent     //安裝zabbix-agent 5.0軟體...已安裝:  zabbix-agent.x86_64 0:5.0.0-1.el7完畢!

修改zabbix-agent配置檔案:

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf119 Server=127.0.0.1,192.168.2.128   //Zabbix-server地址,多個用","隔開160 ServerActive=192.168.2.128     //主動檢查本主機資料傳送給Zabbix-server171 #Hostname=Zabbix server172 Hostname=192.168.2.129     //客戶端IP地址[root@localhost ~]# systemctl start zabbix-agent[root@localhost ~]# systemctl enable zabbix-agent[root@localhost ~]# ss -antulp | grep :10050tcp    LISTEN     0      128       *:10050                 *:*                   users:(("zabbix_agentd",pid=3389,fd=4),("zabbix_agentd",pid=3388,fd=4),("zabbix_agentd",pid=3387,fd=4),("zabbix_agentd",pid=3386,fd=4),("zabbix_agentd",pid=3385,fd=4),("zabbix_agentd",pid=3384,fd=4))tcp    LISTEN     0      128      :::10050                :::*                   users:(("zabbix_agentd",pid=3389,fd=5),("zabbix_agentd",pid=3388,fd=5),("zabbix_agentd",pid=3387,fd=5),("zabbix_agentd",pid=3386,fd=5),("zabbix_agentd",pid=3385,fd=5),("zabbix_agentd",pid=3384,fd=5))
8
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Web開發人員必知的七項資料庫最佳化技巧