(1)硬件標準化——包括服務器、內存、系統版本等。
(2)軟件標準化——應用版本等。
(3)運維自動化——包括監控、發佈、CMDB。
筆者的理解,運維自動化,就是把運維中大量平常重複性工做使用工具讓其自動運行,減小人的參與。首先它要包括如下幾部分:
(1)監控報警——系統數據,應用指標的監控,和出錯時及時報警。
(2)發佈系統——代碼發佈,發佈後的檢查,代碼的回滾,灰度發佈。
(3)服務器標準化——Cobbler裝機加上Puppet,能夠作到硬件、軟件的標準化。每臺機器對於運維來講都是同樣的。
(4)CMDB——配置管理數據庫,存儲了全部運維相關數據,包括服務器硬件信息、域名php
監控系統,是運維工程師和研發工程師的眼睛,它幫助工程師在第一時間發現網站的問題。
服務器的整個生命週期,都要和監控系統打交道。服務器上架,須要加入基礎監控,好比CPU負載、內存等;當服務器上開始跑應用時,須要加入對應的應用監控,好比Resin、MySQL等;當服務器維護時,又要暫停這些報警,不然你明明在維護MySQL,監控系統還給你報警說MySQL掛了。這些操做,手動去作很是麻煩,須要跟運維的其餘系統共同協做,好比CMDB中一臺機器上架了,那麼監控系統自動加入監控。
監控系統在運維自動化裏的角色,能夠用下面三點來歸納。
(1)監控數據收集及可視化。
(2)異常數據報警。
(3)和其餘系統協同工做。mysql
一、監控系統可以自定義監控的內容,能夠本身寫腳原本收集須要的數據——Zabbix支持任何自定義的監控腳本,只要輸出須要的值就能夠。
二、數據要保存在數據庫中,這樣在須要的時候能夠對這些數據進行分析計算——Zabbix在數據庫中的表結構雖然有些複雜,但邏輯很清晰。
三、可以方便、快速地將監控加入到服務器上,不須要煩瑣的操做——Zabbix有模板這一律念,能夠方便地將一組Item進行統一操做。
四、數據可視化不要很花哨,但要好用——Zabbix每個Item均可以看到其歷史,Web界面可拖動,界面友好。
五、能夠定義複雜的報警邏輯,作到Item之間的關聯報警,而不是隻能針對一個——Zabbix強大的Trigger定義,幾乎能夠知足全部規則組合。
六、報警須要被確認,讓運維人員知道多少報警已經有人認領並開始處理了——Zabbix對於報警,有ACK機制。
七、報警方式要可以自定義,能夠發郵件、發短信,若是可以在IM上通知別人就更好了——Zabbix支持郵件、Jabber。
八、報警內容要本身可設置,在報警郵件中加入一些簡單的分析,而不是讓運維人員上服務器敲命令來獲取基本的信息——Zabbix自定義了一套宏能夠在報警郵件中引用,若是要更復雜的功能,能夠經過遠程調用命令實現。
九、報警後能夠自動跑一些命令。這些命令能夠是獲取運維人員須要的信息,也能夠是自動修復,好比重啓服務等——在觸發報警後,Zabbix能夠遠程執行命令。
十、監控數據是開放的,數據庫中的數據結構不要太複雜,讓人無從下手——監控數據就在Zabbix數據庫中,能夠方便地進行分析。
十一、監控可視化的圖能夠方便的引用,而不是要用一大串JavaScript——Zabbix使用PHP原生的繪圖模塊,若是要引用Zabbix的圖表,只須要引用圖表的URL便可,很是方便。web
Zabbix server:zabbix的控制中心,收集數據、寫入數據庫都是它的工做。
Zabbix Agent:部署在被監控服務器上的一個進程,負責和zabbix server交互,執行命令。
Host:廣義上的服務器,大多數狀況指代的是刀片機這類,在少部分時間會指代包括交換機在內的,被zabbix監控的實體。
Item:對於某一個指標的監控,對應的是Items,英文原意是「物品」。好比某臺服務器的CPU負載就是一個Item。
Trigger:一些邏輯規則的組合,它有三個值:正常、異常、未知。
Action:當Trigger符合某個值的時候,Zabbix會進行的操做,好比最多見的發郵件。sql
一、安裝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到安裝界面報錯" 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
四、再次打開界面,發現亂碼已經解決了,以下圖所示: