Linux Zibbix3.0安裝詳解

2018-07-31 14:44 更新

防偽碼:真理不需色彩,美麗不需涂飾

一、監(jiān)控概述:

·初級(jí):

·1.識(shí)別監(jiān)控對(duì)象         (分級(jí))

·2.理解監(jiān)控對(duì)象  (理論基礎(chǔ))

·3.細(xì)分監(jiān)控對(duì)象的指標(biāo)

·4.確定告警的基準(zhǔn)線        

 

·預(yù)中級(jí):

1. 工具化和監(jiān)控分離

2. 監(jiān)控對(duì)象的分類:

2.1 硬件監(jiān)控 (方法:機(jī)房巡檢、IPMI、SNMP簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議、)

2.2 系統(tǒng)監(jiān)控  (對(duì)象:cpu、內(nèi)存、IO【磁盤、網(wǎng)絡(luò)】)

2.3 服務(wù)監(jiān)控  (對(duì)象:分類服務(wù))

2.4 日志監(jiān)控           (方法:Elastic Stack)

2.5 網(wǎng)絡(luò)監(jiān)控   (方法: 第三方、Smokeping)

2.6  APM應(yīng)用性能管理   (工具:pinpoint APM)

2.7 流量監(jiān)控                (工具:Piwik、xx統(tǒng)計(jì)、xx分析)

2.8 其他監(jiān)控 (APP監(jiān)控、安全監(jiān)控、業(yè)務(wù)監(jiān)控、輿論監(jiān)控、xx監(jiān)控等)

3. 掌握一個(gè)監(jiān)控工具。例如:zabbix

 

·中級(jí):

0.標(biāo)準(zhǔn)化監(jiān)控(標(biāo)準(zhǔn)化的腳本、模板、....)

1. 分布式監(jiān)控                (主動(dòng)、被動(dòng)、分布式)

2. 自動(dòng)化監(jiān)控                (自動(dòng)發(fā)現(xiàn)、主動(dòng)注冊(cè)【Agent主動(dòng)注冊(cè)、Server主動(dòng)添加(API)】)

3. 性能優(yōu)化                (數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)查詢)

4. 二次開發(fā)                (定制報(bào)表、API調(diào)用、)

         

·進(jìn)階:(精通到放棄)

1. 告警閾值動(dòng)態(tài)化

2. 智能告警:【1.告警去重 2.依賴】

3. 故障自愈        (事件驅(qū)動(dòng)、主動(dòng)控制)

4. 大規(guī)模告警          

 

硬件監(jiān)控:

1. 機(jī)房巡檢

2. 通過(guò)網(wǎng)絡(luò)來(lái)巡檢

 

例如:DELL  通過(guò)iDRAC口監(jiān)控

  HP    通過(guò)ILO

  IBM   通過(guò)IMM

 

由于每個(gè)廠商不一樣可以通過(guò)IPMI協(xié)議來(lái)統(tǒng)一管理。

IPMI簡(jiǎn)介:

Ipmitool是一種可用在linux系統(tǒng)下的命令行方式的ipmi平臺(tái)管理工具,它支持ipmi 1.5規(guī)范(最新的規(guī)范為ipmi2.0),通過(guò)它可以實(shí)現(xiàn)獲取傳感器的信息、顯示系統(tǒng)日志內(nèi)容、網(wǎng)絡(luò)遠(yuǎn)程開關(guān)機(jī)等功能。

Ipmitool有兩種使用方式:

安裝IPMI


Zabbix自帶IPMI

1
2
 yum install OpenIPMI ipmitool
 systemctl start ipmi


安裝ipmitool管理工具:

詳細(xì)安裝配置請(qǐng)參考網(wǎng)站:

https://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html

建議通過(guò)以上IPMI網(wǎng)址安裝配置。

 

通過(guò)SNMP來(lái)管理:

基于SNMP監(jiān)控

安裝略

使用方法

查看cpu負(fù)載

1
2
3
4
5
6
snmpget -v2c -c admin 192.168.56.11 .1.3.6.1.4.1.2021.10.1.3.1
UCD-SNMP-MIB::laLoad.1 = STRING: 0.00
snmpwalk -v2c -c admin 192.168.56.11 .1.3.6.1.4.1.2021.10.1.3
UCD-SNMP-MIB::laLoad.1 = STRING: 0.00
UCD-SNMP-MIB::laLoad.2 = STRING: 0.01
UCD-SNMP-MIB::laLoad.3 = STRING: 0.05


 

監(jiān)控寶 SNMP安裝:(環(huán)境CentOS 7 )

1.  CentOS  SNMP安裝:

