一、自動化監控利器-Zabbix


1. 監控的作用

1.1 為何需要監控系統

監控系統是整個運維環節,乃至整個產品生命周期中最重要的一環,事前及時預警發現故障,事后提供詳細的數據用於追查定位問題;

為了及時掌握基礎環境和業務應用系統的可用性,需要獲取各個組件的運行狀態,如CPU的利用率、系統的復制、服務的運行、端口的連通、帶寬流量、網站訪問狀態碼等信息。而這一切都離不開監控系統;

1.2 監控系統的實現

一個監控系統的組成大體可以分為兩部分:數據采集部分(客戶端)和數據存儲分析報警部分(服務器端),這兩部分構成了監控系統的基本模型;

數據采集的工作模式可以分為被動模式(服務端到客戶端采集數據)和主動模式(客戶端主動上報數據到服務器端)。通常,大多數監控系統應該能同時支持這兩種模式。被動模式對服務器的開銷較大,適合小規模的監控環境:主動模式對服務器的開銷較小,適合大規模的監控環境;

1.3 常用的監控軟件

MRTG:是一套可用來繪制網絡流量圖的軟件,由瑞士奧爾滕的Tobias Oetiker與Dave Rand所開發;

Cacti:(英文含義為仙人掌)是一套基於PHP、MySQL、SNMP和RRDtool開發的網絡流量監測圖形分析工具;

Smokeping:Smokeping主要用於監視網絡性能,包括常規的ping、www服務器性能、DNS查詢性能、SSH性能等;

Nagios:Nagios是一個企業級的個系統,可監控服務的運行狀態和網絡信息等,並能監視所指定的本地或遠程主機參數以及服務,同時提供異常告警通知功能等;

Zabbix:Zabbix是一個分布式監控系統,支持多種采集方式和采集客戶端,有專用的Agent代理,也支持SNMP、IPMI、JMX、Telnet、SSH等多種協議,它將采集到的數據存放到數據庫,然后對其進行分析整理,達到條件觸發告警。其靈活的擴展性和豐富的功能是其他監控系統所不能比的;

2. Zabbix簡介

zabbix([`zæbiks])是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案;

zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題;

Zabbix適合中小型企業、大中型企業的用戶使用。單個Server節點可以支持上萬台設備,每秒可以處理1.5萬次請求,理論上可以支持5萬台設備;

2.1 選擇Zabbix的理由

  1. Zabbix是一個自由開發源代碼的產品,用戶可以對源代碼進行任意修改和二次開發。Zabbix采用GNU General Public License (GPL) Version2開源協議;

  2. 安裝和配置簡單,用戶僅僅需要一些簡單的學習,即可完成監控的搭建工作;

  3. 搭建環境簡單,基於開源軟件構建平台,僅需要Linux、Apache/Nginx、MySQL/PostgreSQL/Oracle、PHP即可,無須專用操作系統支持,也無須專用硬件;

  4. Zabbix-Agent完全支持Linux、UNIX、Windows、AIX、BSD和Solaris的監控,Server和Agent都采用C語言編碼,對系統的資源占用非常小,數據采集的性能和速度非常快;

  5. 將數據采集持久存儲到數據庫,便於對監控數據的二次分析;

  6. 非常豐富的擴展能力,很輕松地自定義監控項和實現數據采集,幾乎能監控所有的數據。例如:可以監控網站的訪問次數,監控UPS和天氣溫度等;

  7. 開源社區的運作模式,有各種論壇、郵件列表、IM及時溝通等,發現問題及時解決;

2.2 Zabbix的功能特性

Zabbix有常見的商業監控軟件所具備的功能,如主機的性能監控、網絡設備性能監控、數據庫性能監控、FTP等通用協議監控、多種告警方式、詳細的報表圖表繪制、分布式、可擴展能力、API等;

  • 數據收集
  • 靈活的觸發器
  • 高度可定制的告警
  • 實時的繪圖功能
  • Web監控能力
  • 多種可視化的展示
  • 歷史數據的存儲
  • 配置非常容易
  • 使用模板
  • 快速的訪問接口
  • API功能
  • 系統權限
  • 大型環境的支持

3. Zabbix安裝與部署

3.1 配置Zabbix-server

[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm  # 安裝Zabbix官方源

[root@zabbix-server ~]# yum install -y  zabbix-server-mysql zabbix-web-mysql zabbix-agent  mariadb-server  # 安裝服務端,由於服務端也是需要監控的,故而一並安裝Zabbix-agent

1. 創建Zabbix數據庫

# 1.啟動mariadb數據庫,並加入開機自啟
[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

# 2.登錄數據庫
[root@zabbix-server ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# 3.配置數據庫信息
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;  # 這一步一定不能少,不然會報錯
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit
Bye


# 4.導入數據
[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-4.0.33/
[root@zabbix-server zabbix-server-mysql-4.0.33]# zcat create.sql.gz | mysql -uroot zabbix

2. 啟動Zabbix

# 修改配置文件,讓Zabbix連接數據庫
[root@zabbix-server ~]# vi /etc/zabbix/zabbix_server.conf 
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix  #基本上就要修改這一項

# 啟動服務,並加入開機自啟
[root@zabbix-server ~]# systemctl start zabbix-server
[root@zabbix-server ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.

# 檢測10051端口是否起來---->這里要注意,關閉防火牆和selinux服務,不然Zabbix起不來
[root@zabbix-server ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      9272/zabbix_server  
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2217/mysqld         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1037/sshd           

3. 修改 vim /etc/httpd/conf.d/zabbix.conf 前端時區

[root@zabbix-server ~]# vi /etc/httpd/conf.d/zabbix.conf
#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted

    <IfModule mod_php5.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value max_input_vars 10000
        php_value always_populate_raw_post_data -1
        # php_value date.timezone Europe/Riga      # 修改這個位置為:php_value date.timezone Asia/shanghai
    </IfModule>
....

4. 啟動httpd服務,並加入開機自啟

[root@zabbix-server ~]# systemctl start httpd 
[root@zabbix-server ~]# systemctl enable httpd 
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

5. 打開web頁面測試Zabbix是否安裝成功

進入到zabbix web頁面

到此,zabbix服務端就安裝完畢了!

3.2 配置Zabbix-client

配置zabbix-client,就不用那么麻煩了,我們直接在第三方的鏡像源安裝
https://mirrors.aliyun.com/zabbix/zabbix/
選擇自己對應得版本就可以了

1. 下載安裝包

# 這里推薦用rpm安裝,因為我們下載的就是一個rpm包
[root@web-01 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.33-1.el7.x86_64.rpm

2. 配置zabbix

# 先查看一下zabbix-agent 的配置文件
[root@web-01 ~]# rpm -qc zabbix-agent
/etc/logrotate.d/zabbix-agent
/etc/zabbix/zabbix_agentd.conf  # zabbix-agent 的配置文件位置
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

# 修改配置文件:這里只要改一個位置就可以了
[root@web-01 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.10.134  # 這里改成zabbix-server端的ip地址

# 啟動zabbix-agent服務,並加入開機自啟
[root@web-01 ~]# systemctl start zabbix-agent
[root@web-01 ~]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.

# 檢測agent服務端口是否啟動,監聽的端口為10050
[root@web-01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1080/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1257/master         
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      1437/zabbix_agentd  
tcp6       0      0 :::22                   :::*                    LISTEN      1080/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1257/master         
tcp6       0      0 :::10050                :::*                    LISTEN

3.3 如何監控服務?

1. 首先登錄服務的zabbix web界面

2. 添加一個主機

給被監控主機添加一個模板


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM