筆記zabbix

常用系統監控命令
一般企業做監控的目的:實時報告系統狀態,提前發現系統的問題。
監控的資源可以分爲:共有數據(HTTP、FTP等)和私有數據(CPU、內存、 進程數等)。
監控軟件可以使用:系統自帶的命令、Cacti監控系統、Nagios監控系統、 Zabbix監控系統。
查看內存信息
]# free // 查看內存信息
]# free | awk '/Mem/{print $4}' // 查看剩餘內存容量
查看交換分區信息
]# swapon -s // 查看交換分區信息
查看磁盤信息
]# df // 查看所有磁盤的使用率
]# df | awk '/\/$/{print $5}' // 查看根分區的利用率
查看CPU平均負載
]# uptime // 查看CPU負載(1,5,15分鐘)
]# uptime |awk '{print $NF}' // 僅查看CPU的15分鐘平均負載
查看網卡信息
]# ifconfig eth0
]# ifconfig eth0 |awk '/inet /{print $2}' // 查看IP地址信息
]# ifconfig eth0 |awk '/RX p/{print $5}' // 網卡接受數據包流量
]# ifconfig eth0 |awk '/TX p/{print $5}' // 網卡發送數據包流量
查看端口信息
]# ss -ntulp // 查看本機監聽的所有端口
//-n以數字顯示端口號
//-t顯示tcp連接
//-u顯示udp連接
//-p顯示監聽端口對應的程序名稱
查看網絡連接信息
]# ss -antup // 查看所有的網絡連接信息
//-a查看所有連接狀態信息
部署Zabbix監控平臺
拓撲規劃
Zabbixsever eth1:192.168.2.5
Zabbixclient_web1 eth1:192.168.2.100
Zabbixclient_web2 eth1:192.168.2.200
部署監控服務器
安裝LNMP環境
// Zabbix監控管理控制檯需要通過Web頁面展示出來,並且還需要使用 MySQL來存儲數據,因此需要先爲Zabbix準備基礎LNMP環境。

]# yum -y install gcc pcre-devel openssl-devel
]# tar -xf nginx-1.12.2.tar.gz
]# cd nginx-1.12.2
nginx-1.12.2]# ./configure --with-http_ssl_module
nginx-1.12.2]# make && make install
]# yum -y install php php-mysql mariadb mariadb-devel mariadb-server
]# yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm
//注意,php-fpm這個軟件包在lnmp_soft/目錄下
修改Nginx配置文件
// 配置Nginx支持PHP動態網站,因爲有大量PHP腳本需要執行,因此 還需要開啓Nginx的各種fastcgi緩存,加速PHP腳本的執行速度。

]# vim /usr/local/nginx/conf/nginx.conf
… …
http{
… …
fastcgi_buffers 8 16k; // 緩存php生成的頁面內容,8個16k
fastcgi_buffer_size 32k; // 緩存php生產的頭部信息
fastcgi_connect_timeout 300; // 連接PHP的超時時間
fastcgi_send_timeout 300; // 發送請求的超時時間
fastcgi_read_timeout 300; //讀取請求的超時時間
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
} // 實現動靜分離,動態網站
啓動服務
// 啓動Nginx、PHP-FPM、MariaDB服務,關閉SELinux與防火牆。

]# systemctl start mariadb
]# systemctl start php-fpm
]# ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
]# nginx

]# firewall-cmd --set-default-zone=trusted
]# setenforce 0
客戶端測試LNMP環境
// 服務器創建PHP測試頁面,瀏覽器訪問頁面測試網頁連通性。

]# vim /usr/local/nginx/html/test.php
<?php
$i=33;
echo $i;
?>
]# curl http://192.168.2.5/test.php

部署監控服務器Zabbix Server
源碼安裝Zabbix Server
// 多數源碼包都是需要依賴包的,zabbix也一樣,源碼編譯前需要先安裝 相關依賴包。

先安裝3個依賴包

]# yum -y install net-snmp-devel //監控交換機、路由器這種網絡設備
]# yum -y install curl-devel //監控公共設備(http、ftp等)
lnmp_soft]# yum -y install

libevent-devel-2.0.21-4.el7.x86_64.rpm // 驅動
//注意libevent-devel這個軟件包在lnmp_soft目錄下有提供

再安裝源碼包

lnmp_soft]# tar -xf zabbix-3.4.4.tar.gz
lnmp_soft]# cd zabbix-3.4.4/
zabbix-3.4.4]# ./configure --enable-server \

--enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config \
--with-net-snmp --with-libcurl

