?Linux監(jiān)控平臺(tái)介紹
常見開源監(jiān)控軟件
cacti押桃、nagios嫂冻、zabbix胶征、smokeping、open-falcon等等桨仿。
cacti睛低、smokeping偏向于基礎(chǔ)監(jiān)控,成圖漂亮服傍。
cacti钱雷、nagios、zabbix服務(wù)端監(jiān)控中心吹零,需要php環(huán)境支持罩抗,其中zabbix和cacti都需要mysql作為數(shù)據(jù)存儲(chǔ),nagios不用存儲(chǔ)歷史數(shù)據(jù)灿椅,注重服務(wù)或者監(jiān)控項(xiàng)的狀態(tài)套蒂;zabbix會(huì)獲取服務(wù)或者監(jiān)控項(xiàng)目的數(shù)據(jù)從而可以成圖,zabbix把數(shù)據(jù)記錄到數(shù)據(jù)庫里茫蛹,支持歷史數(shù)據(jù)查詢操刀,而且zabbix可以非常方便的自定義監(jiān)控項(xiàng)目。
open-falcon為小米公司開發(fā)麻惶,開源后受到諸多大公司和運(yùn)維工程師的追捧馍刮,適合大企業(yè),滴滴窃蹋、360卡啰、新浪微博、京東等大公司在使用這款監(jiān)控軟件警没,值得研究匈辱。
本節(jié)學(xué)習(xí)以zabbix為例。
19.2 zabbix監(jiān)控介紹
zabbix基于C++開發(fā)杀迹,是C/S(client/server)架構(gòu)亡脸,即分為客戶端和服務(wù)端,單個(gè)服務(wù)端節(jié)點(diǎn)可以支持上萬臺(tái)客戶端树酪,監(jiān)控中心支持web UI(web界面)配置和管理浅碾。
zabbix組件
zabbix整個(gè)體系架構(gòu)中有以下5個(gè)主要角色:
zabbix-server
zabbix-server是整個(gè)監(jiān)控體系中最核心的組件,它負(fù)責(zé)接收客戶端發(fā)送的報(bào)告信息续语,所有配置垂谢、統(tǒng)計(jì)數(shù)據(jù)及操作數(shù)據(jù)都由它組織。
數(shù)據(jù)存儲(chǔ)(如:mysql)
監(jiān)控過程中收集的所有信息都存儲(chǔ)在這里疮茄。
web界面
web界面滥朱,即GUI根暑。這是zabbix監(jiān)控簡單易用的原因之一,因?yàn)槲覀兛梢栽趙eb界面中配置徙邻、管理各個(gè)客戶端排嫌。運(yùn)行web界面需要有PHP環(huán)境支持。
zabbix-proxy
zabbix-proxy為可選組件缰犁,用于監(jiān)控節(jié)點(diǎn)非常多的分布式環(huán)境淳地,它可以代理zabbix-server的功能,減輕zabbix-server的壓力帅容。
zabbix-agent
zabbix-agent為部署在各個(gè)客戶端上的組件薇芝,用于采集各個(gè)監(jiān)控項(xiàng)目的數(shù)據(jù),并把采集的數(shù)據(jù)傳輸給zabbix-proxy或zabbix-server丰嘉。
監(jiān)控流程
19.3-19.4 安裝zabbix
準(zhǔn)備工作
兩臺(tái)機(jī)器:一臺(tái)作為server(IP:192.168.8.136),一臺(tái)作為client(IP:192.168.8.138)嚷缭,均安裝zabbix饮亏,server上安裝數(shù)據(jù)庫(安裝方法見:https://blog.51cto.com/13242922/2073353?)。
可以使用yum安裝zabbix阅爽,版本是2.2路幸,有點(diǎn)老舊。在此使用zabbix官方提供的對(duì)應(yīng)版本的yum源安裝較新版本的zabbix付翁。
在服務(wù)端安裝zabbix
安裝zabbix之前需要先安裝其yum源倉庫简肴。
下載zabbix的yum源倉庫:
[root@z1 src]# wget?http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
安裝yum源倉庫:
[root@z1 src]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
[root@z1 src]# ls /etc/yum.repos.d/
zabbix.repo
安裝zabbix及其組件:
[root@z1 src]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
#zabbix-agent:客戶端程序
#zabbix-get:服務(wù)端上命令行獲取客戶端檢測項(xiàng)目的工具
#zabbix-server-mysql:zabbix-server MySQL版
#zabbix-web:web界面
#zabbix-web-mysql:web界面MySQL相關(guān)
注:該過程會(huì)連帶安裝PHP和http。
配置
配置server端:
配置mysql:
[root@z1 src]# vim /etc/my.cnf
character_set_server = utf8
#設(shè)置默認(rèn)字符集--目的是輔助web界面中文顯示
重啟mysql服務(wù):
[root@z1 src]# /etc/init.d/mysqld restart
創(chuàng)建數(shù)據(jù)庫:
[root@z1 ~]# mysql -uroot
mysql> create database zabbix character set utf8;
#創(chuàng)建庫并指定其字符集
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by '123456';
mysql> quit
向zabbix數(shù)據(jù)庫中導(dǎo)入原始數(shù)據(jù):
[root@z1 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.7/
#注意:該路徑使用tab鍵補(bǔ)全
解壓create.sql.gz包:
[root@z1 zabbix-server-mysql-3.2.7]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@z1 zabbix-server-mysql-3.2.7]# gzip -d create.sql.gz?
[root@z1 zabbix-server-mysql-3.2.7]# ls
AUTHORS ChangeLog COPYING create.sql NEWS README
將解壓后的數(shù)據(jù)(create.sql)數(shù)據(jù)導(dǎo)入zabbix庫:?
[root@z1 zabbix-server-mysql-3.2.7]# mysql -uroot zabbix < create.sql
啟動(dòng)zabbix服務(wù):
[root@z1 zabbix-server-mysql-3.2.7]# systemctl start zabbix-server
啟動(dòng)http服務(wù):
[root@z1 zabbix-server-mysql-3.2.7]# systemctl start httpd.service
[root@z1 zabbix-server-mysql-3.2.7]# netstat -lntp |grep httpd
tcp6 0 0 :::80 :::* LISTEN 2370/httpd
可以對(duì)zabbix百侧、http等服務(wù)設(shè)置開機(jī)啟動(dòng):?
[root@z1 zabbix-server-mysql-3.2.7]# systemctl enable zabbix-server.service
[root@z1 zabbix-server-mysql-3.2.7]# systemctl enable httpd.service
至此砰识,檢查zabbix服務(wù)狀態(tài)(ps,netstat)發(fā)現(xiàn)佣渴,服務(wù)啟動(dòng)了辫狼,但是沒有監(jiān)聽端口,狀態(tài)不正常辛润,進(jìn)行錯(cuò)誤排查:
查看zabbix日志:
[root@z1 zabbix-server-mysql-3.2.7]# less /var/log/zabbix/zabbix_server.log?
2343:20170907:175923.056 database is down: reconnecting in 10 seconds
2343:20170907:175933.058 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect t
o local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
即膨处,無法連接mysql。
解決辦法:
更改zabbix配置文件砂竖。
[root@z1 zabbix-server-mysql-3.2.7]# vim //etc/zabbix/zabbix_server.conf
DBHost=127.0.0.1
#此處寫zabbix所在機(jī)器的IP(生產(chǎn)環(huán)境中zabbix可能單獨(dú)使用一天機(jī)器)
#該IP應(yīng)該和數(shù)據(jù)庫授權(quán)時(shí)指定的IP一致
DBName=zabbix
DBUser=zabbix
DBPassword=123456
更改完成后重啟zabbix服務(wù):
[root@z1 zabbix-server-mysql-3.2.7]# systemctl restart zabbix-server.service
啟動(dòng)完成后查看其狀態(tài)(ps真椿、netstat),正常(服務(wù)端zabbix默認(rèn)監(jiān)聽10051端口)乎澄!
配置web界面
使用瀏覽器訪問server機(jī)器上的IP:192.168.8.136/zabbix(進(jìn)行該操作前保證server已關(guān)閉防火墻)進(jìn)入安裝引導(dǎo)界面突硝。
mark
點(diǎn)擊“Next step”進(jìn)入檢測界面:
mark
錯(cuò)誤: 此處有錯(cuò)誤提示,意識(shí)是PHP無法識(shí)別“data.timezone”(時(shí)區(qū))三圆。
解決方法:
編輯PHP配置文件狞换,更改時(shí)區(qū):
[root@z1 ~]# vim /etc/php.ini?
date.timezone =Asia/Shanghai
重啟httpd服務(wù):
[root@z1 ~]# systemctl restart httpd.service
瀏覽器刷新避咆,問題解決!然后修噪,繼續(xù)點(diǎn)擊“Next step”查库,配置數(shù)據(jù)庫信息:
mark
點(diǎn)擊“Next step”,設(shè)置服務(wù)器用戶名(自定義):
mark
繼續(xù)點(diǎn)擊“Next step”黄琼,至出現(xiàn)提示界面:
mark 即樊销,安裝完成!
登錄sever端zabbix
mark
注意: 管理員初始用戶名和密碼(Admin:zabbix)脏款。
登錄zabbix之后首先要更改管理員密碼:
mark
點(diǎn)擊“Admin”進(jìn)入如下界面:
mark
然后點(diǎn)擊“changepassword”:
mark
更改完成后“刷新”围苫,界面顯示為設(shè)定的界面語言:中文!
19.5 忘記服務(wù)端zabbix管理員密碼
如果忘記zabbix(web界面)管理員密碼撤师,可通過zabbix服務(wù)器的數(shù)據(jù)庫進(jìn)行密碼更改剂府!
[root@z1 ~]# mysql -uroot
切換庫:
mysql> use zabbix;
更改密碼:
mysql> update users set passwd=md5('123456') where alias='Admin';
mysql> quit
完成!
設(shè)置完成后在瀏覽器使用新密碼登錄zabbix剃盾,成功腺占!
19.6 zabbix客戶端配置
在客戶端安裝zabbix
安裝zabbix之前需要先安裝其yum源倉庫。
下載zabbix的yum源倉庫:
[root@z1 src]# wget?http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
安裝yum源倉庫:
[root@z1 src]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
安裝zabbix:
[root@z2 ~]# yum install -y zabbix-agent
配置
編輯zabbix配置文件:
[root@z2 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.8.136
#指定服務(wù)端主機(jī)IP(設(shè)置客戶端的監(jiān)控主機(jī)白名單)
ServerActive=192.168.8.136
#該參數(shù)決定監(jiān)控的主動(dòng)/被動(dòng)模式
#如果只改參數(shù)Server痒谴,則只能采用被動(dòng)模式(只能等待服務(wù)端來采集信息)
#主動(dòng)模式:客戶端主動(dòng)向服務(wù)端發(fā)送信息
Hostname=adai-02
#該參數(shù)用于設(shè)定客戶端主機(jī)的名字衰伯,用于服務(wù)端添加監(jiān)控服務(wù)
#如果服務(wù)端所監(jiān)控的機(jī)器和其Hostname不一致,服務(wù)端將無法識(shí)別該機(jī)器
#因?yàn)閦abbix是通過IP進(jìn)行監(jiān)控的积蔚,該參數(shù)不會(huì)對(duì)監(jiān)控造成太大影響
#加上該參數(shù)有利于更好的辨別服務(wù)端監(jiān)控是哪臺(tái)主機(jī)的狀態(tài)
啟動(dòng)zabbix服務(wù):
[root@z2 ~]# systemctl start zabbix-agent.service?
查看zabbix服務(wù)狀態(tài)(ps意鲸、netstat),正常(客戶端zabbix默認(rèn)監(jiān)聽10050端口)尽爆!
至此怎顾,zabbix監(jiān)控架構(gòu)搭建基本結(jié)束!J杆勇!