安裝net-snmp

1
yum install net-snmp net-snmp-devel net-snmp-utils


說(shuō)明:net-snmp-devel是為了使用net-snmp-config, net-snmp-utils是為了使用snmpwalk。

配置 Net-SNMP

CentOS下的net-snmp無(wú)法在selinux環(huán)境下正常使用v3。 如果您想使用snmp v3,請(qǐng)先禁用selinux。

net-snmp-config --create-snmpv3-user -ro -A snmp@jiankongbao -a MD5 jiankongbao

 

以上命令,創(chuàng)建一個(gè)snmpv3用戶,只讀,使用MD5,用戶名為jiankongbao,密碼為snmp@jiankongbao。

注意:運(yùn)行之前請(qǐng)先停用net-snmp服務(wù)。

停止snmpd服務(wù)

1
 service snmpd stop


運(yùn)行Net-SNMP

運(yùn)行 Net-SNMP 服務(wù)的方法比較簡(jiǎn)單,不過(guò)Net-SNMP服務(wù)的名字是snmpd

1
service snmpd start


加入開機(jī)自啟動(dòng)運(yùn)行服務(wù)列表:

1
chkconfig snmpd on



檢測(cè) Net-SNMP

可以使用 snmpwalk 來(lái)檢測(cè)snmp服務(wù)是否正常開啟。

1
snmpwalk -v 3 -u jiankongbao -a MD5 -A "snmp@jiankongbao" -l authNoPriv 127.0.0.1 sysDescr


如果一切正常,就會(huì)返回正常結(jié)果。

配置 防火墻

Net-SNMP 使用 udp 協(xié)議,161端口。

可以實(shí)現(xiàn)對(duì)mysql監(jiān)控、Apache監(jiān)控、Lighttpd監(jiān)控、Nginx監(jiān)控等等。

例如:

mysql監(jiān)控:

先創(chuàng)建mysql的權(quán)限,需要在被監(jiān)控的mysql服務(wù)器上為監(jiān)控寶創(chuàng)建一個(gè)專用的mysql用戶,這樣做的好處是:

與您的其它MySQL用戶進(jìn)行有效隔離,獨(dú)立管理。

對(duì)該用戶進(jìn)行受限管理,不需要給予任何MySQL權(quán)限。

指定監(jiān)控寶的訪問(wèn)IP地址,阻止其它非法訪問(wèn)。

操作非常簡(jiǎn)單,在MySQL中操作如下:

1
2
3
CREATE USER 'jiankongbao'@'60.195.252.106' IDENTIFIED BY  'your_password';
CREATE USER 'jiankongbao'@'60.195.252.108' IDENTIFIED BY  'your_password';
# CREATE USER 'jiankongbao'@'60.195.249.83'  IDENTIFIED BY  'your_password';


注意:防火墻安全。在MySQL或者防火墻中指定授權(quán)IP地址的時(shí)候,請(qǐng)只開放我們指定的IP地址,而不要直接開放整個(gè)C類網(wǎng)段,比如60.195.252.0/24,因?yàn)樵摼W(wǎng)段中其它服務(wù)器不在我們的可控范圍內(nèi)。

 

Apache 監(jiān)控:

需要開啟status模塊,修改httpd.conf文件。

添加如下:

1
2
3
4
5
6
7
8
ExtendedStatus On
<Location /server-status>
  SetHandler server-status
  Order deny,allow
  Deny from all
  Allow from 60.195.252.106 60.195.252.108 
  # Allow from 60.195.249.83
</Location>


 

也可以設(shè)置受限訪問(wèn)設(shè)置:在配置文件中,修改<location  /server-status>一行。

 

Lighttpd 監(jiān)控

Lighttpd的狀態(tài)監(jiān)控依賴于mod_status模塊,幸運(yùn)的是,Lighttpd缺省已經(jīng)內(nèi)置了mod_status模塊,我們要做的就是打開配置文件lighttpd.conf,開啟這個(gè)模塊,也就是刪除模塊前邊的“#”注釋符,比如:

1
2
3
4
5
6
7
8
9
10
server.modules              = (
#                               "mod_rewrite",
#                               "mod_redirect",
#                               "mod_alias",
                                "mod_access",
#                               "mod_trigger_b4_dl",
#                               "mod_auth",
                               "mod_status",
                               "mod_fastcgi",
                                "mod_accesslog" )


然后,在lighttpd.conf中找到以下部分:

 

1
2
#### status module
status.status-url          = "/server-status"


默認(rèn)情況下以上語(yǔ)句是被注釋的,同樣,刪掉注釋符,保存配置文件,重啟lighttpd。

 