// --enable-server安裝部署zabbix服務器端軟件
// --enable-agent安裝部署zabbix被監控端軟件
// --enable-proxy安裝部署zabbix代理相關軟件
// --with-mysql配置mysql_config路徑
// --with-net-snmp允許zabbix通過snmp協議監控其他設備
// --with-libcurl安裝相關curl庫文件,這樣zabbix就可以通過curl連接 http等服務,測試被監控主機服務的狀態
zabbix-3.4.4]# make && make install

初始化Zabbix
// 創建數據庫,上線Zabbix的Web頁面

]# mysql
mysql> create database zabbix character set utf8;
// 創建數據庫,支持中文字符集
mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
// 創建可以訪問數據庫的賬戶與密碼
]# cd lnmp_soft/zabbix-3.4.4/database/mysql/
mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
// 剛剛創建是空數據庫,zabbix源碼包目錄下,有提前準備好的數據
// 使用mysql導入這些數據即可(注意導入順序)

修改Zabbix_server配置文件,設置數據庫相關參數,啓動Zabbix_server服務
]# vim /usr/local/etc/zabbix_server.conf
DBHost=localhost
// 數據庫主機,默認該行被註釋
DBName=zabbix
// 設置數據庫名稱

DBPassword=zabbix
// 設置數據庫密碼,默認該行被註釋
LogFile=/tmp/zabbix_server.log
// 設置日誌,僅查看以下即可

]# useradd -s /sbin/nologin zabbix // 不創建用戶無法啓動服務

zabbix_server // 啓動服務

]# ss -ntulp |grep zabbix_server // 確認連接狀態,端口10051

提示:如果是因爲配置文件不對,導致服務無法啓動時,不要重複執行zabbix_agentd,一定要先使用killall zabbix_agentd關閉服務後,再重新啓動一次。

瀏覽器訪問Zabbix_server服務器的Web頁面
]# firefox http://192.168.2.5/index.php
// 第一次訪問,初始化PHP頁面會檢查計算機環境是否滿足要求,如 果不滿足會給出修改建議。
// 默認會提示PHP的配置不滿足環境要求,需要修改PHP配置文件。
修改PHP配置文件,根據錯誤提示,滿足Zabbix_server的Web環境要求
// php-bcmath和php-mbstring都在lnmp_soft目錄下有提供軟件包。

]# yum -y install php-gd php-xml
]# yum install php-bcmath-5.4.16-42.el7.x86_64.rpm
]# yum install php-mbstring-5.4.16-42.el7.x86_64.rpm
]# vim /etc/php.ini
date.timezone = Asia/Shanghai // 設置時區
max_execution_time = 300 // 最大執行時間,秒
post_max_size = 32M // POST數據最大容量
max_input_time = 300 // 服務器接收數據的時間限制
memory_limit = 128M // 內存容量限制
]# systemctl restart php-fpm

修改完PHP配置文件後,再次使用瀏覽器訪問服務器,則會有提示信息。
// 都顯示ok,這裏有一個PHP LDAP是warning狀態是沒有問題的!

在初始化數據庫頁面,填寫數據庫相關參數
筆記zabbix

// 密碼也是zabbix
筆記zabbix
在登陸頁面,使用用戶(admin)和密碼(zabbix)登陸

// 登陸後設置語言環境爲中文

部署被監控主機Zabbix Agent
源碼安裝Zabbix agent軟件
// 在2.100和2.200做相同操作(以zabbixclient_web1爲例)。
[root@zabbixclient_web1 ~]# useradd -s /sbin/nologin zabbix
]# yum -y install gcc pcre-devel
]# tar -xf zabbix-3.4.4.tar.gz
]# cd zabbix-3.4.4/
zabbix-3.4.4]# ./configure --enable-agent
zabbix-3.4.4]# make && make install
修改agent配置文件,啓動Agent
]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.2.5
// 誰可以監控本機(被動監控模式)

ServerActive=127.0.0.1,192.168.2.5
// 誰可以監控本機(主動監控模式)
Hostname=zabbix_client_zabbixclient_web1 // 被監控端自己的主機名
EnableRemoteCommands=1
//監控異常後,是否允許服務器遠程過來執行命令,如重啓某個服務
UnsafeUserParameters=1 // 是否允許自定義key監控

拷貝啓動腳本(非必須操作,可選做),有啓動腳本可以方便管理服務,啓動與關閉服務。啓動腳本位於zabbix源碼目錄下。
zabbix-3.4.4]# cd misc/init.d/fedora/core
zabbix-3.4.4]# cp zabbix_agentd /etc/init.d/
zabbix-3.4.4]# /etc/init.d/zabbix_agentd start|stop|status|restart

