zabbix企業應用之分布式監控proxy

2021-09-04 12:02:57 字數 4251 閱讀 1664

先簡單的介紹一下zabbix分布式的2種實現方式proxy與node的優缺點

proxy:

zabbix proxy 是乙個或多個從監控裝置收集監測資料和傳送到zabbixserver 的程序,屬於代表zabbix server 的執行,所有收集到的資料被暫時存放在**伺服器,之後統一由**伺服器**給zabbix proxy 所屬的伺服器,部署proxy是可選的,但是對於分擔單個zabbix伺服器的負載是非常有益的。如果盡在proxies上收集資料,那麼將減輕伺服器上的程序對cpu資源和磁碟i/o的消耗。

zabbix proxy在沒有本地管理員的情況下,是集中監控遠端區域,分支和網路的理想解決方案。

node:

使用node節點,建立乙個層次結構的分布式監測。每乙個節點是乙個完整的zabbix伺服器,和負責監視它自己的位置,zabbx 支援高達一千個節點的分布式安裝。

使用node節點的好處:

1、在大型的網路中,涉及多個地點建立乙個多層次的監控,在層次結構中的乙個節點報告其主節點。

2、乙個節點可以在本地配置或通過其主節點,它的所有子節點的配置資料的副本。

3、資料收集更多的免疫可能的通訊問題。如果主站和子節點之間的通訊發生故障時,節點可以保持執行狀態。歷史資訊和事件儲存在本地。當通訊又回來了,乙個子節點將有選擇地將資料傳送到主節點。

4、節點可以**乙個單一的zabbix伺服器的工作,監視數千台主機。

5、新節點的連線和拆卸,不影響現有的設定的功能。無需重新啟動所需的任何節點。

所以本文選為以proxy為主是zabbix分布式(同時我的跨機房監控方案也是proxy,好處是安裝配置方便,壞處是如果proxy**有問題,所有監控主機都報警,但可以在配置裡新增乙個檢測來解決)。

環境為

ip              狀態          hostname        軟體版本    系統

192.168.56.101 zabbix agent server 2.0.6 ubuntu server 12.04

192.168.56.102 zabbix server centos 2.0.6 centos 6.2

192.168.56.103 zabbix proxy client1 2.0.6 ubuntu server 12.04

1.安裝依賴庫

如果是debian或者ubuntu需要安裝

apt-get install mysql-server gcc make  libghc6-hsql-mysql-dev libcurl4-openssl-dev libsnmp-dev snmp curl
如果是centos或者redhat的需要安裝

yum install install mysql-server mysql-devel gcc make wget net-snmp* curl libcurl
2.新增使用者

groupadd zabbix

useradd zabbix -g zabbix –s /sbin/nologin

注意:

如果是redhat或者centos系統,如果不想使用者登入,可以使用-s /sbin/nologin,如果是debian或者ubuntu系統,可以使用-s /usr/sbin/nologin

4.解壓與安裝

tar zxvf zabbix-2.0.6.tar.gz

cd zabbix-2.0.6

./configure --prefix=/usr/local/zabbix --enable-proxy --with-mysql --with-net-snmp --with-libcurl

make install

5.配置資料庫

mysql –u root –p

create database zabbix character set utf8;

grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

mysql -uzabbix -p'zabbix' zabbix < database/mysql/schema.sql

6.修改zabbix_proxy.conf檔案

下面是我的修改後的配置

root@client1:/usr/local/zabbix/etc# grep -v "#" zabbix_proxy.conf|sed '/^$/d'

server=192.168.56.102

hostname=client1

logfile=/tmp/zabbix_proxy.log

dbname=zabbix

dbuser=zabbix

dbpassword=zabbix

dbsocket=/tmp/mysql.sock

proxylocalbuffer=0

proxyofflinebuffer=1

configfrequency=600

datasenderfrequency=10

startpollers=10

startpollersunreachable=1

startpingers=1

cachesize=64m

timeout=10

引數介紹

server=192.168.56.102 #zabbix server的ip位址或者網域名稱

hostname=client1 #proxy主機名,在zabbix web會以這個名字為準

#db 設定檔

dbname=zabbix

dbuser=zabbix

dbpassword=zabbix

dbsocket=/tmp/mysql.sock

proxylocalbuffer=0 #設定為0小時,除非有其他第三方應用和外掛程式需要呼叫

proxyofflinebuffer=1 #proxy或者server無法連線時,保留離線的監控資料的時間,單位小時

configfrequency=600 #server和proxy配置修改同步時間間隔,設定5-10分鐘即可。

datasenderfrequency=10 #資料傳送時間間隔,10-30s;

#網路傳輸質量越好,可以設定間隔時間越短,監控效果也越迅速;

startpollers=10 #開啟多執行緒數,一般不要超過30個;

startpollersunreachable=1 #該執行緒用來單獨監控無法連線的主機,1個即可;

startpingers=1 #fping執行緒數

cachesize=64m #用來儲存監控資料的快取數,根據監控主機數量適當調整;

timeout=10 #超時時間,設定不要超過30s,不然會拖慢其他監控資料抓取時間;

fpinglocation=/usr/sbin/fping #配合****** check icmp檢測使用,如不需要可關閉;

其他配置預設即可;

7.啟動

/usr/local/zabbix/sbin/zabbix_proxy
8.去agent節點修改配置檔案

主要修改

server=192.168.56.103

serveractive=192.168.56.103:10051

其中server為**伺服器的ip,serveractive也為**伺服器的ip與埠

然後重啟服務

ps -ef|grep zabbix|grep -v grep|awk ''|xargs kill -9

/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf

9.web新增proxy節點

高階配置-》節點管理-》**節點-》建立節點

填寫proxy的主機名即可,與配置檔案一致:

active - **伺服器將主動連線zabbix伺服器並請求配置資料

被動模式 - zabbix伺服器連線**伺服器

現在我也把**的主機server給新增了,如果不想在這裡新增,可以在系統配置-》主機-》create host,」由**監控」選擇剛新增的proxy

檢視狀態

同時也提醒大家一下,如果使用自動註冊功能,並且在agent裡設定了serveractive的話,就能自動的在server上註冊,但一定要先建立好節點。

分布式之分布式事務

被人問到分布式事務,之前學rabbitmq 的時候學到過rabbitmq 高階的事務,因為沒有用過,所有沒有回答好。這裡總結一下。1.單機版事務。事務的四大特性 acid a.原子性 b.一致性 c.隔離性 d.永續性 單機事務可以通過設定事務的隔離級別 參見spring 的事務隔離級別 2.分布式...

TransactionScope 之分布式配置

本文 transactionscope是個好東西,可以自動管理transaction,即使是對分布式資料庫也可以,但是需要一些配置 摸索了2天。本文的環境為windows 2003 1.對跑 的機器和sql所在的伺服器進行component services的配置 administative too...

java中的分布式應用(一)之分布式介紹

要理解分布式系統,主要需要明白一下2個方面 1.分布式系統一定是由多個節點組成的系統。其中,節點指的是計算機伺服器,而且這些節點一般不是孤立的,而是互通的。2.這些連通的節點上部署了我們的節點,並且相互的操作會有協同。分布式系統對於使用者而言,他們面對的就是乙個伺服器,提供使用者需要的服務而已,而實...