linux監控平臺搭建

chunyang315發表於2018-04-13

Linux監控平臺介紹

  • 監控的重要性不言而喻,一個企業就算架構再不成熟,監控都是必須要有的。監控不管用什麼方式實現,開源軟體也好,商業的監控服務也好,抑或是簡陋的shell指令碼,在業務上線時都首先要做到位。

  • 流行的開源監控軟體有cacti、nagios、zabbix、smokeping、open-falcon.

  • cacti、nagios、zabbix都可以監控伺服器的基礎指標,比如CUP、記憶體、硬碟、網路等,其中cacti更擅長監控網路流量,很多的IDC機房的網路裝置流量用cacti,因為它成圖專業。它們都是C/S架構,需要安裝一個服務端,然後還需要在被監控的機器上安裝客戶端,它們都需要LAMP的支援,其中Nagios不需要資料庫,而其他2種都需要MySQL的支援,用來儲存資料的。

  • Nagios最大特點是監控一目瞭然,它監控的某個指標不會返回具體的數值,而是隻返回一個狀態,告訴我們該指標是否正常。所以不需要歷史資料,也就不需要資料庫的支援。當它發現某個指標不正常時,就直接發出警告或者簡訊。

  • zabbix最近幾年很流行,因為zabbix可以儲存資料,很方便的畫圖,並支援查詢歷史資料。它還可以自定義監控專案。可以定製化監控業務的某個指標(例如每分鐘訂單數量),在zabbix的自帶模板中不可能找到,它還提供了易用的二次開發介面,方便擴充套件。zabbix會獲取服務或監控專案的資料,會把資料記錄到資料庫中,從而可以成圖。

  • cacti、smokeping偏於基礎監控(網路裝置),成圖非常漂亮。

  • open-falcon是小米公司開發,開源後受到許多大公司和運維工程師的追捧,適合大企業。比如滴滴、360、新浪,JD等都在使用這個監控軟體,值得研究。

  • cacti、nagios、zabbix都支援Web介面去進行管理,去控制。其中zabbix的管理做的比較徹底,比如增加監控節點,去配置具體的專案。nagios則需要去修改很多的配置檔案和規則,很繁瑣。


zabbix監控介紹

  • zabbix適合任何企業,它是C/S架構,服務端去客戶端採取資料(在客戶端要有一個服務用來採取資料,這個資料可以主動的上報給服務端,或者讓服務端連線客戶端去採集資料,也就是主動模式與被動模式)

  • zabbix基於C++開發,效能還是挺快的,監控中心需要PHP的環境用來開啟Web介面,

  • 單server節點可以支援上萬臺客戶端,併發量還是挺大的。瓶頸在於資料的採集量,就算是支援上萬臺客戶端,當監控的專案太多也會導致效率的降低。

  • zabbix的優化——比如增加代理點,用來充當server的角色,替代server去採集資料,得到分析結果在彙報給server。
  • zabbix當前最新的zabbix 3.4版本,官方文件https://www.zabbix.com/manuals

    zabbixj架構中包括了5個元件

    (1)Zabbix-server
    它是整個監控體系中最核心的元件(監控中心),負責接收客戶端上報資訊,所有的配置、統計、運算元據、資料儲存、存放資料(比如mysql)都是由它完組織的
    (2)Web介面
    它也叫web UI,在web介面下操作配置是zabbix簡單易用的主要原因。執行web介面需要php環境支援。(如果沒有它,就不能在瀏覽器中去配置它)
    (3)zabbix-proxy
    它為可選元件,用於監控節點非常多的分散式環境中,它可以代替zabbix-server的功能,減輕zabbix-server的壓力。
    (4)zabbix-agent
    客戶端軟體,使用者採集各個監控服務或專案的資料,並將採集的資料傳輸給zabbix-server或是zabbix-proxy
    (5)資料儲存
    所有采集的資料儲存在這裡

    監控流程圖

    這裡寫圖片描述
    流程:
    (1)將需要監控的伺服器加入到監控中心,讓它們之間可以通訊
    (2)配置監控專案 ,配置完成後能和服務端通訊了
    (3)採集資料到資料中心(zabbix-server裡面),採集過程可以是主動或者被動。
    (4)配置告警規則,如果採集的資料值達到報警條件就進行告警,沒有達到就進行儲存。

zabbix-server需要進行告警規則的配置,還需要配置告警的機制,如果檢測到資料的不正常了,該通知給誰,用什麼方式,這些都需要在zabbix-sever中去配置。


