linux監控平臺介紹、zabbix監控介紹、安裝zabbix
常見開源監控軟件
-
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 -pmysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)
// 創建zabbix庫的時候指定編碼為utf8mysql> 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