配置及使用Zabbix監控系統
// 通過Zabbix監控平臺,添加被監控zabbixclient_web1主機 (192.168.2.100)並鏈接監控模板即可,Zabbix默認模板就可以監控 CPU、內存、進程、網絡、磁盤等項目。

添加監控主機
// 主機是Zabbix監控的基礎,Zabbix所有監控都是基於Host主機。

添加被監控Linux主機
使用火狐瀏覽器登錄http://192.168.2.5,通過Configuration(配置)-->Hosts(主機)-->Create Host(創建主機)添加被監控Linux主機。
添加被監控主機時,需要根據提示輸入被監控Linux主機的主機名稱(最好與電腦的主機名一致,但也允許不一致)、主機組、IP地址等參數。
筆記zabbix

爲被監控主機添加監控模板
Zabbix通過監控模板來對監控對象實施具體的監控功能,根據模板來定義需要監控哪些數據,對於Linux服務器的監控,Zabbix已經內置了相關的模板(Template OS Linux),選擇模板並鏈接到主機即可。
筆記zabbix

查看監控數據
查看監控數據
登錄Zabbix Web控制檯,點擊Monitoring(監控中)—> Latest data(最新數據),正過濾器中填寫過濾條件,根據監控組和監控主機選擇需要查看哪些監控數據。
筆記zabbix

查看監控圖形
// 找到需要監控的數據後,可以點擊後面的Graph查看監控圖形

自定義Zabbix監控項目
被監控主機創建自定義key(在192.168.2.100操作)
創建自定義key
// 自定義的key文件一般存儲在/usr/local/etc/zabbix_agentd.conf.d/目錄,這裏還需要修改zabbix_agentd.conf文件,允許自定義監控key,來讀取該目錄下的所有文件 。

]# vim /usr/local/etc/zabbix_agentd.conf
Include=/usr/local/etc/zabbix_agentd.conf.d/ // 加載配置文件目錄
]# cd /usr/local/etc/zabbix_agentd.conf.d/
zabbix_agentd.conf.d]# vim count.line.passwd
UserParameter=count.line.passwd,wc -l /etc/passwd | awk '{print $1} '
// 自定義key語法格式爲:UserParameter=自定義key名稱,命令。

測試自定義key是否正常工作
]# killall zabbix_agentd
]# zabbix_agentd //重啓agent服務
]# zabbix_get -s 127.0.0.1 -k count.line.passwd
注意:如zabbix_get命令執行錯誤,提示Check access restrictions in Zabbix agent configuration,則需要檢查agent配置文件是否正確:如下
]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.2.5
ServerActive=127.0.0.1,192.168.2.5

創建監控模板
添加監控模板
登錄Zabbix Web監控控制檯,通過Configuration(配置)-->Template(模板)-->Create template(創建模板),填寫模板名稱,新建模板羣組。

創建模板後,默認模板中沒有任何應用、項目、觸發器、圖形等。

創建應用
創建完成模板後,默認模板中沒有任何應用、項目、觸發器、圖形等資源。這裏需要點擊模板後面的Application(應用集)鏈接打開創建應用的頁面。

點擊Application(應用集)後,會刷新出圖-16所示頁面,在該頁面中點擊Create application(創建應用集)按鈕。

設置應用名稱

創建監控項目item(監控項)
與創建應用一樣,在模板中還需要創建監控項目,如圖-18所示,並在刷新出的新頁面中選擇Create items(創建監控項)創建項目

接下來,還需要給項目設置名稱及對應的自定義key

創建圖形
爲了後期可以通過圖形的方式展示監控數據,還需要在模板中創建圖形,設置方法與前面的步驟一致,在監控模板後面點擊Graph(圖形)即可創建圖形,設置監控圖形基於什麼監控數據

將模板鏈接到被監控主機
將完整的監控模板製作完成後,就可以將模板鏈接到主機實現監控功能了。首先找到被監控主機Configuration(配置)-->Hosts(主機)

點擊需要的被監控主機鏈接,打開監控主機設置頁面,在Template(模板)頁面中選擇需要鏈接到該主機的模板,在此選擇剛剛創建的模板count_line.passwd添加即可

查看監控數據圖形
點擊Monitoring(監控中)-->Craphs(圖形),根據需要選擇條件,查看監控圖形

面試題
從哪些方面優化nginx,怎麼樣提高nginx性能
優化併發量connection
優化頁面壓縮gzip
優化頭部信息緩存大小
優化數據緩存大小
優化連接時的超時時間
優化發送請求時的超時時間

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章