Nginx監(jiān)控:

默認(rèn)情況下不包含狀態(tài)stub_status,所以編譯時(shí)添加參數(shù),然后再nginx.conf中開啟狀態(tài)頁(yè)面。

 

Windows SNMP安裝:

http://blog.jiankongbao.com/?p=185

 

詳細(xì)請(qǐng)參考

http://wiki.jiankongbao.com/doku.php/%E6%96%87%E6%A1%A3:%E5%AE%89%E5%85%A8%E6%8C%87%E5%BC%95

 

系統(tǒng)監(jiān)控:

CPU:

進(jìn)程:每一個(gè)進(jìn)程,至少有一個(gè)線程。

      每個(gè)進(jìn)程可以有多個(gè)線程。

(單CPU單核),進(jìn)程的內(nèi)存空間是共享的,每個(gè)線程可以使用這些共享。提供協(xié)調(diào)   機(jī)制,防止進(jìn)程之間和線程之間產(chǎn)生沖突,另一方面允許進(jìn)程之間和線程之間共享資源。

 

在linux系統(tǒng)中用top命令查看到用戶態(tài)和內(nèi)核態(tài),為什么會(huì)有用戶態(tài)和內(nèi)核態(tài)?

0為內(nèi)核態(tài)

3為用戶態(tài)

 

CPU監(jiān)控指標(biāo):中斷/使用率/cpu負(fù)載/上下文切換/僵死進(jìn)程的監(jiān)控、最大進(jìn)程的運(yùn)行                                        數(shù)量、

Top uptime vmstat mpstat  lscpu

CPU負(fù)載:?jiǎn)挝粫r(shí)間內(nèi)運(yùn)行隊(duì)列中就緒等待的進(jìn)程數(shù)平均值。

內(nèi)存:

虛擬內(nèi)存(linux管理的是虛擬內(nèi)存)、swap、物理內(nèi)存,linux管理虛擬內(nèi)存

內(nèi)存是分頁(yè)的,內(nèi)存頁(yè)默認(rèn)每頁(yè)是4K

Free –m查看內(nèi)存時(shí),剩余內(nèi)存需要查看available列

   

1
2
3
     total        used        free      shared  buff/cache   available
Mem:        977         102         514           6         360         714
Swap:          2047           0        2047


 

優(yōu)化內(nèi)存

1
2
echo  "0" /proc/sys/vm/swappiness
cat /sys/block/sda/queue/scheduler


IO:

Iftop  -n 不解析域名  -i  指定網(wǎng)卡名 –P 顯示端口名

1
2
iftop -i eth0 -F 
192.168.56.0/24


 

Nethogs

Iotop  

 

負(fù)載均衡器一定要監(jiān)控tcp狀態(tài)

 

 

以下是鏈接以及工具

1
2
3
4
5
6
7
8
http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html
http://os.51cto.com/art/201012/240476.htm
http://www.cnblogs.com/cutepig/p/3403711.html 
http://elf8848.iteye.com/blog/2089055
yum  -y  install nethogs
yum –y install iotop
yum –y install iftop
yum –y install sysstat


網(wǎng)絡(luò)監(jiān)控:

檢測(cè)工具:

http://ping.chinaz.com/ 

開源工具:SmokePing        支持分布式

 

zabbix部署

 

1. 什么是zabbix

Zabbix是一個(gè)分布式開源的監(jiān)控系統(tǒng),支持多種采集方法,使它幾乎可以采集和處理所有類型的監(jiān)控?cái)?shù)據(jù);靈活的報(bào)警機(jī)制,可以實(shí)現(xiàn)各種的自定義報(bào)警策略,強(qiáng)大的拓展性,可以自定義監(jiān)控項(xiàng)、圖形、模板,還支持自動(dòng)注冊(cè)和自動(dòng)發(fā)現(xiàn),使它可以快速構(gòu)建一套大型的監(jiān)控系統(tǒng),還有豐富的API接口。

其他監(jiān)控系統(tǒng)cacti、nagios、MangeEngine_ApplicationsManager,lepus,smokeping,piwiki等選zabbix的理由:簡(jiǎn)單、高效、靈活

安裝zabbix前需準(zhǔn)備環(huán)境:

時(shí)間同步:

1
yum -y install ntpdate


設(shè)置計(jì)劃任務(wù):crontab -e

1
echo '* * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root


查看計(jì)劃任務(wù):

crontab  -l

1. 設(shè)置主機(jī)名解析

1
2
3
4
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.152.142        zabbix-server


2.安裝 EPEL 倉(cāng)庫(kù)和常用命令

