1. 程式人生 > >linux監控平臺介紹、zabbix監控介紹、安裝zabbix

linux監控平臺介紹、zabbix監控介紹、安裝zabbix

web .so dmi zabbix日誌 展現 com 狀態 中文顯示 代理

linux監控平臺介紹

常見開源監控軟件

  • cacti、nagios、zabbix、smokeping、open-falcon 等等。

  • nagios和zabbix流行度很高。

  • cacti、smokeping 偏向於監控基礎的東西。

    • cacti可以監控網絡設備,它的圖形表現得非常好,非常漂亮。

    • IDC 機房比較喜歡用cacti、smokeping,因為適合監控網絡設備。
  • cacti、nagios、zabbix 服務端監控中心,需要php環境支持,其中zabbix和cacti都需要mysql作為數據存儲,nagios不同存儲歷史數據,註重服務或者監控項的狀態,zabbix會獲取服務或者監控項目的數據,會把數據記錄到數據庫裏,從而可以成圖

  • open-falcon 是小米公司開發的監控軟件。開源後收到諸多大公司和運維工程師的追捧,適合大企業,滴滴、360、新浪微博、京東等大公司在使用這款監控軟件,值得研究。

  • zabbix、nagios、cacti 都是支持web界面去管理、控制。

    • 其中zabbix在web界面下管理得非常徹底。可以去增加監控節點,可以去配置具體的監控項目等。
  • nagios 和zabbix相比,更註重於某一個監控的狀態。

zabbix 監控介紹

  • zabbix 有一個服務端,去客戶端抓數據,客戶端上必須有個服務啟動著,服務是負責采集數據的,數據是可以主動上報給服務端的,也可以讓服務端連接客戶端抓數據。所以,客戶端分兩種模式,一種是主動模式,一種是被動模式。

  • zabbix 也是C/S架構,基於c++開發,監控中心支持web界面配置和管理(需要php環境)

  • 單server節點可以支持上萬臺客戶端

    • 它的瓶頸可能在於采集數據的量,如果上萬臺客戶端監控的項目太多的話也會導致效率降級。這時,就需要對zabbix進行優化了,增加一些proxy(代理點),這些代理點充當server的角色,替代server 去采集數據,最終得到分析結果再匯報給server。
  • 最新版本3.4(更新速度還是很快的),官方文檔https://www.zabbix.com/manuals

  • zabbix 組件 (zabbix整個體系交媾中有一下5個主要角色:)

    • zabbix-server 監控中心

    zabbix-server是整個監控體系中最核心的組件,它負責接收客戶端上報的信息,負責配置、統計、操作數據。

    • 數據存儲(如:mysql、mariadb、SqlServer)

    監控過程中收集的所有信息都存儲在這裏。

    • web界面

    web界面,即web UI。這是zabbix監控簡單易用的原因之一,因為我們可以在web界面中配置、管理各個客戶端。運行web界面需要有PHP環境支持。

    • zabbix-proxy

    zabbix-proxy為可選組件,用於監控節點非常多的分布式環境,它可以代理zabbix-server的功能,減輕zabbix-server的壓力。

    • zabbix-agent

    zabbix-agent為部署在各個客戶端上的組件,用於采集各個監控項目的數據,並把采集的數據傳輸給zabbix-proxy或zabbix-server。

  • zabbix 監控流程圖
    技術分享圖片

// 如果想要監控一個服務器,需要將主機添加到監控中心去,讓他們兩者之間通信,然後還要添加監控的項目。然後就能采集數據,將數據上報到所謂數據中心(mysql)去。其中采集過程可以是主動也可以是被動。zabbix-server需要配置一個告警規則。當采集數據值到達報警條件則告警,沒達到就僅僅是存儲。還需要配置一個告警機制。所有的配置都是在web界面配置的。所有的數據都以圖形的形式在web界面呈現。

安裝zabbix

準備工作

  • 兩臺機器:一臺作為server (ip:192.168.159.131),一臺作為client(ip:192.168.159.132)。

  • 兩臺機器均安裝zabbix;server安裝數據庫 。

  • 可以yum 直接安裝的zabbix,但是需要安裝epel拓展源,而且版本是2.2,有點老舊。在此使用zabbix 官方提供的對應版本的yum 源安裝較新版本的zabbix。

  • zabbix官網下載地址:www.zabbix.com/download

