Linux Zibbix3.0安裝詳解

2018-07-31 14:44 更新

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

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

·初級:

·1.識別監(jiān)控對象         (分級)

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

·3.細分監(jiān)控對象的指標

·4.確定告警的基準線        

 

·預(yù)中級:

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

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

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

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

2.3 服務(wù)監(jiān)控  (對象:分類服務(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)計、xx分析)

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

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

 

·中級:

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

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

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

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

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

         

·進階:(精通到放棄)

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

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

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

4. 大規(guī)模告警          

 

硬件監(jiān)控:

1. 機房巡檢

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

 

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

  HP    通過ILO

  IBM   通過IMM

 

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

IPMI簡介:

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

Ipmitool有兩種使用方式:

安裝IPMI


Zabbix自帶IPMI

1
2
 yum install OpenIPMI ipmitool
 systemctl start ipmi


安裝ipmitool管理工具:

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

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

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

 

通過SNMP來管理:

基于SNMP監(jiān)控

安裝略

使用方法

查看cpu負載

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


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

配置 Net-SNMP

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

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

 

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

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

停止snmpd服務(wù)

1
 service snmpd stop


運行Net-SNMP

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

1
service snmpd start


加入開機自啟動運行服務(wù)列表:

1
chkconfig snmpd on



檢測 Net-SNMP

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

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


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

配置 防火墻

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

可以實現(xiàn)對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)建一個專用的mysql用戶,這樣做的好處是:

與您的其它MySQL用戶進行有效隔離,獨立管理。

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

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

操作非常簡單,在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地址的時候,請只開放我們指定的IP地址,而不要直接開放整個C類網(wǎng)段,比如60.195.252.0/24,因為該網(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è)置受限訪問設(shè)置:在配置文件中,修改<location  /server-status>一行。

 

Lighttpd 監(jiān)控

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

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"


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

 

Nginx監(jiān)控:

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

 

Windows SNMP安裝:

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

 

詳細請參考

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:

進程:每一個進程,至少有一個線程。

      每個進程可以有多個線程。

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

 

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

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

3為用戶態(tài)

 

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

Top uptime vmstat mpstat  lscpu

CPU負載:單位時間內(nèi)運行隊列中就緒等待的進程數(shù)平均值。

內(nèi)存:

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

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

Free –m查看內(nèi)存時,剩余內(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  

 

負載均衡器一定要監(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)控:

檢測工具:

http://ping.chinaz.com/ 

開源工具:SmokePing        支持分布式

 

zabbix部署

 

1. 什么是zabbix

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

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

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

時間同步:

1
yum -y install ntpdate


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

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


查看計劃任務(wù):

crontab  -l

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

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 倉庫和常用命令

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源不能使用,請自行切換其他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下形成一個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源是指向國外的官網(wǎng)的,為了訪問方便,建議把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ù)庫:

1
yum -y install mariadb mariadb-server


啟動mariadb服務(wù)并設(shè)置開機自啟動。

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

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

1
yum install bash-comp* -y

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

1
mysql_secure_installation

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

1
mysqladmin -u root password

進入數(shù)據(jù)庫:

1
mysql -uroot -p

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

1
create database zabbix character set utf8 collate utf8_bin;

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

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

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

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

注意:zcat是一個查看命令。

設(shè)置web界面:

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

更改ServerName

啟動web服務(wù):

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

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

vim /etc/zabbix/zabbix_server.conf

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

systemctl start zabbix-server.service

注意:

Zabbix端口號10051

Zabbix的web配置文件默認安裝再/etc/httpd/conf.d/

連接php的配置文件默認安裝再/etc/httpd/conf.d/

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

1
2
systemctl disable firewalld
systemctl disable NetworkManager

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

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

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

進入web界面安裝zabbix

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

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

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

Asia/Shanghai

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

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

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

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

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

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

下一步:

安裝zabbix:

輸入用戶密碼,進入zabbix界面。

默認的用戶:Admin   密碼:zabbix

進入了zabbix的界面:

由于只安裝了zabbix,并沒有配置zabbix配置

修改zabbix配置文件:

1
vim /etc/zabbix/zabbix_server.conf

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

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

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

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

如果zabbix到達瓶頸可以進行拆分。

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

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

修改zabbix-agent配置文件

1
vim  /etc/zabbix/zabbix_agentd.conf

可以配置主動和被動

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

systemctl start zabbix-agent

可以看到如下zabbix server主機hosts

點擊紅色位置啟用zabbix server

看到已啟動!

Zabbix主動模式和被動模式:

理論:

 

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

被動模式工作流程:

Server 打開一個TCP連接

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

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

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

TCP連接關(guān)閉

 

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

Agent向Server建立一個TCP連接

Agent請求需要檢測的數(shù)據(jù)列表

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

Agent允許響應(yīng)

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

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

 

安裝第二臺agent:

安裝agent服務(wù):

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

啟動并設(shè)置開機自啟

systemctl start zabbix-agent.service

systemctl enable zabbix-agent.service

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

在configuration中選擇hosts:

如果Groups沒有可以NEW一個,然后ip地址填寫agent的ip,添加完畢后不要add,

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

截圖如下:

可以看見host主機添加成功:

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

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色,問題解決了!

使用zabbix-get:

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

1
yum install -y zabbix-get

測試方法:

例如:

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

只能取zabbix  agent類型

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

1
zabbix_agentd -p

zabbix網(wǎng)址:

 

 



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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號