1
2
3
rpm -ivh 
http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum install -y net-tools vim lrzsz tree screen lsof tcpdump


 

注意:如果epel源不能使用,請(qǐng)自行切換其他yum源,本次安裝zabbix-server不需要網(wǎng)絡(luò),但是,由于選擇的是基礎(chǔ)環(huán)境安裝,需要安裝的工具包。
5.更新系統(tǒng)并重啟

1
yum update -y && reboot


安裝部署zabbix 3.0 LTS

Zabbix 3.0的安裝

軟件版本要求:

http 1.3.12

Php 5.4.0(不支持php7.0)

Mysql 5.0.3

Zabbix 3.0版本不支持php v7版本。入選用php v7 選擇使用zabbix 3.2

安裝YUM源。

1
[root@localhost Desktop]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm


在/etc/yum.repo下形成一個(gè)zabbix.repo文件

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost ~]# ll /etc/yum.repos.d/
total 40
-rw-r--r--. 1 root root 1664 Nov 30 02:12 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 30 02:12 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Nov 30 02:12 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Nov 30 02:12 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Nov 30 02:12 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 30 02:12 CentOS-Sources.repo
-rw-r--r--. 1 root root 2893 Nov 30 02:12 CentOS-Vault.repo
-rw-r--r--. 1 root root  957 Dec 28 01:37 epel.repo
-rw-r--r--. 1 root root 1056 Dec 28 01:37 epel-testing.repo
-rw-r--r--. 1 root root  401 Feb 15  2016 zabbix.repo

打開zabbix.repo文件yum源是指向國(guó)外的官網(wǎng)的,為了訪問(wèn)方便,建議把yum源地址改為阿里云的源

修改yum源指向阿里源:

1
2
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/$basearch/ 
baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/


查看zabbix安裝包:

yum list | grep zabbix

安裝zabbix包

1
yum -y install zabbix-server-mysql zabbix-web-mysql


安裝數(shù)據(jù)庫(kù):

1
yum -y install mariadb mariadb-server


啟動(dòng)mariadb服務(wù)并設(shè)置開機(jī)自啟動(dòng)。

1
2
systemctl enable mariadb.service 
systemctl start mariadb.service

要想使用補(bǔ)全命令可以安裝epel源的包。

1
yum install bash-comp* -y

初始化數(shù)據(jù)庫(kù):

1
mysql_secure_installation

設(shè)置數(shù)據(jù)庫(kù)密碼:

1
mysqladmin -u root password

進(jìn)入數(shù)據(jù)庫(kù):

1
mysql -uroot -p

創(chuàng)建數(shù)據(jù)庫(kù),并設(shè)置字符集為Utf-8

1
create database zabbix character set utf8 collate utf8_bin;

授權(quán)數(shù)據(jù)庫(kù):

1
grant all privileges on zabbix.* to zabbix@'localhost' identified by '123.Com';

打開導(dǎo)入數(shù)據(jù)庫(kù)并驗(yàn)證zabbix數(shù)據(jù)庫(kù):

1
zcat /usr/share/doc/zabbix-server-mysql-3.0.8/create.sql.gz|mysql -uzabbix -p123.Com zabbix

注意:zcat是一個(gè)查看命令。

設(shè)置web界面:

1
vim /etc/httpd/conf/httpd.conf

更改ServerName

啟動(dòng)web服務(wù):

1
2
systemctl  restart  httpd.service
systemctl  enable  httpd.service

配置zabbix-server,設(shè)置配置文件中添加密碼:

vim /etc/zabbix/zabbix_server.conf

啟動(dòng)zabbix-server服務(wù):

systemctl start zabbix-server.service

注意:

Zabbix端口號(hào)10051

Zabbix的web配置文件默認(rèn)安裝再/etc/httpd/conf.d/

連接php的配置文件默認(rèn)安裝再/etc/httpd/conf.d/

關(guān)閉NetworkManager和防火墻:

1
2
systemctl disable firewalld
systemctl disable NetworkManager

4. 關(guān)閉并確認(rèn) SELinux 處于關(guān)閉狀態(tài)

1
2
3
vim /etc/sysconfig/selinuxSELINUX=disabled #修改為 disable
setenforce 0
getenforce

注意:不注意防火墻或者NetworkManager和selinux會(huì)導(dǎo)致zabbix啟動(dòng)了卻web界面里還是顯示zabbix 未啟動(dòng)。

進(jìn)入web界面安裝zabbix

輸入http://zabbix服務(wù)器地址/zabbix/setup.php進(jìn)入,根據(jù)向?qū)О惭b。更改時(shí)區(qū)