安裝zabbix

  • 實驗中需要用到2臺機器,一臺用作服務端(監控中心),另外一臺用作客戶端。

    • zabbix可以通過yum來安裝,不過要先安裝epel擴充套件源,在epel中它的最高為2.2版本,推薦使用官方提供對應版本的yum源https://www.zabbix.com/download

    步驟

    (1)在2臺機器上執行

wget  http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

(2)安裝

rpm -ivh  zabbix-release-3.2-1.el7.noarch.rpm   //安裝完成後會在/etc/yum.repos.d下生成一個zabbix.repo檔案

(3)服務端安裝軟體包

yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

zabbix-agent:客戶端程式
zabbix-get:服務端上命令列獲取客戶端檢測專案的工具
zabbix-server-mysql:zabbix-server MySQL版
zabbix-web:web介面
zabbix-web-mysql:web介面mysql相關
如果之前沒有安裝過mysql。可以yum安裝。

(4)檢視mysql是否開啟

(5)編輯/etc/my. cnf設定預設的字符集

[mysqld]
character_set_server = utf8  //字符集
datadir=/data/mysql
socket=/tmp/mysql.sock

重啟mysql

(6)進入mysql命令列,並建立zabbix庫,並指定編碼為utf8

create database zabbix character set utf8;

(7)建立使用者

grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zcy-zabbix';

退出mysql

(8)匯入原始資料,沒有這些資料zabbix就不能在web介面展現。

cd /usr/share/doc/zabbix-server-mysql-3.2.7 //最後的引數使用Tab鍵補全。
gzip -d create.sql.gz   //解壓縮該包後,生成一個create.sql檔案
mysql -uroot -pzcylinux zabbix < create.sql //匯入到zabbix庫中。

使用cd返回

(9)啟動zabbix服務,,還需要啟動httpd服務,啟動前檢視是否有nginx在執行,需要關閉。它佔用了80 埠

systemctl start zabbix-server 
/etc/init.d/nginx stop
systemctl start httpd

將zabbix和httpd設定為開機啟動,並關閉nginx

systemctl enable httpd
systemctl enable nginx 
chkconfig nginx off 

最後發現zabbix並沒有監聽埠。那麼可以檢視日誌/var/log/zabbix/zabbix_server.log,發現有程式卻不能連線mysql

(10)編輯配置檔案

vi /etc/zabbix/zabbix_server.conf /並在DBHost下面加入一行 DBHost=127.0.0.1 

關於這裡的IP寫多少,我們是將mysql安裝在一起的,那麼就可以寫localhost或者是127.0.0.1。如果mysql沒有安裝在這裡,而是在另一臺機器上,那麼就要寫另外一臺機器的IP,這樣可以提升監控中心的效率。

DBPassword=zcy-zabbix //在DBuser下面增加

(11)再重啟zabbix-server服務。正常情況下會啟動很多的子程式,並可以看到zabbix_server監聽了10051埠。

(12 )在瀏覽器中訪問ip/zabbix ,可以在web介面下配置zabbix。當yum安裝zabbix,它會自動的安裝httpd與配置檔案。然後點選netx step後會出現一個介面,只需要關注是紅色的那個,它的意思是配置時區——vi /etc/php.ini 中data.timezone = Asia/shanghai
定義完成後重啟httpd服務systemctl restart httpd

重新整理頁面,全部都是OK後,再次點選netx step後就需要填寫mysql相關的資訊了。
這裡寫圖片描述 這裡的密碼填寫之前建立使用者時指定的密碼。

定義zabbix_server的主機名
這裡寫圖片描述

再下一步會顯示你的填寫資訊,並提示你已成功安裝了zabbix前端。

最後出現登入介面。預設管理裡為Admin ,密碼為zabbix,登入進去後需要先更改密碼。
這裡寫圖片描述

zabbix 客戶端安裝

(1)在客戶端上下載zabbix的yum源

wget  http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

(2)安裝zabbix-agent

(3)編輯配置檔案vi /etc/zabbix/zabbix_agentd.conf並定義2個地方

1.server=服務端的ip ——與監控中心通訊
2.ServerActive=服務端的ip -——主動模式時使用,如果只填寫了server那麼就是被動模式,寫了這個就是主動模式。
3.Hostname=客戶端主機名

(4)啟動服務

systemctl start zabbix-agent

(5)檢視程式與監聽的埠

ps aux |grep zabbix
netstat -lntp

它的監聽埠是10050。


忘記Admin密碼如何做

1 . 進入mysql命令列,選擇zabbix庫

mysql -uroot -pzcylinux
use zabbix

2 .修改密碼

update users set passwd=md5('newpasswd') where alias= 'Admin' ;

相關文章