兩臺機器都安裝zabbix的yum源倉庫

到zabbix官網下載地址中下rpm包:
[root@localhost src]# wget # rpm -i http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

安裝yum源倉庫:
[root@localhost src]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm 

yum.repos.d下多少了一個zabbix.repo 文件:
[root@localhost src]# ls /etc/yum.repos.d/zabbix.repo 
/etc/yum.repos.d/zabbix.repo

配置server端

  • 安裝zabbix以及相關組件

    [root@localhost src]# 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相關

    // 該過程會連帶安裝PHP和HTTP

    // 安裝mysql,可以使用yum安裝,也可以使用二進制包安裝。

  • 配置mysql

    // 啟動mysql
    // 使用ps aux | grep mysqld 查看mysql服務是否啟動。

    編輯mysql配置文件,添加下面內容:
    [root@localhost src]# vim /etc/my.cnf
    character_set_server = utf8
    // 設置默認字符集utf8目的是輔助web界面中文顯示

    重啟mysql:
    [root@localhost src]# /etc/init.d/mysqld restart
    Shutting down MySQL.. SUCCESS!
    Starting MySQL. SUCCESS!

    進入mysql命令行,創建zabbix庫和用戶
    [root@localhost src]# mysql -uroot -p

    mysql> create database zabbix character set utf8;
    Query OK, 1 row affected (0.00 sec)
    // 創建zabbix庫的時候指定編碼為utf8

    mysql> grant all on zabbix.* to ‘zabbix‘@‘127.0.0.1‘ identified by ‘123456‘;
    Query OK, 0 rows affected (0.00 sec)
    // 創建zabbix是用來讓php代碼連接mysql的
    // 還有就是監控中心服務啟動的前提是能夠連接mysql
    // 客戶端采集了數據需要把數據傳遞給服務端,服務端需要一個用戶去將數據寫入數據庫

    mysql> quit
    Bye

    向zabbix庫中導入原始數據:
    // 沒有數據zabbix 就無法以web的形式展現給我們

    [root@localhost src]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/
    // 原始數據所在目錄

    [root@localhost zabbix-server-mysql-3.2.11]# ls
    AUTHORS ChangeLog COPYING create.sql.gz NEWS README

    [root@localhost zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz
    // 解壓 create.sql.gz 包

    [root@localhost zabbix-server-mysql-3.2.11]# ls
    AUTHORS ChangeLog COPYING create.sql NEWS README

    [root@localhost zabbix-server-mysql-3.2.11]# mysql -uroot -p112233 zabbix < create.sql
    // 將create.sql 導入到zabbix庫中

  • 啟動zabbix、httpd服務

    啟動zabbix-server 和http 服務:
    [root@localhost ~]# systemctl start zabbix-server
    [root@localhost ~]# systemctl start httpd
    // 啟動httpd服務前,需先查看80端口是否被占用
    // 啟動完之後再去查看下80端口是否是被httpd服務占用
    // 啟動完之後檢查zabbix狀態是否正常
    // zabbix默認監聽10051端口

    將zabbix-server和httpd設置為開機啟動:
    [root@localhost ~]# systemctl enable zabbix-server
    [root@localhost ~]# systemctl enable httpd

  • 檢查zabbix服務狀態(進程、端口占用)時,發現服務啟動沒,但是沒有監聽端口,此時需要進行錯誤排查

    查看zabbix日誌:
    [root@localhost ~]# less /var/log/zabbix/zabbix_server.log
    3839:20180131:151323.944 using configuration file: /etc/zabbix/zabbix_server.conf
    3839:20180131:151323.975 [Z3001] connection to database ‘zabbix‘ failed: [2002] Can‘t connect to local
    MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (13)

    // 根據日誌提示得知,zabbix不能正常連接mysql,需要去改一下配置文件

    修改配置文件:
    [root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
    DBHost=127.0.0.1
    // 此處寫mysql所在機器的IP(生產環境中mysql可能單獨使用一臺機器)
    // 該IP應該和數據庫授權時指定的來源IP一致
    DBName=zabbix
    DBUser=zabbix
    DBPassword=123456
    // 這些都是之前創建mysql用戶中定義的

    重啟zabbix服務:
    [root@localhost ~]# systemctl restart zabbix-server

    // 如果zabbix服務重啟失敗,則檢查配置文件時候有錯誤。
    // 註意新加配置的大小寫!!!

    查看zabbix服務的進程和端口:
    [root@localhost ~]# ps aux | grep zabbix
    // zabbix正常啟動之後進程數量很多

    [root@localhost ~]# netstat -lntp | grep zabbix
    tcp 0 0 0.0.0.0:10051 0.0.0.0: LISTEN 4184/zabbix_server
    tcp6 0 0 :::10051 :::
    LISTEN 4184/zabbix_server
    // zabbix 占用的是10051端口

配置web界面

  • 使用瀏覽器訪問server機器上的ip:192.168.159.131/zabbix 進入安裝引導界面。

  • 進行操作前保證server已經關閉防火墻

  • 在yum安裝zabbix時已經幫你安裝了httpd以及配置文件,所有都配置好了。

1、使用瀏覽器訪問server機器IP:192.168.159.131/zabbix

技術分享圖片

2、點擊“Next step”進入檢測界面
技術分享圖片
// 提示錯誤,PHP無法識別“data.timezone”(時區)

// 編輯php配置文件,更改時區

[root@localhost ~]# vim /etc/php.ini
date.timezone =Asia/Shanghai

重啟httpd服務:
[root@localhost ~]# systemctl restart httpd

3、配置數據庫信息
技術分享圖片

4、定義zabbix 主機名
技術分享圖片

6、提示安裝完成
技術分享圖片

7、進入登錄界面
技術分享圖片
註意 : 管理員初始用戶名admin密碼zabbix

8、點擊Administration 進入如下界面,點擊Admin可以修改密碼及語言等
技術分享圖片

9、修改密碼及語言
技術分享圖片
// 修改完之後點擊update即可生效。刷新即可顯示中文界面。下次登錄則需要使用新密碼。

重置服務端zabbix管理員密碼

  • 如果忘記zabbix(web界面)管理員密碼,可通過zabbix服務器的數據庫進行密碼更改!

    進入mysql命令
    [root@localhost ~]# mysql -uroot -p
    切換庫:
    mysql> use zabbix;

    更改密碼:
    mysql> update users set passwd=md5(‘111222‘) where alias=‘Admin‘;
    // 新密碼為111222

zabbix 客戶端配置

  • 在安裝zabbix之前,需要先下載yum源,安裝yum源。(之前已經做過了)

  • 安裝zabbix

    [root@localhost src]# yum install -y zabbix-agent
    // zabbix-agent 客戶端

  • 編輯配置文件

    [root@localhost src]# vim /etc/zabbix/zabbix_agentd.conf
    Server=192.168.159,131
    // 將Server改為監控中心機器ip
    // 93行

    ServerActive=192.168.159.131
    // 將ServerActive 改為監控中心機器ip
    // 136行
    // 如果只寫上面那個server只能使用被動模式(只能等待服務端來采集信息)
    // 如果想主動上報則要配置serveractive(自動將信息上報給服務端)

    Hostname=Zabbix 01
    // 將hostname改成一個能夠識別的主機名。
    // 147行
    // 該參數有利於更好的辨別服務端監控是哪臺主機的狀態

  • 啟動zabbix-agent服務

    啟動zabbix-agent服務:
    [root@localhost src]# systemctl start zabbix-agent

    查看zabbix進程:
    [root@localhost src]# ps aux | grep zabbix

    查看zabbix端口:
    [root@localhost src]# netstat -lntp | grep zabbix
    tcp 0 0 0.0.0.0:10050 0.0.0.0: LISTEN 5496/zabbix_agentd
    tcp6 0 0 :::10050 :::
    LISTEN 5496/zabbix_agentd
    // zabbix-agent監聽的是10050端口

    設置zabbix-agent開機啟動:
    [root@localhost src]# systemctl enable zabbix-agent

linux監控平臺介紹、zabbix監控介紹、安裝zabbix