無監控,不運維。好了,廢話不多說,下麵都是乾貨。 警告:流量黨勿入,圖片太多!!! 項目實戰系列,總架構圖 http://www.cnblogs.com/along21/p/8000812.html 實驗前準備: ① ntpdate 192.168.30.1 同步時間 ② 關閉防火牆、selinux ...
無監控,不運維。好了,廢話不多說,下麵都是乾貨。
警告:流量黨勿入,圖片太多!!!
項目實戰系列,總架構圖 http://www.cnblogs.com/along21/p/8000812.html
③ vim /etc/hosts 每個機器都設置hosts,以解析主機名;DNS也行
192.168.30.107 server.along.com 192.168.30.7 node1.along.com 192.168.30.2 node2.along.com 192.168.30.3 node3.along.com zbproxy.along.com
實戰一:zabbix的搭建與部署
1、下載安裝
① 去官網,下載自己需要的版本https://www.zabbix.com/download
zabbix-agent-3.4.4-2.el7.x86_64.rpm 監控(安裝在被監控者,當然監控自己也需要監控)
zabbix-get-3.4.4-2.el7.x86_64.rpm 在server端,手工連接agent 獲取數據的,做測試的
zabbix-java-gateway-3.4.4-2.el7.x86_64.rpm 基於JAM監控時使用的
zabbix-proxy-mysql-3.4.4-2.el7.x86_64.rpm
zabbix-proxy-pgsql-3.4.4-2.el7.x86_64.rpm
zabbix-proxy-sqlite3-3.4.4-2.el7.x86_64.rpm
zabbix-sender-3.4.4-2.el7.x86_64.rpm 安裝在agent端,主動監控模式下,向server端發送測試數據使用的
server 取決自己的存儲系統選mysql 或 pgsql:
zabbix-server-mysql-3.4.4-2.el7.x86_64.rpm
zabbix-server-pgsql-3.4.4-2.el7.x86_64.rpm
zabbix-web-3.4.4-2.el7.noarch.rpm web部位,核心包
zabbix-web-japanese-3.4.4-2.el7.noarch.rpm 專用日語的web部位
zabbix-web-mysql-3.4.4-2.el7.noarch.rpm
zabbix-web-pgsql-3.4.4-2.el7.noarch.rpm
zabbix-release-3.4-2.el7.noarch.rpm zabbix下載的源
① 安裝官方的源
zabbix-release-3.4-2.el7.noarch.rpm 直接下載源
rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
yum repolist 可以查看自己的倉庫有zabbix源了
② 安裝
yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql
2、初始化資料庫
(1)vim /etc/my.cnf.d/server.cnf 子配置文件
[server] skip_name_resolve = on innodb_file_per_table = on innodb_buffer_pool_size = 256M #buffer緩存大小 max_connections = 2000 #最大連接數 log-bin = master-log #二進位日誌
(2)建資料庫,授權,刷新許可權
MariaDB [(none)]> create database zbxdb character set 'utf8'; MariaDB [(none)]> grant all on zbxdb.* to zbxuser@'192.168.30.%' identified by 'zbxpass'; MariaDB [(none)]> flush privileges;
rpm -ql zabbix-server-mysql 下包的時候,帶有資料庫文件的解壓包
cp /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz ./ 考到root下,解壓
mysql -uroot -p zbxdb < create.sql 導入數據
3、配置,開啟zabbix-server
cp zabbix_server.conf{,.bak} 先備份,養成好習慣
grep -i "^####" zabbix_server.conf 查看有幾個配置段
GENERAL PARAMETERS 一般性配置
ADVANCED PARAMETERS 高級配置
LOADABLE MODULES 可載入模塊
TLS-RELATED PARAMETERS 配置加密的東西,如私鑰證書等
grep -i "^###" zabbix_server.conf 可以查看一下需要配置的選項
ListenPort=10051 預設埠10051 SourceIP= 發採用數據請求的埠,可以加多個地址,需要的話自己設置
② 資料庫的配置 DBHost=192.168.30.107 資料庫對外的地址 DBName=zbxdb 資料庫中庫的名字 DBUser=zbxuser 資料庫授權的用戶 DBPassword=zbxpass 密碼 DBPort=3306 資料庫服務埠
systemctl start zabbix-server.service
4、設置zabbix的web 服務
vim zabbix.conf 額外為php5 設置了一些參數
# php_value date.timezone Europe/Riga php的時區必須設置,不過有兩處可以設置,在php的配置文件中設置,或在這裡設置;在這裡設置,只對zabbix有效
vim /etc/php.ini 在php的配置文件中設置,代表對所有使用php的都生效,我就在這裡設置了
5、在web 頁面初始化設置
① web登錄 http://192.168.30.107/zabbix
Zabbix server is running |
Yes |
192.168.30.107:10051 |
① Number of hosts (enabled/disabled/templates) |
39 |
0 / 1 / 38 |
② Number of items (enabled/disabled/not supported) |
0 |
0 / 0 / 0 |
③ Number of triggers (enabled/disabled [problem/ok]) |
0 |
0 / 0 [0 / 0] |
④ Number of users (online) |
2 |
2 |
⑤ Required server performance, new values per second |
0 |
① 監控主機:已經啟用被監控的主機數量,已經配置好缺被禁止主機數,自帶模板數
④ 當前zabbix有幾個用戶:現在是一個是來賓,一個是管理員
⑤ 重點關註的nvps 每秒的新值(根據我們定義的監控項,每秒採集過來多少新數據,平均值):
(1)如果英語不好,可以切換為中文,但推薦使用英文,為了更好的講解,博主使用中文示範
6、被監控node zabbix的安裝配置
yum -y install zabbix-agent zabbix-sender 只需安裝這兩個包就行
① grep -i "^####" zabbix_agentd.conf 先查看一下配置段
GENERAL PARAMETERS 一般配置,有兩個子配置段
Passive checks related 被動介面
Active checks related 主動介面
USER-DEFINED MONITORED PARAMETERS 用戶自定義的監控參數(必要,高級的特性)
LOADABLE MODULES
TLS-RELATED PARAMETERS
② grep -i "^###" zabbix_agentd.conf 查看選項
① EnableRemoteCommands=0 是否允許執行遠程命令,預設是不允許的,有安全風險
② 指定伺服器主機,可以指定多個 Server=192.168.30.107 ③ 自己的今天IP和埠 ListenPort=10050 自己的監聽埠 ListenIP=0.0.0.0 允許監聽在本機的地址,0.0.0.0 是監聽所有 ④ agent個數,被監控項有很多時,可以多寫幾個 StartAgents=3 預設3個,優化時使用 ⑤ 主動監控的機器地址是誰 StartAgents=192.168.30.107 ⑥ 能被server段解析的主機名,寫IP也行 Hostname=node1.along.com 下邊都是預設值就好
systemctl start zabbix-agent.service
7、node1加入到監控中
創建一個屬於mysrvs 主機組的node1.along.com 主機,若介面寫主機,要開啟DNS解析
8、對node1主機設置
創建3個 CPU Utils 、Memory Stats、Network Interface Stats 的應用集
設置名為 rate of interrupt 的監控項 items
① key鍵值:內建key 、自定義key;對應的是命令;伺服器自動執行key,就相當於採集數據
每一個key 都對應,能在客戶端/agent端,執行的命令;該命令能幫我們取回關係型數據
在命令行 zabbix_get -s 192.168.30.7 -p 10050 -k "system.cpu.intr"
對於非關鍵型指標,不要太頻繁,使伺服器壓力很大;推薦5分鐘,或以上
實戰二:zabbix 基礎操作
1、設置items監控項,採集信息
(1)對node1 添加名為rate of packets(in) 入站包的個數 的items監控項
① key 值選的是: net.if.in[if,<mode>]網路介面上傳流量統計;可以加參數
① 設置rate of packets(out) 出站包的個數,因為和in 很相似,可以克隆再設置
2、設置trigger 觸發器
① 界定某特定的item採集到的數據的非合理區間或非合理狀態:邏輯表達式
OK:正常 狀態 --> 不滿足閾值(不合理區間)為OK
PROBLEM:非正常狀態 --> 滿足閾值
nodata():沒有數據
last():最近幾次的平均值
date()
time()
now()
dayofmonth()
...
註意:常用nodata()、last();能用數值採集的結果保存,就不要用字元串;電腦處理數值要快的多
3、設置觸發器的依賴關係
例如,當某網關主機不可用時,其背後的所有主機都將無法正常訪問
如果所有主機都配置了觸發器並定義了相關的通知功能,相關人員將會接收到許多告警信息,這既不利於快速定位問題,也會浪費資源
正確定義的觸發器依賴關係可以避免類似情況的發生,它將使用通知機制僅發送最根本問題相關的告警
② 註意:目前zabbix 不能夠直接定義主機間的依賴關係,其依賴關係僅能通過觸發器來定義
4、設置Media 媒介
Media:媒介,告警信息的傳遞通道;任何用戶收到報警信息,都需要有媒介的埠
類型:下麵3個中國都沒實現,中國可以實現微信,需要特殊插件
Email:郵件
Script:自定義腳本,每一個script都是一個媒介
SMS:簡訊,只適用於北美地區
Jabber:
Ez Texting:
接收信息的目標為zabbix用戶:
需要用戶上定義對應各種媒介通道的接收方式;
(2)定義一個media ,可以在email 模板上直接修改
5、設置Actions 動作
yum -y install redis 下載一個redis 服務做實驗
② 因為要執行動作時需遠程操作,給admin 用戶設置sudo許可權
zabbix ALL=(ALL) NOPASSWD: ALL 允許zabbix用戶能在所有主機,以所有人的身份執行所有命令
Defaults !visiblepw 預設所有命令要依靠tty執行,先註釋掉
b) vim zabbix_agentd.conf 設置agent允許執行遠程命令
EnableRemoteCommands=1 允許執行遠程命令
LogRemoteCommands=1 把遠程執行的命令記錄在日誌中
systemctl restart zabbix-agent.service 重啟zabbix-agent服務
net.tcp.listen[port] 監聽本地listen:檢查 TCP埠是否處於偵聽狀態,返回 0 - 未偵聽;1 - 正在偵聽
net.tcp.port[<ip>,port]:server遠程掃描redis服務:檢查是否能建立 TCP 連接到指定埠,返回 0 - 不能連接;1 - 可以連接
net.tcp.service[service,<ip>,<port>] 直接指定服務:檢查服務是否運行並接受 TCP 連接,返回 0 - 服務關閉;1 - 服務運行
6、測試動作
② 執行動作,10s,第一個action 1 執行成功,problem問題解決
因為第一個action1 執行成功,所以action 2沒有執行
③ 恢復操作執行了,zabbix server 收到了mail "Resolved"
systemctl stop redis && rpm -e redis 停止服務,且刪除redis
實戰三、展示介面的實現
1、Graphs 圖形的設置
設置一個名為interface traffic packets 的圖形
工作時間:白色
非工作時間:黑色
① interface traffic bytes 加入2個監控項
2、定義Screens 聚合圖形
3、把graphs 圖形加入到screens 屏幕中
4、多個screens可以做成幻燈片
5、Maps 拓撲圖
Local network 自帶的maps 拓撲圖;用處不是想象中那麼大,就不講了
實戰四、Templates 模板和macro 巨集
1、Templates 模板
主機配置模板:用於鏈接至目標主機實現快速監控管理;
link, unlink, unlink and clear
模板可繼承;
主機link多個模板必須註意,模板們不能含有相同的item key。trigger和graphs中使用的items不能是來自多個模板。
③ complete 模板,應用集application、監控項items、觸發器triggers、圖形graphs、屏幕screens、自動發現discover rules、web檢測web scenarios。
模板complete 的一系列添加設置,和主機host 幾乎一模一樣,但是不會直接生效、採集數據;只有鏈接至主機才能生效、採集數據
區別:主機介面;complete 沒有;host 有
(4)不想在host主機中使用模板,可以取消鏈接 或 取消並清除
如果有很多屬於同一組內的主機host,想快速基於某模板監控,組group添加模板
2、巨集:macro,預設的文本替換模式
全局:Administration --> General --> Macros ,對所有主機、所有模板都有效,優先順序很低
模板:編輯模板 --> Macros ,對所有鏈接至此模板的主機都有效
主機:編輯主機 --> Macros ,僅對單個主機有效
內建巨集:調用 {MACRO_NAME}
自定義:{$MACRO_NAME} ;命名方式:大寫字母、數字和下劃線
https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location
註意:巨集的優先順序:host 主機巨集 > complete 模板巨集 > 全局巨集
下篇zabbix 操作進階更精彩~~~