Linux安全基本知識——zabbix
Zabbix 監控服務
0. 環境準備:在zabbix伺服器上搭建lnmp服務,讓zabbix監控用網頁展示出來 0.1 安裝nginx,並修改主配置
http { …… fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; …… server { …… location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi.conf; } …… } …… }
0.2 安裝資料庫服務mariadb,給zabbix建立一個登陸使用者,以及儲存資料的庫
[[email protected] ~]# yum install -y mariadb-server mariadb systemctl restart mariadb mysqladmin -uroot password '密碼' mysql -u root -p密碼 -e'create database 庫名 character set utf8' mysql -u root -p密碼 -e'grant all on 庫名.* to 使用者名稱@"localhost" identified by "密碼"'
0.3 準備php環境 ,裝包php-fpm並啟動服務即可,然後檢視一些nginx能不能解析php檔案。
0.4 建立一個zabbix使用者
1. 安裝Zabbix服務 1.1 安裝依賴項軟體
[[email protected] ~]# yum -y install gcc make net-snmp-devel curl-devel libevent-devel(這個包可能沒有,需要到網上下載)
1.2 進行原瑪編譯安裝
[[email protected] ~]# tar -xf zabbix.tar.gz && cd zabbix
[ [email protected] zabbix]# ./configure --prefix=/安裝位置 --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
# 配置成功後,會有下面這個提示,然後可以安裝了
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
[[email protected] zabbix]# make && make install
--enable-server | 安裝部署zabbix伺服器端軟體 |
--enable-agent | 安裝部署zabbix被監控端軟體,讓zabbix可以監控自己 |
--enable-proxy | 安裝部署zabbix代理相關軟體,這樣zabbix可以連線代理伺服器進行監控 |
--with-mysql=資料庫目錄 | 配置mysql_config路徑, =資料庫目錄 可以不寫,這樣預設資料存在/var/lib/mysql下 |
--with-net-snmp | 允許zabbix通過snmp協議監控其他裝置 (需要依賴項) |
--with-libcurl | 安裝相關curl庫檔案,這樣zabbix就可以通過curl連線http等服務,測試被監控主機服務的狀態 (需要依賴項) |
1.3 進行資料初始化,從原始碼包中拷貝php檔案,匯入資料庫資訊
[[email protected] zabbix]# cp -r frontends/php/ /網站網頁目錄/html/zabbix
[[email protected] zabbix]# cd database/mysql/
[[email protected] mysql]# mysql -u yzy -p密碼 zabbix < schema.sql
[[email protected] mysql]# mysql -u yzy -p密碼 zabbix < images.sql
[[email protected] mysql]# mysql -u yzy -p密碼 zabbix < data.sql
1.4 進行php基本配置
[[email protected] ~]# yum -y install php-gd php-xml php-ldap
[[email protected] ~]# yum install -y php-bcmath php-mbstring php-common
# 這幾個yum預設沒有,需要上網下載,而且他們的版本需要一樣,其中php-common系統預設安裝是是5.4.16版本
# 修改php引數然後重啟服務
[[email protected] ~]# sed -i '/max_execution_time/cmax_execution_time = 300' /etc/php.ini
sed -i '/^max_input_time/cmax_input_time = 300' /etc/php.ini
sed -i '/post_max_size/cpost_max_size = 16M' /etc/php.ini
sed -i '/;date.timezone/cdate.timezone = Asia\/ShangHai' /etc/php.ini
[[email protected] ~]# systemctl restart php-fpm
php.ini配置解釋 | |
date.timezone | 設定時區 |
max_execution_time | 最大執行時間,秒 |
post_max_size | POST資料最大容量 |
max_input_time | 伺服器接收資料的時間限制 |
memory_limit | 記憶體容量限制 |
2. 進行Zabbix服務初始配置 2.1 進行網頁配置
[[email protected] ~]# cp -r /zabbix/frontends/php/ /網站網頁目錄/html/zabbix
[[email protected] ~]# chmod o+w /網站網頁目錄/html/zabbix/conf/
兩個辦法:一個是用瀏覽器訪問Zabbix的php網頁然後進行配置,不過再進行配置前,需要修改許可權:暫時讓一個其他人可以修改,在頁面配置好後,再改回來 另一個是手寫配置檔案 再拷貝了原始碼包中的php檔案目錄下的conf檔案中寫一個zabbix.conf.php
[[email protected] ~]# cat > /網站網頁目錄/conf/zabbix.conf.php <<EOF
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = 'localhost';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbix資料庫名';
$DB['USER'] = 'zabbix使用者名稱';
$DB['PASSWORD'] = '資料庫密碼';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = '本機IP';
$ZBX_SERVER_PORT = '埠號';
$ZBX_SERVER_NAME = '自定義一個服務名';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
EOF
2.2 改配置檔案,以及拷貝啟動指令碼到path位置,然後就可以用指令碼開始啟動服務
[[email protected] ~]# sed -i '/DBHost=/cDBHost=localhost' /zabbix工作目錄/etc/zabbix_server.conf
sed -i '/^DBName=/cDBName=zabbix資料庫名' /zabbix工作目錄/etc/zabbix_server.conf
sed -i '/^DBUser=/cDBUser=zabbix資料庫使用者名稱' /zabbix工作目錄/etc/zabbix_server.conf
sed -i '/DBPassword=/cDBPassword=資料庫密碼' /zabbix工作目錄/etc/zabbix_server.conf
cp /zabbix原始碼包/misc/init.d/fedora/core/zabbix_* /usr/local/bin/
sed -i '/BASEDIR=/c\ BASEDIR=/zabbix工作目錄' /usr/local/bin/zabbix_server
[[email protected] ~]# zabbix_server start
netstat -ntlup | grep 10051
DBHost=localhost | 資料庫主機,預設該行被註釋 |
DBName=zabbix | 設定資料庫名稱 |
DBUser=zabbix | 設定資料庫賬戶 |
DBPassword=zabbix | 設定資料庫密碼,預設該行被註釋 |
LogFile=/tmp/zabbix_server.log | 設定日誌,僅檢視以下即可 |
3. 基本監控配置 3.1 監控本機
LogFile | 指定日誌檔案的儲存資訊 |
Server | Agent服務可以被哪些IP訪問 |
ServerActive | zabbix監控伺服器的IP和埠 |
UnsafeUserParameters | 可以自定義監控命令 |
Include=/zabbix工作目錄/etc/zabbix_agentd.conf.d/*.conf | 自定義操作命令的配置資訊 |
[[email protected] ~]# sed -i '/^Server=/cServer=127.0.0.1' /zabbix工作目錄/etc/zabbix_agentd.conf
sed -i '/^ServerActive=/cServerActive=127.0.0.1:10051' /zabbix工作目錄/etc/zabbix_agentd.conf
sed -i '/UnsafeUserParameters=/cUnsafeUserParameters=1' /zabbix工作目錄/etc/zabbix_agentd.conf
sed -i '/Option: Include/aInclude=/zabbix工作目錄/etc/zabbix_agentd.conf.d/*.conf' /zabbix工作目錄/etc/zabbix_agentd.conf
sed -i '/BASEDIR=/c\ BASEDIR=/zabbix工作目錄' /usr/local/bin/zabbix_agentd
[[email protected] ~]# zabbix_agentd start
netstat -ntlup | grep 10050
3.2 監控遠端主機(裝包[原始碼編譯]、配置、啟服務)
3.2.1 安裝依賴項、解壓目錄、配置、編譯、安裝
[[email protected] ~]# yum install -y gcc pcre-devel
[[email protected] ~]# tar -xf zabbix原始碼包
[[email protected] ~]# cd zabbix解壓後原始碼包目錄
[[email protected] zabbix]# ./configure --prefix=/zabbix工作目錄 --enable-agent && make && make install
3.2.2 修改agent配置檔案、拷貝並修改啟動指令碼
[[email protected] ~]# sed -i '/^Server=/cServer=127.0.0.1,監控伺服器的IP' /zabbix工作目錄/etc/zabbix_agentd.conf
sed -i '/^ServerActive=/cServerActive=監控伺服器的IP:10051' /zabbix工作目錄/etc/zabbix_agentd.conf
sed -i '/UnsafeUserParameters=/cUnsafeUserParameters=1' /zabbix工作目錄/etc/zabbix_agentd.conf
sed -i '/Option: Include/aInclude=/zabbix工作目錄/etc/zabbix_agentd.conf.d/*.conf' /zabbix工作目錄/etc/zabbix_agentd.conf
[[email protected] ~]# cp /zabbix原始碼包/misc/init.d/fedora/core/zabbix_* /usr/local/bin/
sed -i '/BASEDIR=/c\ BASEDIR=/zabbix工作目錄' /usr/local/bin/zabbix_agentd
3.2.3 建立使用者、使用指令碼啟動服務
[[email protected] ~]# useradd zabbix ; zabbix_agentd start
4. 自定義監控項 4.1 配置被監控端 4.1.1 允許自定義監控項,對UnsafeUserParameters、Include兩個欄位的資料修改,上面配置中有寫 4.1.2 定義監控命令
[[email protected] ~]# cat > /zabbix工作目錄/etc/zabbix_agentd.conf.d/自定義檔名.conf << EOF
UserParameter=自定義命令名,Linux命令(一些特殊字元用 \ 來取消其含義)
EOF
# 修改完成後,重其agent服務
[[email protected] ~]# zabbix_agentd restart
4.1.3 測試定義監控命令
[[email protected] ~]# /zabbix工作目錄/bin/zabbix_get -s 127.0.0.1 -p 10050 -k 自定義的命令名
4.2 配置監控端 4.2.1 測試被監控端寫的命令能不能用
[[email protected] ~]# /zabbix工作目錄/bin/zabbix_get -s 被監控端IP地址 -p 10050 -k 自定義的命令名
4.2.2 建立模板、建立應用集、建立監控項 (圖形介面解決)