修改/etc/httpd/conf.d/zabbix.conf中的一行:

 php_value date.timezone Asia/Shanghai把這一行的注釋去掉地點(diǎn)改為上海。

Asia/Shanghai

更改完畢后,重啟httpd.service服務(wù)。

這是安裝zabbix的向?qū)О惭b的第一步:

這是安裝zabbix的向?qū)О惭b的第二步

可以看到時(shí)間地點(diǎn)已經(jīng)更改成功了!

下一步設(shè)置連接數(shù)據(jù)庫(kù)的用戶密碼等:

下一步設(shè)置命名:

下一步:

安裝zabbix:

輸入用戶密碼,進(jìn)入zabbix界面。

默認(rèn)的用戶:Admin   密碼:zabbix

進(jìn)入了zabbix的界面:

由于只安裝了zabbix,并沒(méi)有配置zabbix配置

修改zabbix配置文件:

1
vim /etc/zabbix/zabbix_server.conf

修改配置文件中的DBPassword=這一行并把注釋去掉!

重啟zabbix-server服務(wù)并設(shè)置開機(jī)自啟動(dòng)

下面再看一下zabbix界面NO變成了YES.

顯示zabbix已經(jīng)正常啟動(dòng)!

如果zabbix到達(dá)瓶頸可以進(jìn)行拆分。

/etc/zabbix/web/zabbix.conf.ph在這個(gè)文件中配置拆分。

要想讓zabbix監(jiān)控自己,需要安裝一個(gè)zabbix-agent 可以監(jiān)控自己本身。依賴openssl

修改zabbix-agent配置文件

1
vim  /etc/zabbix/zabbix_agentd.conf

可以配置主動(dòng)和被動(dòng)

啟動(dòng)zabbix-agent服務(wù):

systemctl start zabbix-agent

可以看到如下zabbix server主機(jī)hosts

點(diǎn)擊紅色位置啟用zabbix server

看到已啟動(dòng)!

Zabbix主動(dòng)模式和被動(dòng)模式:

理論:

 

被動(dòng)模式流程,被動(dòng)模式一定要記得設(shè)置Server = ServerIP

被動(dòng)模式工作流程:

Server 打開一個(gè)TCP連接

Server發(fā)送一個(gè)key 為agent.ping

Agent接受這個(gè)請(qǐng)求,然后響應(yīng)< HEADER >< DATALEN >

Server對(duì)接受到的數(shù)據(jù)進(jìn)行處理

TCP連接關(guān)閉

 

主動(dòng)模式流程:主動(dòng)模式一定要記得設(shè)置ServerActive=ServerIP

Agent向Server建立一個(gè)TCP連接

Agent請(qǐng)求需要檢測(cè)的數(shù)據(jù)列表

Server響應(yīng)Agent,發(fā)送一個(gè)Items列表

Agent允許響應(yīng)

TCP連接完成本次會(huì)話關(guān)閉

Agent開始周期性地收集數(shù)據(jù)

 

安裝第二臺(tái)agent:

安裝agent服務(wù):

1
rpm -ivh zabbix-agent-3.0.5-1.el7.x86_64.rpm

啟動(dòng)并設(shè)置開機(jī)自啟

systemctl start zabbix-agent.service

systemctl enable zabbix-agent.service

Zabbix添加監(jiān)控主機(jī):

在configuration中選擇hosts:

如果Groups沒(méi)有可以NEW一個(gè),然后ip地址填寫agent的ip,添加完畢后不要add,

還需要添加Templates模板之后再按add(在這里選擇Template OS Linux模板)

截圖如下:

可以看見(jiàn)host主機(jī)添加成功:

發(fā)現(xiàn)添加的主機(jī)ZBX為紅色,報(bào)錯(cuò)如下:

Received empty response from Zabbix Agent at [192.168.0.106]. Assuming that agent dropped connection because of access permissions.

解決辦法:修改agent的配置文件:

1
vim /etc/zabbix/zabbix_agentd.conf

修改為Server=(zabbix server的ip地址)

Server=192.168.152.142

重啟zabbix-agent服務(wù):

1
systemctl restart zabbix-agent.service

可以看到如下圖紅色變?yōu)榱司G色,問(wèn)題解決了!

使用zabbix-get:

安裝zabbix-get服務(wù):

1
yum install -y zabbix-get

測(cè)試方法:

例如:

1
zabbix_get -s linux-node2.example.com -k agent.ping

只能取zabbix  agent類型

查看本機(jī)有多少內(nèi)置key

1
zabbix_agentd -p

zabbix網(wǎng)址:

 

 



本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)