zabbix的安装与部署(proxy、睿象云)
一、簡介
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等平臺上。
Zabbix 軟件能夠監控眾多網絡參數和服務器的健康度、完整性。Zabbix 使用靈活的告警機制,允許用戶為幾乎任何事件配置基于郵件的告警。這樣用戶可以快速響應服務器問題。Zabbix 基于存儲的數據提供出色的報表和數據可視化功能。這些功能使得 Zabbix 成為容量規劃的理想選擇。
Zabbix 支持主動輪詢(polling)和被動捕獲(trapping)。Zabbix所有的報表、統計數據和配置參數都可以通過基于 Web 的前端頁面進行訪問。基于 Web 的前端頁面確保您可以在任何地方訪問您監控的網絡狀態和服務器健康狀況。適當的配置后,Zabbix 可以在監控 IT 基礎設施方面發揮重要作用。無論是對于有少量服務器的小型組織,還是擁有大量服務器的大企業而言,同樣適用。
二、安裝配置
官網按官網步驟來即可
這里用的是4.0版本
1.添加 Zabbix 軟件倉庫
RHEL 7:
[root@server1~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm下載之后的到一個zabbix的yum源
由于官網上下載速度較慢,所以用阿里云的鏈接,repo配置如下
2.安裝配置Server后端
[root@server1 yum.repos.d]# yum install zabbix-server-mysql [root@server1 yum.repos.d]# yum install -y mariadb-server [root@server1 ~]# systemctl enable --now mariadb.service3.創建數據庫
mysql
字符集utf8和utf8_bin排序規則是Zabbix服務器與MySQL數據庫一起正常工作所必需的。
[root@server1~ ] # mysql mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create user 'zabbix'@'localhost' identified by 'westos'; mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost'; mysql> quit;4.導入數據
使用 MySQL 來導入 Zabbix server 的初始數據庫 schema 和數據,
cd /usr/share/doc/zabbix-server-mysql-4.0.27/ zcat create.sql.gz | mysql -uzabbix -pwestos zabbix5.為 Zabbix server 配置數據庫
編輯 zabbix_server.conf 文件以使用已創建的數據庫。
# vim /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=password在 DBPassword 參數中輸入由 MySQL創建的 Zabbix 數據庫密碼。
6.啟動 Zabbix server 進程
運行以下命令以啟動 Zabbix server 進程:
systemctl enable --now zabbix-server netstat -antlp 查詢端口是否開啟7.安裝 Agent
運行以下命令以安裝 Zabbix agent
yum install zabbix-agent -y systemctl enable --now zabbix-agent8.ZABBIX 前端配置
yum install php -y 要看清版本,安裝與zabbix匹配的版本,依賴性可以在阿里云里找,要與所安裝的php版本相對應 yum install zabbix-web-mysql php-bcmath-5.4.16-46.el7.x86_64.rpm php-mbstring-5.4.16-46.el7.x86_64.rpm -y對于 RHEL 7 和更高版本,Zabbix 前端的 Apache 配置文件位于 /etc/httpd/conf.d/zabbix.conf。
雖然已經配置了一些 PHP 參數。但是有必要取消 “date.timezone” 注釋,并為其 設置正確的時區 。
到這里我們后端前端就已經配置完成了,下面開始測試
在網頁上訪問http://172.25.1.1/zabbix
在這里我們可以看到當轉化為中文語言時,會出現中文亂碼的問題,下面我們來解決這個問題
下載好的字體文件 simkai.ttf
鏈接:simkai字體包 提取碼: a5dn
這里將全文的原來的graphfont換成simkai字體
三、新建主機
1.安裝Agent
在server2上我們安裝angent
我們直接將yum源傳給server2
2.修改配置文件
[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf [root@server2 ~]# systemctl restart zabbix-agent.service共修改3個位置,如下圖
查詢以下端口
3.手動添加主機
當我們查看日志時顯示not found,所以我們需要手動在zabbix web 頁面添加
選擇模板信息
當出現下圖這種狀態時,查看圖形有數據信息說明添加成功,
4 自動添加主機
現在我們再配置一臺Agent serve3 ,配置方法同server2相同
這里我們直接到添加環節
(一)自動發現
動作–>自動發現–>啟動
然后我們去主機那查看,我們可以看到server3已經在主機群組中了
(二)自動注冊
我們為了節省資源,就直接將剛才添加的server3刪除掉,然后將自動發現的規則停用
現在測試自動注冊
動作–>自動注冊–>動作主機名–>操作–>與添加到主機群組添加與模塊關聯
我們去主機那查看是否添加成功,如果沒有出現,重啟以下服務即可
四、使用API
1.API介紹
Zabbix API允許你以編程方式檢索和修改Zabbix的配置,并提供對歷史數據的訪問。它廣泛用于:
創建新的應用程序以使用Zabbix;
將Zabbix與第三方軟件集成;
自動執行常規任務。
Zabbix API是基于Web的API,作為Web前端的一部分提供。它使用JSON-RPC 2.0協議,這意味著兩件事:
該API包含一組獨立的方法;
客戶端和API之間的請求和響應使用JSON格式進行編碼。
2.結構
Zabbix API由許多名義上分組的獨立API方法組成。每個方法執行一個特定任務。例如,方法 host.create 隸屬于 host 這個API分組 ,用于創建新主機。歷史上,API分組有時被稱為“類”。
大多數API至少包含四種方法: get, create, update 和 delete ,分別是檢索,創建,更新和刪除數據,但是某些API提供一套完全不同的一組方法。
3.執行請求
當完成了前端的安裝配置后,你就可以使用遠程HTTP請求來調用API。為此,需要向 api_jsonrpc.php 位于前端目錄中的文件發送HTTP POST請求。例如,如果你的Zabbix前端安裝在 http://company.com/zabbix, 那么用HTTP請求來調用 apiinfo.version 方法就如下面這樣:
在訪問Zabbix中的任何數據之前,你需要登錄并獲取身份驗證令牌。這可以使用該 user.login 方法完成。讓我們假設你想要以標準Zabbix Admin用戶身份登錄。然后,你的JSON請求將如下所示:
[root@server1 ~]# curl -XPOST http://172.25.1.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d ' {"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"},"id": 1,"auth": null }' | python -m json.tool讓我們仔細看看示例請求對象。它具有以下屬性:
jsonrpc - API使用的JSON-RPC協議的版本; Zabbix API實現的JSON-RPC版本是2.0;
method - 被調用的API方法名;
params - 將被傳遞給API方法的參數;
id - 請求的任意標識符;
auth -用戶認證令牌; 因為我們還沒有一個,它的設置null。
如果你正確提供了憑據,API返回的響應將包含用戶身份驗證令牌:
4.檢索主機
[root@server1 ~]# vim zabbix.api curl -XPOST http://172.25.1.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d ' {"jsonrpc": "2.0","method": "host.get","params": {"output": ["hostid","host"],"selectInterfaces": ["interfaceid","ip"]},"id": 1,"auth":"09dc3830f5e6780328c9f4a6fc60c503" }' | python -m json.tool5. 刪除主機
object host.delete(array hosts)
該方法允許刪除主機
參數
(array) 要刪除的主機的ID.
快速查詢hostid ,直接點開主機,在網址中就可以找到
返回值,響應值
在WEB頁面我們可以看到server3已經成功刪除
6.創建主機
描述
對象 host.create(對象/數組 hosts)
這個方法可以用來創建主機.
curl -s -XPOST http://172.25.3.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d ' {"jsonrpc": "2.0","method": "host.create","params": {"host": "server3","interfaces": [{"type": 1,"main": 1,"useip": 1,"ip": "172.25.1.3","dns": "","port": "10050"}],"groups": [{"groupid": "2"}],"templates": [{"templateid": "10001"}]},"auth": "09dc3830f5e6780328c9f4a6fc60c503","id": 1 }' | python -m json.toolgroupid查詢方法
templateid查詢方法:
返回直
在web頁面查看server3是否添加成功
五、zabbix server 的nginx監控
1.搭建nginx
鏈接: nginx包 提取碼: vuck
[root@server3 ~]# tar nginx-1.18.0.tar.gz [root@server3 ~]# tar zxf nginx-1.18.0.tar.gz [root@server3 nginx-1.18.0]# yum install gcc pcre-devel opensll-devel -y [root@server3 nginx-1.18.0]# vim auto/cc/gcc 將debug下面注釋掉,最小安裝,節省資源 [root@server3 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-file-aio [root@server3 nginx-1.18.0]# make [root@server3 nginx-1.18.0]# make install [root@server3 sbin]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/ [root@server3 sbin]# vim /usr/local/nginx/conf/nginx.conflocation /status {stub_status on;access_log off;allow 127.0.0.1;deny all; } 為了測試,加這個模塊 [root@server3 nginx]# nginx [root@server3 nginx]# nginx -s reload 測試: [root@server3 nginx]# curl http://127.0.0.1/status Active connections: 1 server accepts handled requests1 1 1 Reading: 0 Writing: 1 Waiting: 0 也可以在其他主機進行壓測 [root@Sun_s ~]# ab -c10 -n 1000 http://172.25.1.3/index.html2.添加nginx的監控配置文件
[root@server3 nginx]# cd /etc/zabbix/zabbix_agentd.d [root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}' UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk 'NR==3{print $1}' UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk 'NR==3{print $2}' UserParameter=nginx.request,curl -s http://127.0.0.1/status | awk 'NR==3{print $3}' [root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent.service在server1里手動測試以下
[root@server1 ~]# yum install zabbix-get.x86_64 -y [root@server1 ~]# zabbix_get -s 172.25.1.3 -p 10050 -k "nginx.active" 1 [root@server1 ~]# zabbix_get -s 172.25.1.3 -p 10050 -k "nginx.accept" 1008 [root@server1 ~]# zabbix_get -s 172.25.1.3 -p 10050 -k "nginx.handled" 1009 [root@server1 ~]# zabbix_get -s 172.25.1.3 -p 10050 -k "nginx.request" 10103.添加監控項
加入剛才監控配置文件中寫入的幾個鍵值:nginx.active nginx.accept nginx.handled nginx.request
把剛才添加好的監控項添加到圖形里
創建圖形
添加監控項
查看圖形,當顯示出來數據就說明已經配置成功了,剛添加上可能需要等一會數據才能出來
六、zabbix server的mysql監控
1.配置mysql監控文件
由于之前server1有倉庫,為了節省資源,我們直接使用server1
只要讓agent可以通過mysql的密碼認證,在zabbix下建立隱藏文件,說明具體命令執行的用戶、密碼、socket:
2.添加模板
手動測試
只有有返回值說明就OK了
查看圖形
由于自帶的mysq模板監控項太少了,所以我們需要手動添加模板
3.從外部導入模板
- 下載需要的導入工具
- 鏈接:percona 提取碼: bru2
手動測試
此處可以取到值就說明配置成功,導入模板即可
注意
此處,如果進行過手動測試,會生成一個txt文件,這個文件生成的默認權限是root,因為訪問的時候是用zabbix用戶訪問的
所以要么把文件刪除掉,要么修改其權限。操作如下:
- 現在在web頁面導入模板
- 這個模板是我在網上下載好的,所以直接導入
- 鏈接: 模板提取碼: wysw
- 如有需要自行提取
在這里我們把之前的模板取消鏈接并清理掉
我們可以看到添加新模板之后,監控項增加至279個
如果沒有看到數據,清等待一會數據就會顯示出來。
七、zabbix server 的tomcat+jave 監控
1.在server2上搭建tomcat java 服務
鏈接:tomcat包 提取碼: jqj6
[root@server2 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/ [root@server2 ~]# cd /usr/local/ [root@server2 local]# ln -s apache-tomcat-7.0.37/ tomcat [root@server2 local]# ls [root@server2 local]# cd tomcat [root@server2 tomcat]# cd bin/ [root@server2 bin]# vim catalina.sh ##創建8888端口 CATALINA_OPTS='-Dcom.sun.management.jmxremote.port=8888-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false' [root@server2 bin]# yum install java-1.8.0-openjdk.x86_64 -y [root@server2 bin]# ./startup.sh [root@server2 bin]# netstat -antlp|grep 8888 tcp6 0 0 :::8888 :::* LISTEN 5607/java2.server1安裝JAVA網關
僅當您要監視JMX應用程序時才需要安裝Java網關。Java網關是輕量級的,不需要數據庫。
yum install -y zabbix-java-gateway.x86_64 -ycd /etc/zabbix/[root@server1 zabbix]# vim /etc/zabbix/zabbix_java_gateway.conf[root@server1 zabbix]# systemctl enable --now zabbix-java-gateway.service [root@server1 zabbix]# netstat -antlp| grep :10052 tcp6 0 0 :::10052 :::* LISTEN 1913/java端口ip
開啟10個監控項
在server端開啟java 網關相關的配置
等待一會,看是否出現,如果沒出現,請仔細核對配置文件信息
查看是否有數據,出現數據配置完成
八、Zabbix-agent主動模式 (全克隆)
在server3上操作這個全克隆
[root@server3 zabbix]# vim zabbix_agentd.conf [root@server3 zabbix]# systemctl restart zabbix-agent.service [root@server3 zabbix]# netstat -antlp | grep :10050這個選項打開之后,是保留了原來被動復制的三個監控項,使得原來的監控項變少
全克隆
點擊批量更新
把server3原來的模板刪除,添加新克隆的模板
九、proxy安裝配置
為了節省資源,我們將剛才的server3刪掉,將server3作為proxy
1.proxy 安裝
在server3上操作
先將主機名改成proxy,這樣方便做實驗,注意給其他主機的解析也要加上proxy
2.創建數據庫
編輯zabbix_proxy.conf 文件以使用已創建的數據庫。例如
[root@proxy ~]# systemctl disable --now zabbix-agent.service [root@proxy ~]# yum install -y zabbix-proxy-mysql.x86_64 [root@proxy ~]# yum install mariadb-server.x86_64 -y [root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf [root@proxy ~]# systemctl enable --now mariadb.service [root@proxy ~]# mysql MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin; MariaDB [(none)]> create user 'zabbix'@'localhost' identified by 'westos'; MariaDB [(none)]> grant all privileges on zabbix_proxy.* to 'zabbix'@'localhost'; [root@proxy ~]# vim zabbix_proxy.conf [root@proxy ~]# systemctl restart zabbix-proxy.service
3.導入數據
[root@proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-4.0.27/ [root@proxy zabbix-proxy-mysql-4.0.27]# zcat schema.sql.gz | mysql -uzabbix -pwestos zabbix_proxy4. 創建代理
這時我們發現server2的監控都灰了,是因為最開始配置的時候server指向的是server1端,所以需要修改配置文件
server2
proxy
編輯完配置文件記得重啟服務
建議使用重啟,因為在生產環境中要保證服務的正常運行
我們再重新查看狀態,已經重新起來了,這就說明已經配置成功
十、zabbix+睿象云
睿象云
測試:
當將server2 down 掉 ,因為server2中有一個觸發器
server2Agent ping:Up (1)Zabbix agent on server2 is unreachable for 5 minutes
方便做實驗
首先將報警媒介的其他選項給停用掉
1創建監控工具
在Cloud Alert界面創建zabbix應用,并獲取 appkey 。
2在zabbix server端安裝CA探針
可以參考zabbix告警集成
- 獲取睿象云 Cloud Alert agent包:
鏈接: ca探針包 提取碼: k9p3 - 解壓、安裝。
處填入您新建應用時生成的appkey
在安裝過程中根據安裝提示,輸入zabbix管理/監控/web登陸地址、管理員用戶名、密碼。
當顯示安裝成功,就說明已經配置完成
3 在睿象云添加策略
CA–>配置–>新建通知
等待一會,在zabbix頁面也會出現問題
查看睿象云的告警位置,有認領流程
收到的微信通知
總結
以上是生活随笔為你收集整理的zabbix的安装与部署(proxy、睿象云)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis服务的部署
- 下一篇: saltstack 自动化运维管理