第一章 Zabbix基礎概念及安裝

Zabbix基礎概念

1.1 何謂自動化運維

(1)硬件標準化——包括服務器、內存、系統版本等。
(2)軟件標準化——應用版本等。
(3)運維自動化——包括監控、發佈、CMDB。
筆者的理解,運維自動化,就是把運維中大量平常重複性工做使用工具讓其自動運行,減小人的參與。首先它要包括如下幾部分:
(1)監控報警——系統數據,應用指標的監控,和出錯時及時報警。
(2)發佈系統——代碼發佈,發佈後的檢查,代碼的回滾,灰度發佈。
(3)服務器標準化——Cobbler裝機加上Puppet,能夠作到硬件、軟件的標準化。每臺機器對於運維來講都是同樣的。
(4)CMDB——配置管理數據庫,存儲了全部運維相關數據,包括服務器硬件信息、域名php

1.2 監控系統在運維自動化中的角色

監控系統,是運維工程師和研發工程師的眼睛,它幫助工程師在第一時間發現網站的問題。
服務器的整個生命週期,都要和監控系統打交道。服務器上架,須要加入基礎監控,好比CPU負載、內存等;當服務器上開始跑應用時,須要加入對應的應用監控,好比Resin、MySQL等;當服務器維護時,又要暫停這些報警,不然你明明在維護MySQL,監控系統還給你報警說MySQL掛了。這些操做,手動去作很是麻煩,須要跟運維的其餘系統共同協做,好比CMDB中一臺機器上架了,那麼監控系統自動加入監控。
監控系統在運維自動化裏的角色,能夠用下面三點來歸納。
(1)監控數據收集及可視化。
(2)異常數據報警。
(3)和其餘系統協同工做。mysql

1.3 選擇zabbix的理由

一、監控系統可以自定義監控的內容,能夠本身寫腳原本收集須要的數據——Zabbix支持任何自定義的監控腳本,只要輸出須要的值就能夠。
二、數據要保存在數據庫中,這樣在須要的時候能夠對這些數據進行分析計算——Zabbix在數據庫中的表結構雖然有些複雜,但邏輯很清晰。
三、可以方便、快速地將監控加入到服務器上,不須要煩瑣的操做——Zabbix有模板這一律念,能夠方便地將一組Item進行統一操做。
四、數據可視化不要很花哨,但要好用——Zabbix每個Item均可以看到其歷史,Web界面可拖動,界面友好。
五、能夠定義複雜的報警邏輯,作到Item之間的關聯報警,而不是隻能針對一個——Zabbix強大的Trigger定義,幾乎能夠知足全部規則組合。
六、報警須要被確認,讓運維人員知道多少報警已經有人認領並開始處理了——Zabbix對於報警,有ACK機制。
七、報警方式要可以自定義,能夠發郵件、發短信,若是可以在IM上通知別人就更好了——Zabbix支持郵件、Jabber。
八、報警內容要本身可設置,在報警郵件中加入一些簡單的分析,而不是讓運維人員上服務器敲命令來獲取基本的信息——Zabbix自定義了一套宏能夠在報警郵件中引用,若是要更復雜的功能,能夠經過遠程調用命令實現。
九、報警後能夠自動跑一些命令。這些命令能夠是獲取運維人員須要的信息,也能夠是自動修復,好比重啓服務等——在觸發報警後,Zabbix能夠遠程執行命令。
十、監控數據是開放的,數據庫中的數據結構不要太複雜,讓人無從下手——監控數據就在Zabbix數據庫中,能夠方便地進行分析。
十一、監控可視化的圖能夠方便的引用,而不是要用一大串JavaScript——Zabbix使用PHP原生的繪圖模塊,若是要引用Zabbix的圖表,只須要引用圖表的URL便可,很是方便。web

1.4 Zabbix部分名詞約定

Zabbix server:zabbix的控制中心,收集數據、寫入數據庫都是它的工做。
Zabbix Agent:部署在被監控服務器上的一個進程,負責和zabbix server交互,執行命令。
Host:廣義上的服務器,大多數狀況指代的是刀片機這類,在少部分時間會指代包括交換機在內的,被zabbix監控的實體。
Item:對於某一個指標的監控,對應的是Items,英文原意是「物品」。好比某臺服務器的CPU負載就是一個Item。
Trigger:一些邏輯規則的組合,它有三個值:正常、異常、未知。
Action:當Trigger符合某個值的時候,Zabbix會進行的操做,好比最多見的發郵件。sql

