第十九章 Linux監控平臺搭建
19.1 Linux監控平臺介紹
19.2 zabbix監控介紹
19.3 安裝zabbix(上)
•vim /etc/my.cnf //需要增加配置
character_set_server = utf8
19.4 安裝zabbix(中)
vim /etc/zabbix/zabbix_server.conf
vim /etc/php.ini
Admin
zabbix
更改Admin密碼和語言
19.5 忘記Admin密碼如何做
19.6 安裝zabbix(下)
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum install -y zabbix-agent
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
19.7 主動模式和被動模式
19.8 新增監控主機
19.9 新增自定義模板
1)選擇一個模板,把需要的監控項複製到aming模板裡
群組裡面選擇Template
2)新增自動發現項的方法
連結模板-->選擇-->新增-->更新-->再取消連結
點取消連結,就可以把不用的監控項刪除了
19.10 處理圖形中的亂碼
把上面的aming 模板應用到主機上
從windows上覆制一個文字型檔,上傳到伺服器上,做軟連結,然後重新整理。
vim /usr/share/zabbix/include/defines.inc.php
新增新的圖形
19.11 自動發現
檢測不到,是因為間隔時間太長
為了更快的生效,重新啟動server端和agent端
更改影象
選擇模板
選擇自動發現規則——》network interface discovery
選擇Network traffic on
然後就可以更改線條和顏色了
更改完以後的效果
19.12 新增自定義監控專案
客戶端指令碼並賦許可權
更改配置檔案
定義監控項的key為my.estab.count,後面的[*]裡面寫指令碼的引數,如果沒有引數則可以省略,指令碼為/usr/local/sbin/estab.sh
vim /etc/zabbix/zabbix_agentd.conf
重啟agent服務
systemctl restart zabbix-agent.service
服務端驗證
監控中心建立監控項
建立圖形
建立觸發器
19.13 配置郵件告警(上)
指令碼路徑
指令碼內容
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):
gserver = 'smtp.qq.com'
gport = 25
try:
# msg = MIMEText(unicode(content).encode('utf-8')) //如果傳送的郵件有亂碼,可以嘗試把這行改成如下:
msg = MIMEText(content,'plan','utf-8')
msg['from'] = mailfrom
msg['to'] = mailto
msg['Reply-To'] = mailfrom
msg['Subject'] = subject
smtp = smtplib.SMTP(gserver, gport)
smtp.set_debuglevel(0)
smtp.ehlo()
smtp.login(username,password)
smtp.sendmail(mailfrom, mailto, msg.as_string())
smtp.close()
except Exception,err:
print "Send mail failed. Error: %s" % err
def main():
to=sys.argv[1]
subject=sys.argv[2]
content=sys.argv[3]
##定義QQ郵箱的賬號和密碼,你需要修改成你自己的賬號和密碼(請不要把真實的使用者名稱和密碼放到網上公開,否則你會死的很慘)
sendqqmail('[email protected]','aaaaaaaaaa','[email protected]',to,subject,content)
if __name__ == "__main__":
main()
#####指令碼使用說明######
#1. 首先定義好指令碼中的郵箱賬號和密碼
#2. 指令碼執行命令為:python mail.py 目標郵箱 "郵件主題" "郵件內容"
指令碼後面跟的郵箱地址,測試郵件
19.14 配置郵件告警(下)
建立使用者
增加使用者許可權
選擇所以組
再檢視使用者的許可權
新增動作
新增操作
操作--》新的裡面的內容
新增恢復操作
19.15 測試告警
自定義觸發器
課堂串講
19.1 Linux監控平臺介紹
19.2 zabbix監控介紹
19.3/19.4/19.6 安裝zabbix
19.5 忘記Admin密碼如何做
19.1 Linux監控平臺介紹
監控
對於網站來說是非常重要,即使是大公司由於監控做得不到位,最終會導致因為伺服器的不夠穩定,客戶對其不夠信任,而流失大量客戶。
通常監控軟體有下面幾款,cacti
、nagios
、zabbix
、smokeping
、open-falcon
等等。
cacti、smokeping偏向於基礎監控
(網路裝置),成圖非常漂亮,更加適合在IDC機房使用。
其中nagios和zabbix流行度比較高。幾年前還是使用nagios,而近幾年zabbix越來越受到歡迎。主要是因為zabbix配置比nagios簡單得多,其優勢也比nagios多。
open-falcon
為小米公司開發,開源後受到諸多大公司和運維工程師的追捧,適合大企業,滴滴、360、新浪微博、京東等大公司在使用這款監控軟體,他是基於zabbix的監控思想
而開發的,非常值得研究。
cacti、nagios、zabbix服務端監控中心,即支援web頁面來監控網站,因此需要php環境
支援,其中zabbix和cacti都需要mysql
作為資料儲存,nagios不用儲存歷史資料,注重服務或者監控項的狀態,zabbix會獲取服務或者監控專案的資料,會把資料記錄到資料庫裡,從而可以成圖。
總之,安裝zabbix
時要先安裝好MySQL
,其中PHP
和httpd
會自帶安裝
上,後續以介紹zabbix為主。
19.2 zabbix監控介紹
zabbix採用的是C/S
架構,其中客戶端用來採集資料,在上報給服務端。zabbix基於C++開發,監控中心支援web介面配置和管理。理論上單server節點可以支援上萬臺客戶端。但如果監控的專案太多了,可以使用代理zabbix-proxy
來採集資料,再讓他來上報給監控中心。其最新版本3.4,官方中文文件在 https://www.zabbix.com/manuals 方便學習配置zabbix
- zabbix有服務5個元件
zabbix-server
監控中心,接收客戶端上報資訊,負責配置、統計、操作資料資料儲存
存放資料,比如mysqlweb介面
也叫web UI,在web介面下操作配置是zabbix簡單易用的主要原因zabbix-proxy
可選元件,它可以代替zabbix-server的功能,減輕server的壓力zabbix-agent
客戶端軟體,負責採集各個監控服務或專案的資料並上報。分主動模式和被動模式
zabbix工作流程
使用web頁面來新增監控主機到監控中心,然後再對其配置監控專案。被監控的伺服器和監控中心通訊了,監控中心就會採集資料並存入到資料庫中。監控中心就會對採集的資料值進行判斷是否超多告警的規則,並進行告警。
19.3/19.4 安裝zabbix
準備兩臺機器,一臺服務端 一臺客戶端
服務端:kun05 192.168.80.104
客戶端:kun03 192.168.80.102
配置服務端
由於epel中的zabbix版本比較久,因此我們自己去官網上下載好zabbix的倉庫 並安裝他們
官網下載地址 www.zabbix.com/download
找到對應的版本
根據官方的提示來複制下面的路徑到服務端上
步驟
1.下載官方給出的epel源包並安裝
|
|
在/etc/yum.repos.d/
中就會多了個倉庫zabbix.repo
該倉庫可以指定下載對應的zabbix版本
|
|
2.分別安裝zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
|
|
zabbix-agent
zabbix客戶端軟體zabbix-get
zabbix服務端上工具 ,可以獲得客戶端上監控專案的資料zabbix-server-mysql
zabbix監控中心所需的對應MySQL資料(用於匯入資料到自建的zabbix庫中)zabbix-web
web介面zabbix-web-mysql
web介面和MySQL的相關的資料
服務端上才需要安裝以上的包 客戶端只要安裝zabbix-agent
即可,此過程是自帶安裝httpd
和php
的
|
|
3.安裝MySQL
由於以前已經安裝過這裡就不詳細說明安裝過程
檢視是否啟動MySQL
|
|
4.編輯MySQL的配置檔案新增中文所要的字符集並重啟服務
|
|
character_set_server=utf8
指定MySQL的字符集為utf8 用於在web中正確顯示中文
5.進入MySQL 建立zabbix所需要的庫,使用者
|
|
建立庫需要指定字符集為utf8
|
|
|
|
ip為使用者zabbix的來源ip
但資料庫的zabbix server不在同一臺機器上時候,要填zabbix server的IP地址
6.匯入zabbix-server-mysql的資料到zabbix庫中
|
|
解壓create.sql.gz包
|
|
匯入資料
|
|
7.啟動httpd服務
由於之前已經安裝過Nginx,先關閉他
|
|
8.更改zabbix server的配置檔案
|
|
修改下面引數
|
|
在DBUser下面定義密碼
|
|
這些配置內容和新增的MySQL使用者zabbi的資訊要一致
9.啟動zabbix server服務
|
|
10.檢視zabbix server是否監聽埠
|
|
zabbix_server
預設監聽10051
埠
當啟動不了或者不監聽埠可以檢視日誌 路徑是/var/log/zabbix/zabbix_server.log
11.配置web介面
瀏覽器上輸入192.168.80.104/zabbix
這裡是PHP缺少了配置timezone
回去服務端找到/etc/php.ini
並配置timezone
|
|
重啟httpd服務
|
|
再回去繼續下一步
填好資料庫相關的使用者 庫 密碼等資訊
填寫zabbix server名字
新增成功
填寫使用者名稱和密碼 預設使用者名稱Admin
密碼zabbix
更改為自己的密碼和語言 選擇 Administration
— Users
— Admin
使用者 —Change password
和Langueage
修改成功
19.5 忘記zabbix Admin密碼
由於zabbix server的使用者的資料是存放在MySQL中 因此只要修改MySQL的中zabbix使用者的密碼即可
步驟
1.進入MySQL中的zabbix庫中檢視到users表
|
|
2.修改user表的Admin的密碼
|
|
passwd=md5('111111')
使用md5加密 新密碼為111111
19.6 安裝zabbix
配置客戶端
步驟
1.下載官方給出的epel源包並安裝
|
|
2.安裝zabbix-agent
|
|
3.修改zabbix agent的配置檔案
|
|
修改下面引數
|
|
Server
指定zabbix server的IP地址 ServerActive
開啟server agent主動模式 不填預設為被動模式 Hostname
指定客戶端的主機名 以便分辨
4.啟動zabbix agent服務
|
|
5.檢視是否監聽埠
|
|
zabbix_agent
預設是監聽10050
埠
19.7 主動模式和被動模式
19.8 新增監控主機
19.9 新增自定義模板
19.10 處理圖形中的亂碼
19.11 自動發現
19.7 主動模式和被動模式
這裡主動或者被動是相對客戶端
來講的被動模式
,客戶端被動地接受連線,並把監控資訊傳遞給服務端,服務端會主動連線客戶端獲取監控專案資料。主動模式
,客戶端會主動把監控資料彙報給服務端,服務端只負責接收即可。
- 通常下面兩種情況使用主動模式更加合適
- 當客戶端數量非常多時,建議使用主動模式,這樣可以降低服務端的壓力。
- 服務端有公網ip,客戶端只有內網ip,但卻能連外網(通過iptable的nat表實現),這種場景適合主動模式。
19.8 新增監控主機
選擇配置
主機群組
客戶端機器的組 一般先新增組再到組裡新增主機
模版
預設的監控專案的集合
主機
就是要新增的客戶端
圖上的zabbix server是服務端安裝的zabbix agent
我們在服務端並沒有啟動
步驟
1.新增主機群組
主機群組
—- 新增主機群組
—-新增組名
—- 新增
2.新增主機
主機
—- 建立主機
—- 主機名稱
和可見名稱
—- 選擇群組
—- 新增agent的IP地址
—- 新增
主機名稱
和可見名稱
填寫的主機名要和zabbix_agent
的配置檔案Hostname
一致 ip填寫客戶端的ip地址
新增成功
應用集
監控專案的集合,即把監控專案分在多個組裡
監控項
所有的監控的專案
觸發器
針對某個監控專案而設定的告警規則
圖形
把歷史資料做出圖表顯示
自動發現規則
自動發現客戶端系統的網絡卡流量 檔案系統 磁碟 分割槽使用情況等
web場景
監控具體的網站的資訊 (網頁的狀態碼錯誤告警等)
19.9 新增自定義模板
當新增一些需要監控特定監控專案的客戶端時,為了方便管理和提升效率 都是使用自定義模版
步驟
1.新增自定義模版
模版
—- 建立模版
—- 新增 模版名字
和可見的名稱
—- 選擇template
—- 新增
2.新增監控專案到自定義模版中
選擇其他模版(這裡用 Template OS Linux
)中的某個專案 —- 複製
—- 選擇template 的 test
test模版已經新增我們自己需要監控的專案
同理可以使觸發器 圖形 應用集 新增主機需要的專案 但只有自動發現
是不能通過此方法來新增的
新增自動發現規制到自定義模版
步驟
1.新增連結模版
選擇 test
—- 連結模版
—- 選擇連結的模版 —- 新增
—- 更新
2.取消模版連結
選擇test
—- 連結的模版
—- 取消連結
—- 更新
取消連結並清理
會同時把模版中的監控專案一併清理
3.刪除不用監控的專案
4.把自定義模板新增到主機上
主機
—- 選kun03
—- 模版
—- 連結指示器
—- 選test
— 新增
—- 更新
19.10 處理圖形中的亂碼
我們發現自定義主機中圖形出現了亂碼,這是因為zabbix中的沒有中文字型檔,因此我們可以讓win上的中文字型檔拷貝到zabbix server的字型檔上即可
步驟
在za