zabbix自動發現主機,自動註冊,自動拉取

一、zabbix自動發現:

zabbix自動發現主機,可以在ansible安裝好zabbix客戶端後,服務器能直接發現客戶端。

1、在配置--自動發現--創建發現規則

2、

cb4f9ed148d4334ba13d64b2f19d896e.png-wh_

創建一個規則,名字自定義,ip範圍是想要發現的主機範圍。時間間隔,每多久發現一次。檢查,建議用uptime,這樣表明能用zabbix的自帶的鍵值都能監控到,就可以添加該主機了。設置準則就不要用ip地址了,會出錯的。然後更新就可以了。

3、

55780ee404aa97162d2e85edb2b17566.png-wh_

接下來創建動作,就是出發規則,右上角有一個創建動作,但是先選擇自動發現規則,再創建動作:

30076bfc3b6553e5dba249cb4fd2dc05.png-wh_

4、

bce1f320f8ff6006d0628d4f2f39c0db.png-wh_

首先選擇觸發條件爲自動發現規則,然後在點選擇,選擇我們剛剛創建的發現規則:

6bb765a55450cbce3bce99c57a74de7b.png-wh_

5、

d63f15f3ee93f9a590200309f44821a7.png-wh_

接下來是操作,也就是你的動作主要要做什麼,我添加了3點,在操作細節那裏添加,分別是把發現的主機添加進來,第二點是發主機添加到test組裏,第三點是給主機與一個模板關聯。最後點更新就可以了。

6、

[root@centos-test ansible]# cat send_conf.yaml 

- hosts: zabbixclient

  tasks:

  - name: copy config

    copy: src=/usr/local/zabbix/etc/zabbix_agentd.conf.d/tcpstatus.conf  dest=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

    notify: reload zabbix

  handlers:

  - name: reload zabbix

    shell: /etc/init.d/zabbix_agentd restart

我是用ansible安裝zabbix客戶端的,會把本機的配置文件推過去,以上是把自定義的鍵值推過去的。其實每個客戶端添加完鍵值後都要重啓,我把本機的zabbix客戶端配置文件推過去,相當於更新了配置,所以寫一條觸發條件,當copy過去的文件不一樣時,就會重啓客戶端,這樣就可以直接在zabbix監控網頁看到圖形了。

7、


382b0257440d27d966eb1c39be688ec3.png-wh_

然後在配置--主機那裏就可以看到了,有兩個自己發現並添加的主機,他們有連接模板了。

8、

9dc8bcef5c7ae4f1eeb8ca43cc464a4e.png-wh_

可以看到新添加的主機有圖出現了。


二、zabbix自動註冊:

zabbix客戶端搭建好後,自動註冊到zabbix服務端,這樣可以降低zabbix服務端的負載。

1、在客戶端的配置文件裏面更改參數:

[root@centosa ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
ServerActive=192.168.40.5  ##改成指向服務器。
Hostname=centosa   ##改成自己的主機名


更改完後重啓客戶端:

[root@centosa ~]# /etc/init.d/zabbix_agentd restart


2、zabbix頁面設置自動註冊:

de6efd0c6a1b114b00987771f73360c2.jpg-wh_

在配置--》動作,把事件源改爲自動註冊,然後創建動作:

7e4c72ad97b643a6b995852edc592c21.jpg-wh_

先給一個動作的名稱,然後在操作這裏添加3個新的操作,分別是添加主機,然後添加到主機羣,最後選一個模板連接。


3、最後在配置--》主機,等待一會就可以看到主機自動註冊了:

1455f94c6d57e48ef87ccdcbcaa7ade1.jpg-wh_


三、zabbix自動拉取down掉的服務:

讓zabbix監控web服務,然後如果web服務停止了,讓zabbix拉取該服務。

1、在配置文件更改參數:

[root@centosa zabbix_agentd.conf.d]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
EnableRemoteCommands=1   ##允許遠程命令
LogRemoteCommands=1   ##遠程命令日誌

自定義一個監控httpd狀況的key:

[root@centosa zabbix_agentd.conf.d]# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/web.conf 
UserParameter=web_check,ps -ef | pgrep httpd | wc -l
[root@centosa zabbix_agentd.conf.d]# /etc/init.d/zabbix_agentd restart

key值爲web_check,創建完後重啓服務,在zabbix服務端測試一下:

[root@centos-test ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.40.12 -k web_check
6


2、在zabbix網頁添加監控項,然後添加觸發器:

d204b7148e2260a33260528af8bc7d27.jpg-wh_

在配置--》主機選中相應的zabbix客戶端,然後進入監控項,添加一個監控項,給一個名稱,然後把相應的鍵值寫進去,然後添加就可以了,當然可以添加圖形看看監控的情況:

199cec14d6390811aefada1aa91d6a38.jpg-wh_

選中圖形,然後添加一個圖形,監控項選擇剛剛添加的那個監控項就可以了。

在檢測中--》圖形,然後選擇相應的主機和監控項就可以看到了,當然接下來要創建一個觸發器:

bee9f75ee0e7abde49547147fc80eff4.jpg-wh_

在配置--》主機選中相應主機的觸發器,然後添加觸發器,然後選擇一個表達式(當最新監測到的值等於0時,就觸發觸發器),最後添加就可以了。


3、添加動作,當檢測到的值爲0,就表示httpd掛了,zabbix將自動拉取服務:

4cbd4451617646182b1a82acefcf434f.jpg

在配置--》動作這裏添加一個觸發器動作,然後觸發條件選擇相應的觸發器。

a8530d617bc444c93955deaa332b8517.jpg

在操作這裏選擇類型爲遠程命令,目標列表爲當前列表,類型是自定義腳本,在zabbix客戶端執行,命令是sudo bash /tmp/start.sh,然後更新就可以了。


4、因爲執行是以zabbix用戶,所以要sudo,而且需要在visudo裏面進行相應配置:

[root@centosa ~]# visudo
root    ALL=(ALL)       ALL
zabbix  ALL=(root)   NOPASSWD: /usr/bin/bash   ##在root下面添加zabbix權限,及在哪個目錄下的哪個命令,設置使用sudo時不用密碼,

然後創建一個腳本用來啓動httpd:

[root@centosa ~]# cat /tmp/start.sh 
#!/bin/bash
systemctl start httpd


5、測試:

先停止httpd服務:

[root@centosa ~]# systemctl stop httpd

然後查看網頁的報表--》動作日誌:

e6441c2bcc89bc6d22f34ec4a42d2580.jpg

看到腳本被執行了。然後回去客戶端看一下httpd的狀態:

[root@centosa ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-11-01 16:25:14 CST; 1s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 6524 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─6524 /usr/sbin/httpd -DFOREGROUND
           ├─6525 /usr/sbin/httpd -DFOREGROUND
           ├─6526 /usr/sbin/httpd -DFOREGROUND
           ├─6527 /usr/sbin/httpd -DFOREGROUND
           ├─6528 /usr/sbin/httpd -DFOREGROUND
           └─6529 /usr/sbin/httpd -DFOREGROUND
Nov 01 16:25:14 centosa systemd[1]: Starting The Apache HTTP Server...
Nov 01 16:25:14 centosa httpd[6524]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.4...s message
Nov 01 16:25:14 centosa systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章