工作一波停一波起,感覺離開.net好久了。
最近工作中發現服務器監視都是用了zabbix,對於我這類不懂的狠狠彌補了一下知識。
無意發現zabbix帶有api,就想開發個工具調用api來着。可是api調用在host.get就卡住了,就是不返回理想結果。
種種結果決定在個人PC上搭建個zabbix調試,然后各種問題就來了。
Zabbix安裝流程概述
-
安裝Zabbix部署包
-
安裝Mysql數據庫
-
初始化數據庫
-
配置並啟動Zabbix Server進程
-
編輯Zabbix前端的PHP配置
- 前端Web配置
- 配置Zabbix agent進程
Zabbix是什么
Zabbix是一個企業級的、開源的、分布式的監控套件
Zabbix可以監控網絡和服務的監控狀況. Zabbix利用靈活的告警機制,允許用戶對事件發送基於Email的告警. 這樣可以保證快速的對問題作出相應. Zabbix可以利用存儲數據提供傑出的報告及圖形化方式. 這一特性將幫助用戶完成容量規划.
Zabbix支持polling和trapping兩種方式. 所有的Zabbix報告都可以通過配置參數在WEB前端進行訪問. Web前端將幫助你在任何區域都能夠迅速獲得你的網絡及服務狀況. Zabbix可以通過盡可能的配置來扮演監控你的IT基礎框架的角色,而不管你是來自於小型組織還是大規模的公司.
Zabbix是零成本的. 因為Zabbix編寫和發布基於GPL V2協議. 意味着源代碼是免費發布的.
Zabbix特性
數據收集¶
- 可用性及性能檢測
- 支持SNMP(trapping及polling)、IPMI、JMX監控
- 自定義檢測
- 自定義間隔收集收據
- server/proxy/agents吸能
靈活的閥值定義¶
- 允許靈活地自定義問題閥值,Zabbix中稱為觸發器(trigger), 存儲在后端數據庫中
高級告警配置¶
- 可以自定義告警升級(escalation)、接收者及告警方式
- 告警信息可以配置並允許使用宏(macro)變量
- 通過遠程命令實行自動化動作(action)
實時繪圖¶
- 通過內置的繪圖方法實現監控數據實時繪圖
擴展的圖形化顯示¶
- 允許自定義創建多監控項視圖
- 網絡拓撲(network maps)
- 自定義的面板(screen)和slide shows,並允許在dashboard頁面顯示
- 報告
- 高等級(商業)監控資源
歷史數據存儲¶
- 數據存儲在數據庫中
- 歷史數據可配置
- 內置數據清理機制
配置簡單¶
- 主機通過添加監控設備方式添加
- 一次配置,終生監控(譯者注:除非調整或刪除)
- 監控設備允許使用模板
模板使用¶
- 模板中可以添加組監控
- 模板允許繼承
網絡自動發現¶
- 自動發現網絡設備
- agent自動注冊
- 自動發現文件系統、網卡設備、SNMP OID等
快速的web接口¶
- web前端采用php編寫
- 訪問無障礙
- 你想怎么做就能做么做
- 審計日志
Zabbix API¶
- Zabbix API提供程序級別的訪問接口,第三方程序可以很快接入
權限系統¶
- 安全的權限認證
- 用戶可以限制允許維護的列表
全特性、agent易擴展¶
- 在監控目標上部署
- 支持Linux及Windows
二進制守護進程¶
- C開發,高性能,低內存消耗
- 易移植
具備應對復雜環境情況¶
- 通過Zabbix proxy可以非常容易的創建遠程監控
Zabbix安裝
1,安裝源碼庫配置部署包
安裝源碼庫配置部署包。這個部署包包含了yum配置文件。
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
2,安裝Zabbix部署包
yum install zabbix-server-mysql zabbix-web-mysql
3,安裝Zabbix Agent
yum install zabbix-agent –y
4,安裝Mysql數據庫
- 安裝下載文件工具
yum install wget -y
- 根據Linux發行版本(CentOS、Fedora都屬於紅帽系),從mysql官方(http://dev.mysql.com/downloads/repo/yum/)獲取Yum Repository
wget -i http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
-
安裝MySQL的Yum Repository
yum install mysql57-community-release-el7-11.noarch.rpm
- 安裝MySQL數據庫的服務器版本
yum install mysql-community-server -y
- 啟動數據庫:systemctl start mysqld.service
使用命令systemctl status mysqld.service
查看MySQL數據庫啟動后的服務狀態:
-
獲取初始密碼
使用YUM安裝並啟動MySQL服務后,MySQL進程會自動在進程日志中打印root用戶的初始密碼:
-
修改root用戶密碼
使用上面獲取的root用戶的初始密碼,然后進行修改:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
- 大寫/小寫/數字/符號必須都有
- 至少8字符以上
5,創建zabbix 數據庫,並授權zabbix用戶,以及設置zabbix用戶登陸密碼
# mysql –uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'Zabbix@1';
mysql> quit;
6,進入zabbix數據庫腳本導入的目錄,將庫數據導入zabbix數據庫中.
zcat /usr/share/doc/zabbix-server-mysql-3.4.2/create.sql.gz|mysql -uzabbix -p zabbix
查看插入數據
use zabbix;show tables
7,修改zabbix-server的配置文件
修改完成后,啟動zabbix-server 服務
8,編輯Zabbix前端的PHP配置
啟動httpd將服務添加開機啟動項
systemctl start httpd
systemctl enable httpd
9,客戶端訪問web安裝頁面:http://192.168.59.128/zabbix
web界面會自動檢查所有的條件是否滿足,未滿足的會提示。
配置數據庫連接 。
默認不需要修改,只需要自己隨便設置一個name就可以了。
顯示成功安裝zabbix,並告知配置文件及路徑 。
登錄界面,默認用戶名Admin,默認密碼zabbix。
改成中文顯示 。
首次登陸需要啟用主機 。
10,配置zabbix-agent
sed -i 's/Server=127.0.0.1/Server=192.168.1.125/g' /etc/zabbix/zabbix_agentd.conf
sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.1.125/g' /etc/zabbix/zabbix_agentd.conf
sed -i "s/Hostname=Zabbix server/Hostname=agent1/g" /etc/zabbix/zabbix_agentd.conf
service zabbix-agent restart
點擊Templates 設置關聯模板Template OS Linux 並add。
總結
總算是安裝上去了,感覺挺麻煩的,如果有docker安裝文件就好了。接下來可以慢慢研究API的工具了。
待解決問題
zabbix-server居然啟動失敗
PID file /run/zabbix/zabbix_server.pid not readable (yet?)
上網收了不少方法都沒法解決,有經驗的幫忙解答啊