Linux監(jiān)控平臺介紹
- 流行的開源監(jiān)控軟件有:Cacti蒙揣、Nagios、Zabbix狂塘、smokeping、open-falcon等等鳄厌。
- Cacti荞胡、Nagios以及Zabbix都是C/S架構(gòu)并且都需要有PHP環(huán)境的支持。
- 前三款軟件都可以監(jiān)控服務器的基礎指標了嚎,比如CPU泪漂、內(nèi)存廊营、磁盤、網(wǎng)絡等等
- Cacti更擅長監(jiān)控網(wǎng)絡流量萝勤,很多IDC機房的網(wǎng)絡設備流量用cacti來監(jiān)控露筒。
- Nagios不需要數(shù)據(jù)庫(被冷漠ing),Cacti和Zabbix都需要MySQL的支持敌卓,用來存儲數(shù)據(jù)邀窃。
- Zabbix可以存儲數(shù)據(jù)方便地畫圖,并且支持查詢歷史數(shù)據(jù)和自定義監(jiān)控項假哎。
- open-falcon為小米公司開發(fā)瞬捕,開源后受到諸多大公司和運維工程師的追捧。
Zabbix監(jiān)控介紹
- Zabbix 是一個企業(yè)級的分布式開源監(jiān)控方案舵抹。
- Zabbix是一款能夠監(jiān)控各種網(wǎng)絡參數(shù)以及服務器健康性和完整性的軟件肪虎。Zabbix使用靈活的通知機制,允許用戶為幾乎任何事件配置基于郵件的告警惧蛹。這樣可以快速反饋服務器的問題扇救。基于已存儲的數(shù)據(jù)香嗓,Zabbix提供了出色的報告和數(shù)據(jù)可視化功能迅腔。這些功能使得Zabbix成為容量規(guī)劃的理想方案。
- Zabbix支持主動輪詢和被動捕獲靠娱。Zabbix所有的報告沧烈、統(tǒng)計信息和配置參數(shù)都可以通過基于Web的前端頁面進行訪問∠裨疲基于Web的前端頁面可以確保您從任何方面評估您的網(wǎng)絡狀態(tài)和服務器的健康性锌雀。適當?shù)呐渲煤螅琙abbix可以在IT基礎架構(gòu)監(jiān)控方面扮演重要的角色迅诬。對于只有少量服務器的小型組織和擁有大量服務器的大型公司也同樣如此腋逆,目前官方最新版本為4.0 LTS。
Zabbix組件結(jié)構(gòu)
- Zabbix_Server:整個監(jiān)控體系中最核心的組件侈贷,它負責接收客戶端發(fā)送的報告信息惩歉,所有配置、統(tǒng)計數(shù)據(jù)及操作數(shù)據(jù)都由它組織俏蛮。
- 數(shù)據(jù)庫存儲:所有配置信息和Zabbix收集到的數(shù)據(jù)都被存儲在數(shù)據(jù)庫中撑蚌。
- Web界面:為了從任何地方和任何平臺都可以輕松的訪問Zabbix, 我們提供基于Web的Zabbix界面。該界面是Zabbix Server的一部分嫁蛇,通常跟Zabbix Server運行在同一臺物理機器上(锨并!如果使用SQLite,Zabbix Web界面必須要跟Zabbix Server運行在同一臺物理機器上。)
- Zabbix_Proxy(可選):用于監(jiān)控節(jié)點非常多的分布式環(huán)境中睬棚,它可以代理zabbix-server的功能,減輕zabbix-server的壓力。
- Zabbix_Agent:zabbix-agent為客戶端軟件抑党,用于采集各監(jiān)控項目的數(shù)據(jù)包警,并把采集的數(shù)據(jù)傳輸給zabbix-proxy或zabbix-server。
Zabbix安裝部署
node1服務端
服務組件:Zabbix_Server & Zabbix_web & Mysql
安裝源碼庫配置部署包:
[root@node1 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
安裝Zabbix部署包:
[root@node1 ~]# yum install zabbix-server-mysql zabbix-web-mysql -y
安裝初始化數(shù)據(jù)庫:
[root@node1 ~]# yum install mariadb-server -y
[root@node1 ~]# systemctl enable mariadb
[root@node1 ~]# systemctl start mariadb
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '000000';
[root@node1 ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.15/
[root@node1 zabbix-server-mysql-3.4.15]# zcat create.sql.gz | mysql -uroot zabbix
啟動Zabbix Server進程:
[root@node1 zabbix]# cat zabbix_server.conf | grep -Ev "^#|^$"
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=000000
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
[root@node1 ~]# systemctl enable zabbix-server
[root@node1 zabbix]# systemctl start zabbix-server
編輯Zabbix前端的PHP配置:
[root@node1 zabbix]# /etc/httpd/conf.d/zabbix.conf
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 (時區(qū))
[root@node1 ~]# systemctl enable httpd
[root@node1 ~]# systemctl start httpd
Zabbix前端可以在瀏覽器中通過 http://zabbix-frontend-hostname/zabbix 進行訪問底靠。默認的用戶名/密碼為 Admin/zabbix
node2客戶端
服務組件:Zabbix_Agent
[root@node1 ~]# scp /etc/yum.repos.d/zabbix.repo root@node2:/etc/yum.repos.d/
[root@node2 zabbix]# cp zabbix_agentd.conf{,.bak}
[root@node2 zabbix]# sed -i 's/^Server=.*/Server=192.168.0.140/g' zabbix_agentd.conf
[root@node2 zabbix]# sed -i 's/^ServerActive=.*/ServerActive=192.168.0.140/g' zabbix_agentd.conf
[root@node2 zabbix]# sed -i 's/^Hostname=.*/Hostname=node2/g' zabbix_agentd.conf
[root@node2 zabbix]# cat /etc/zabbix/zabbix_agentd.conf | grep -Ev "^#|^$"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.0.140
ServerActive=192.168.0.140
Hostname=node2
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@node2 zabbix]# systemctl enable zabbix-agent
[root@node2 zabbix]# systemctl start zabbix-agent
快速開始
1.登錄和配置用戶
2.新建主機
3.新建監(jiān)控項
Zabbix_agent key列表:https://blog.csdn.net/apache0554/article/details/45821591
4.新建觸發(fā)器
5.新建模版
Proxy代理介紹
- Zabbix Proxy 可以代替 Zabbix Server 檢索客戶端的數(shù)據(jù)害晦,然后把數(shù)據(jù)匯報給 Zabbix Server,
并且在一定程度上分擔了 Zabbix Server 的壓力暑中。Zabbix Proxy 可以非常簡便的實現(xiàn)了集中式壹瘟、分布式監(jiān)控。 - Zabbix Proxy 使用場景:
- 監(jiān)控遠程區(qū)域設備
- 監(jiān)控本地網(wǎng)絡不穩(wěn)定區(qū)域
- 當 Zabbix 監(jiān)控上千設備時鳄逾,使用它來減輕 Server 的壓力
- 簡化 Zabbix 的維護
- Zabbix Proxy 數(shù)據(jù)庫必須和 Zabbix Server 分開稻轨,否則數(shù)據(jù)會被破壞,畢竟這兩個數(shù)據(jù)庫的表大部分都相同雕凹。
- Zabbix Proxy 收集到數(shù)據(jù)之后殴俱,首先將數(shù)據(jù)緩存在本地,然后在一定的時間之后傳遞給 Zabbix Server枚抵。
這個時間由 Zabbix Proxy 配置文件中參數(shù) ProxyLocalBuffer and ProxyOfflineBuffer 決定线欲。 - Zabbix Proxy 是一個數(shù)據(jù)收集器,它不計算觸發(fā)器汽摹、不處理事件李丰、不發(fā)送報警。
Proxy代理部署
node3代理端
安裝相關(guān)軟件包:
[root@node3 ~]# yum install mariadb-server zabbix-proxy-mysql -y
啟動并初始化數(shù)據(jù)庫:
[root@node3 ~]# systemctl start mariadb
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix_proxy@localhost identified by 'zabbix_proxy';
MariaDB [(none)]> flush privileges;
[root@node3 ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.4.15/
[root@node3 zabbix-proxy-mysql-3.4.15]# zcat schema.sql.gz | mysql -uroot zabbix_proxy
編輯配置文件:
[root@node3 ~]# cat /etc/zabbix/zabbix_proxy.conf | grep -Ev "^#|^$"
Server=192.168.0.140
Hostname=Zabbix proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix-proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
啟動Proxy服務:
[root@node3 ~]# systemctl enable zabbix-proxy
[root@node3 ~]# systemctl start zabbix-proxy
Web操作
- 在Web界面配置Zabbix Proxy
- 定位到 Administration -> Proxies -> Create proxy 主要配置如下選項:
Proxy name: 即 Zabbix Proxy 的 hostname
Proxy mode: 即 Zabbix Proxy的工作模式逼泣,默認為主動模式
Hosts Proxy hosts: 選擇哪些機器處于 Proxy 模式
- 添加 Proxy 架構(gòu)的主機監(jiān)控
- 添加主機的方式和正常模式一樣嫌套,唯一不同的是 Monitored by proxy 選擇對應的 Proxy 節(jié)點。
- 如果是已經(jīng)存在的沒有被 Proxy 監(jiān)控的節(jié)點圾旨,修改成被 Proxy 代理監(jiān)控時踱讨,
- 需要修改 Zabbix Agent 配置文件,將 Server/ServerActive 配置成 Proxy 的 IP
node2客戶端
[root@node2 ~]# cat /etc/zabbix/zabbix_agentd.conf | grep -e "^Server"
Server=192.168.0.142
ServerActive=192.168.0.142