Zabbix4.0快速搭建

2.1 Zabbix組件概述

  • Zabbix server:負責接收agent發送的報告信息的核心組件,全部配置、統計數據及操做數據均由其組織進行
  • Database storage:專用於存儲全部配置信息,以及由zabbix收集的數據
  • Web interface:zabbix的GUI接口,一般與server運行在同一主機上。
  • Proxy:可選組件,經常使用於分佈監控環境中,代理server收集部分被監控端的監控數據並統一發往server端。
  • Agent:部署在被監控主機上,負責收集本地數據併發往server端或proxy端
  • Zabbix_get:命令行工具,手動測試向agent發起數據採集請求
  • Zabbix_sender:,命令行工具,運行於agent端,手動向server端發送數據

2.2 Zabbix安裝

一、安裝zabbix-release包
[root@ntp ~]# cd /home/iflytek/
[root@ntp iflytek]# wget -q
https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@ntp iflytek]# ls
zabbix-release-4.0-1.el7.noarch.rpm
[root@ntp iflytek]# rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm

二、開始安裝zabbix(採用yum安裝的方式)
1)yum安裝zabbix組件
yum install zabbix-server zabbix-web zabbix-server-mysql zabbix-web-mysql mariadb-server mariadb zabbix-agent -y
註釋:
yum -y install zabbix zabbix-server zabbix-server-mysql #<==ZABBIX SERVER相關
yum -y install zabbix-web zabbix-web-mysql #<==Apache、Php Web界面環境
yum -y install zabbix-agent #<== ZABBIX客戶端
yum -y install mysql-server mysql #<==MySQL客戶端與服務端
yum -y install zabbix-get #<==zabbix命令行工具

2)初始化apache服務的zabbix配置
[root@ntp ~]# cat  /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 always_populate_raw_post_data -1
        php_value date.timezone Asia/Shanghai  #修改時區
</IfModule>

3)啓動httpd以及mysql
[root@ntp xujun]# systemctl start httpd
[root@ntp xujun]# systemctl start mariadb

4)初始化zabbix存儲數據的數據庫MySQL
[root@ntp ~]# mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
[root@ntp]# cd /usr/share/doc/zabbix-server-mysql-4.0.0/
[root@ntp zabbix-server-mysql-4.0.0]# zcat create.sql.gz |mysql -uzabbix -pzabbix zabbix #導入數據庫

5)修改zabbix配置
[root@ntp ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost  #數據庫所在主機
DBName=zabbix     #數據庫名
DBUser=zabbix     #數據庫用戶
DBPassword=zabbix  #數據庫密碼

6)啓動zabbix及http
systemctl start zabbix-server
systemctl restart httpd

三、web界面安裝zabbix
訪問http://192.168.89.12/zabbixshell

至此安裝完成!!!數據庫

安裝zabbix遇到的錯誤

一、zabbix到安裝界面報錯" Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock"apache

mysql和zabbix正常安裝後在,zabbix安裝頁面(鏈接數據庫的界面)時,提示「」Error connecting to database: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)「」
緣由是經過這個目錄下的mysql.sock不能鏈接到數據庫,到這個目錄下發現沒有這個文件,而/etc/my.cnf下正確的mysql.sock目錄是/tmp/mysql.sock。
嘗試的操做:
(1)將my.cnf下的sock路徑改爲/var/lib/mysql/mysql.sock  不能正常
(2)將zabbix_server.conf裏面的DBsock路徑也改爲和my.cnf裏面的路徑,也是不行

最終的解決辦法是: my.cnf裏面socket路徑改爲/tmp/mysql.sock,並作了一個軟連接:ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 後才正常

二、安裝zabbix碰到Unable to select configuration的解決方法vim


從新導入zabbix sql文件windows

三、中文亂碼的問題

解決亂碼:
一、從windows服務器找到相應的字體負債到zabbix server服務器上
控制面板-->外觀和個性化-->字體-->選擇一種中文字體如「楷體」(simkai.ttf)服務器

二、將咱們選擇的字體文件上傳到zabbix web服務,/usr/share/zabbix/fonts目錄下

[root@Node3 fonts]# cd /usr/share/zabbix/fonts
[root@Node3 fonts]# ls
graphfont.ttf  simkai.ttf

三、修改此/usr/share/zabbix/include/defines.inc.php文件中字體的配置,將裏面關於字體設置從graphfont替換成simkai

四、再次打開界面,發現亂碼已經解決了,以下圖所示:

相關文章
相關標籤/搜索