zabbix安裝過程php
(圖片太多很差粘貼,本文省略,主要是之後本身查起來方便,偷個懶呢)css
mysqlhtml
PHPmysql
nginxnginx
zabbix-serversql
zabbix-agent數據庫
安裝zabbix以前須要準備基本環境,須要安裝mysql、nginx、php,詳細安裝見一下連接vim
mysql安裝:https://www.cnblogs.com/Christine-ting/p/10697708.htmlapi
nginx安裝:https://www.cnblogs.com/Christine-ting/p/10697726.html瀏覽器
PHP安裝:https://www.cnblogs.com/Christine-ting/p/11328071.html
安裝mysql:
https://www.cnblogs.com/Christine-ting/p/10697708.html
建立zabbix數據庫,和用戶,並執行導入zabbix數據文件
一、進入數據庫,建立用戶
create database zabbix character set utf8;
GRANT all privileges ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix..321com';
flush privileges;
二、導入數據文件
use zabbix;
source /opt/zabbix-4.2.5/database/mysql/schema.sql;
source /opt/zabbix-4.2.5/database/mysql/images.sql;
source /opt/zabbix-4.2.5/database/mysql/data.sql;
安裝PHP:
https://www.cnblogs.com/Christine-ting/p/11328071.html
修改監聽方式爲端口監聽
安裝nginx:
https://www.cnblogs.com/Christine-ting/p/10697726.html
一、安裝
二、建立zabbix的訪問根目錄,並將zabbix的PHP文件拷貝到此目錄
mkdir /data/zabbix/zabbix -p
cp /opt/zabbix-4.2.5/frontends/php/* /data/zabbix/zabbix/ -rp
三、配置關於zabbix的nginx配置文件
zabbix.conf
server
{
listen 80;
index index.html index.htm index.php;
root /data/zabbix;
location ~ ^(.+.php)(.*)$ {
fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass /tmp/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location /nginx_status
{
stub_status on;access_log off;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
access_log /opt/logs/zabbixaccess.log;
}
3、
安裝zabbix:
1、下載安裝包,上傳到opt目錄下,下載地址:https://www.zabbix.com/download_sources
2、解壓安裝包:cd /opt && tar -zcvf zabbix-4.2.5.tar.gz
3、建立用戶:
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System"zabbix
四、爲zabbix建立家目錄
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix
五、安裝依賴包:yum install mysql-devel net-snmp-devel curl curl-devel libevent-devel
六、執行編譯,編譯完成後會在/usr/lib/zabbix/下生成文件目錄
cd zabbix-4.2.5 && ./configure --prefix=/usr/lib/zabbix/ --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make install
七、爲zabbix相關命令建立軟鏈接
ln -s /usr/lib/zabbix/sbin/zabbix_server /usr/bin/#zabbixserver啓動命令
ln -s /usr/lib/zabbix/sbin/zabbix_agentd /usr/bin/#zabbixagent啓動命令
ln -s /usr/lib/zabbix/bin/zabbix_get /usr/bin/ #獲取agent狀態的命令
八、編輯zabbix_server.conf文件,修改一下字段
vim /usr/lib/zabbix/etc/zabbix_server.conf
ListenPort=10051#server監聽的端口
LogFile=/tmp/zabbix_server.log
DBHost=localhost#數據庫的IP
DBName=zabbix#數據庫名字
DBUser=zabbix#數據庫用戶名
DBPassword=zabbix..321com#數據庫用戶密碼
DBSocket=/tmp/mysql.sock#數據庫的sock文件位置
DBPort=3306#數據庫端口
ListenIP=0.0.0.0server監聽的IP範圍
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts#server執行腳本的位置,如微信報警腳本等
LogSlowQueries=3000
九、修改zabbix_agentd.conf文件,修改如下字段
LogFile=/tmp/zabbix_agentd.log
Server=127.0.0.1#zabbix-server的IP地址
ServerActive=127.0.0.1#zabbix-server的IP:端口,在本機上不用加端口
Hostname=10.128.0.48#agent本機IP
十、啓動zabbix-server和zabbix-agent進程
在瀏覽器中打開zabbix
一、打開瀏覽器http://ip/zabbix,以下圖,點擊下一步
2、檢查前期要求,後面都是OK狀態,若是存在不知足的選項,須要想辦法解決掉
3、配置mysql鏈接,須要填寫數據庫地址、端口、庫名、用戶名、密碼等
4、填寫zabbix-server的地址、端口和server名字,填寫完成以後會自動建立zabbix-server的相關配置文件並寫庫
5、初始化zabbix完成後,會提示登陸,以下圖,若是直接登陸,是以guest的身份登陸,咱們要點擊Go to dashboard,以後會出現登陸界面,默認用戶是Admin,密碼是zabbix
6、登陸完成後會進入到主頁面,以下圖,咱們首先要設置zabbix的語言環境、修改管理員的默認密碼、禁止guest用戶登陸,點擊右上角的人形按鈕
7、點擊Admin設置語言環境和修改密碼,修改,也能夠新建管理用戶
8、修改密碼或者新建用戶以後,退出從新登陸,以下圖
九、安裝被監控主機agent
爲被監控主機安裝zabbix-agent,最好與zabbix版本一致
在被監控主機執行如下腳本
function Check (){
Agentd=/usr/local/zabbix/sbin/zabbix_agentd
if test -e $Agentd && "$Agentd" -V2 | grep 4.2 > /dev/null
then
echo "Zabbix_agentd 4.2 has been already installed. Exit" && exit
else
test -f zabbix_agentd_install.sh && rm -f zabbix_agentd_install.sh
test -f /usr/local/zabbix/sbin/zabbix_agentd && rm -rf /usr/local/zabbix/sbin/zabbix_agentd
test -f /etc/init.d/zabbix_agentd && rm -f /etc/init.d/zabbix_agentd
fi
}
#配置相關
function Config(){
Server=$1
IP="`ifconfig | grep -o 'inet [0-9.]*' | grep -o '[0-9.]*$' | grep -e '^192\.' -e '^10\.' -e '^172\.'`" #內網IP獲取
#IP="`curl ip.6655.com/ip.aspx`" #公網IP獲取
mkdir -p /usr/local/zabbix/sbin/
mkdir -p /usr/local/zabbix/etc/
mkdir -p /var/log/zabbix/ && touch /var/log/zabbix/zabbix_agentd.log
chown zabbix:zabbix /var/log/zabbix/zabbix_agentd.log && chmod 755 /var/log/zabbix/zabbix_agentd.log
cd /usr/local/zabbix/sbin/
cat > /usr/local/zabbix/etc/zabbix_agentd.conf <<EOF
Server=${Server}
Hostname=${IP}
ServerActive=${Server}:10051
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=10
BufferSize=1024
EOF
}
function Install(){
yum install -y gcc pcre*
wget http://35.198.217.74:8088/09/mc/drum/zabbix-4.2.3.tar.gz
tar zxvf zabbix-4.2.3.tar.gz && cd zabbix-4.2.3
./configure --prefix=/usr/local/zabbix --enable-agent && make && make install
echo 'zabbix-agent 10050/tcp # Zabbix Agent'>>/etc/services
echo 'zabbix-agent 10050/udp # Zabbix Agent'>>/etc/services
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd
chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
chmod +x /etc/init.d/zabbix_agentd
chmod +x /usr/local/zabbix/sbin/zabbix_agentd
groupadd zabbix
useradd -g zabbix zabbix -s /bin/false
Config $1
service zabbix_agentd start && chkconfig zabbix_agentd on
rm -rf ~/zabbix-4.2.0 && rm -rf ~/zabbix-4.2.0.tar.gz
echo ---------------------Result---------------------------------
netstat -ntlp | grep zabbix_agentd && echo -e "\033[33minstall Succeed.\033[0m" || echo -e "\033[31minstall Failed.\033[0m"
}
if [ -z $1 ]
then
Server="10.148.0.99" ###zabbix-server的IP地址,必定要記得改,不改的話在執行腳本的時候,須要帶上zabbix-server的IP
else
Server=$1
fi
#main
Check
Install $Server
若是須要批量安裝zabbix-agent,能夠執行如下腳本
ips="10.148.0.11 ##agent的IP
10.148.0.12
10.148.0.13
10.148.0.14
10.148.0.15
"
for i in $ips
do
echo $i
scp addagent.sh $i:/home/apple && echo $i scp successed! ##將安裝agent的腳本拷貝到主機
ssh $i "sudo sh /home/apple/addagent.sh" ##遠程執行腳本
#ssh $i "ps -ef | grep zabbix | grep -v grep" ##安裝完成後能夠檢查是否安裝成功
echo
done
十、添加被監控主機agent
在監控頁面點擊「配置」、「主機」、「建立主機」,如圖
爲主機設置組和模版
主機名稱是agent的IP地址
可見的名稱填寫容易記憶的別名,選擇羣組,便於管理,能夠在現有的羣組中選擇,也能夠新建羣組。根據不一樣需求添加不一樣監控模版,通常選擇Templat OS Linux
agent代理程序IP地址填寫agent的IP
設置以後點擊添加
十一、自定義監控模版
主要針對監控特定的程序,當程序異常能夠發出報警
建立模版,填上模版名稱,羣組能夠根據本身須要選擇,也能夠在建立模版以前本身建立羣組。
點擊監控項,再自定義監控項
編輯監控鍵值,我這裏是定義監控端口,當檢測到端口不通會發出報警,以後更新保存,以後在主機監控中就能夠選擇這個模版對服務器進行監控
十二、添加微信報警
在管理中選擇報警媒介類型,選擇建立媒體類型
自定義微信報警,制定腳本名稱,這個腳本應該存放在zabbix-server上指定的路徑,該路徑在zabbix-server文件中有配置:AlertScriptsPath=/usr/lib/zabbix/alertscripts,該微信腳本weixin.sh內容以下(以前須要申請企業微信帳號):
#SCRIPT_NAME: weixin.sh
#DESCRIPTION: send message from weixin for zabbix monitor
#!/bin/bash
CropID='wwe1f9cb0XXXXXXd4df' # 個人企業的CorpID
Secret='NR2h-W3tZd2TOHXXXXXZ-QSjz2RzVk9_jTC0ikpeg4' # 建立應用時的Secret
#獲取access_token
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body () {
local int AppId=1000002 #應用的id
local UserId=$1 #發送的用戶位於$1字符串
local PartyId=1 # 通信錄中部門的ID
local Meg=$(echo "$@" | cut -d" " -f3-)
echo """{
\"touser\" : \"$UserId\",
\"toparty\" : \"$PartyId\",
\"msgtype\" : \"text\",
\"agentid\" : \"$AppId\",
\"text\" : {
\"content\" : \"$Meg\"}
}"""
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
配置好微信報警腳本後還須要設置「動做」,纔會將微信報警關聯起來。
新建動做
設置操做
標題:{TRIGGER.STATUS}:{TRIGGER.NAME}
消息內容:
\n報警主機: {HOST.NAME}\n
主機IP: {HOST.IP}\n
狀態:{TRIGGER.STATUS}\n
報警時間: {EVENT.DATE} {EVENT.TIME}\n
報警等級: {TRIGGER.SEVERITY}\n
報警信息: {TRIGGER.NAME}\n
問題詳情: {ITEM.NAME}:{ITEM.VALUE}\n
事件ID: {EVENT.ID}\n
設置恢復操做
標題:Resolved: {TRIGGER.NAME}
消息內容:
\n主機:{HOST.NAME}\n
地址:{HOST.IP}\n
狀態:{TRIGGER.STATUS}\n
時間:{EVENT.DATE} {EVENT.RECOVERY.TIME}\n
級別: {TRIGGER.SEVERITY}\n
內容: {TRIGGER.NAME}:{ITEM.VALUE}\n
事件ID: {EVENT.ID}\n
操做(「動做」和「恢復操做」都須要設置):選擇發送用戶羣組、用戶、發送方式,添加更新保存