下記錄是筆者兩年前實際操作的完整記錄,包含Zabbix平臺的安裝及配置,微信通知告警等實際操作,還包含不少在zabbix手冊中不會提到但與實際應用密切相關的Linux相關操作,用這個記錄文檔一兩天內做一個完整的Zabbix系統毫無問題,我已驗證過。
Zabbix原生系統界面
#本文檔目的是安裝Zabbix 4.0LTS平臺,依次Zabbix安裝CentOS 7.4 / Zabbix平臺及依賴包
#Dell R510帶遠程控制卡,可以WWW遠程管理。在192.168.3.250上,zabbix@root
#安裝好后從Zabbix_Server的log查詢,結果如下:
# SNMP monitoring: YES
# IPMI monitoring: YES
# Web monitoring: YES
# VMware monitoring: YES
# SMTP authentication: YES
# Jabber notifications: NO
# Ez Texting notifications: YES
# ODBC: NO
# SSH2 support: NO
# IPv6 support: YES
# TLS support: NO
#Zabbix平臺采用編譯安裝模式,支持SNMP及IPMI;CentOS建議安裝最小服務器模式或帶GUI的服務器模式
#Zabbix平臺包括Zabbix_Server,Zabbix_agent
#首先安裝好CentsOS
#最小化安裝的系統缺乏一些組件,以下命令將它們安裝
yum install lrzsz tree net-tools nmap vim bash-completion lsof dos2unix nc telnet ntp wget rng-tools psmisc screen -y
#配置時間同步
#查看時間同步情況
timedatectl
#安裝NTP軟件包并啟動
yum install ntp -y
systemctl restart ntpd
systemctl enable ntpd
#最小安裝包沒有安裝網絡工具包,先安裝下
yum -y install net-tools
#關閉防火墻及Selinux安全服務
#后期為了安全可以打開這兩項服務,但需要重新配置
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
setenforce 0
#查看防火墻狀態
firewall-cmd --state
#安裝依賴軟件包
yum install httpd mariadb mariadb-server php php-mysql php-devel php-xml php-bcmath php-mbstring php-gd wget expect net-snmp gcc mysql-devel libxml2-devel net-snmp-devel libevent-devel curl-devel -y
#下載Zabbix源文件(如先下載了,可以跳過,建議先下載,wget命令下載很慢)
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.12/zabbix-4.0.12.tar.gz
#啟動httpd及sql服務,并增加自啟動
systemctl start httpd
systemctl enable httpd
systemctl enable mariadb
systemctl start mariadb
#數據庫設置(根據要求答y或/n,應答參考initmysqlpassword.sh)
mysql_secure_installation
#解壓縮下載或拷貝進來的zabbix源文件
tar -zxvf zabbix-4.0.12.tar.gz
#增加zabbix系統用戶
cd zabbix-4.0.12
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
#MySQL數據庫設置Zabbix用戶及中文支持(這里實際使用的是CentOS自帶的MySQL的開源分支MariaDB)
cd database/mysql/
mysql -uroot -p123456 -e "create database zabbix character set utf8 collate utf8_bin;"
mysql -uroot -p123456 -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"
mysql -uroot -p123456 -e "flush privileges;"
mysql -uzabbix -pzabbix -e "use zabbix;source schema.sql;source images.sql;source data.sql;"
cd ../..
#openipmi安裝
yum install OpenIPMI
yum install ncurses-devel
yum install OpenIPMI-devel
#Zabbix編譯安裝
./configure --enable-server --enable-agent --with-mysql --with-openssl --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi
make install
#匹配Zabbix與數據庫及httpd
#Zabbix配置文件位于/usr/local/etc;Log文件位于LogFile=/tmp
sed -i s/'# DBPassword='/'DBPassword=zabbix'/g /usr/local/etc/zabbix_server.conf
cp -r frontends/php/ /var/www/html/zabbix
sed -i s/'^max_execution_time.*'/'max_execution_time = 300'/g /etc/php.ini
sed -i s/'^max_input_time.*'/'max_input_time = 300'/g /etc/php.ini
sed -i s/'^post_max_size.*'/'post_max_size = 16M'/g /etc/php.ini
sed -i s/'^;date.timezone.*'/'date.timezone = Asia\/Shanghai'/g /etc/php.ini
#重啟數據庫及網頁服務
systemctl restart httpd
systemctl enable httpd
systemctl restart mariadb
systemctl enable mariadb
#日志中發現Fping未裝,補上,先在fping.org上下載源文件,在root目錄下
tar zxf fping-4.2.tar.gz
cd fping-4.2
./configure && make && make install
#本例中Zabbix_Server.conf中fping路徑指向 /usr/sbin/fping
#實際上fping在l/usr/local/sbin/fping
#fping缺省用戶權限是root,zabbix建立了zabbix組的zabbix用戶
ln -s /usr/local/sbin/fping /usr/sbin/fping
chown root:root /usr/sbin/fping
chmod u+s /usr/sbin/fping
#安裝SNMP工具包
yum -y install net-snmp-utils
#Snmpwalk的一些簡單用法
snmpwalk -v 2c -c public 127.0.0.1 system
snmpwalk -v 2c -c public 127.0.0.1 ifdescr
#啟動Zabbix服務器及代理
#zabbix_server默認日志文件位于/tmp/zabbix_server.log,有問題可以查看這個日志文件
zabbix_server
#確認Zabbix的server及agent是否啟動
netstat -anpt | grep zabbix
#Zabbix_agentd.conf中配置的Hostname需與Web管理端hosts中主機名完全一致
#進入http頁面配置Zabbix_Server
#記住設置的Server Name,在Agent配置中的HostName與此要嚴格一致,含其它機器上的agent
#這里配置的是Zabbix.Dell
#此項配置中 PHP LDAP有報警,未安裝
zabbix_agentd
#Zabbix相關進程的管理方法,systemctl關停進程好像不行
#CentOS精簡版不含killall工具,killall在psmisc工具包中
yum install psmisc
#顯示在運行的zabbix字頭的進程
ps -ef|grep zabbix
killall zabbix_server
#軟件的刪除
#有些軟件會有 make uninstall 之類的功能,但大多都沒有,所以只有手動刪除
#或者在configure的時候加個preifx參數,比如 --preifx=/opt/squid
#這樣當你不用的時候直接rm -rf /opt/squid 就可以了。
#查看RPM方式安裝的軟件包,zabbix為指定名字
rpm -qa | grep zabbix
#企業微信已創建運維部,運維報警信息如下:
#zabbix中創建用戶里對應的賬戶是微信賬號而不是微信號
#AgentId=1000002
#Secret=xxxxxxxxxxxxxxxxxxx
#corpid=wxxxxxxxxxxx71d3244
#--user={ALERT.SENDTO}
#
#--msg={ALERT.MESSAGE}
#微信接口腳本文件位置/usr/lib/zabbix/alertscripts
chown zabbix.zabbix /usr/lib/zabbix/alertscripts/weixin
chmod 755 /usr/lib/zabbix/alertscripts/weixin
#wechat腳本不可用,wexin可用(oneSaas的)
./weixin --corpid=ww4a5f9280471d3244 --corpsecret=xxxxxxxxxxxxxxxxx="云平臺版測試告警" --toparty=2 --agentid=1000002
./weixin.one --corpid=ww4a5f9280471d3244 --corpsecret=2wPqlt6VjygojMzq7-NQcRAZCb4YgXfHLhkct_fWo8o --msg="這里是XXX告警測試" --user=xxxxxxx --agentid=1000002
./wexin.py --corpid=ww4a5f9280471d3244 --corpsecret=2wPqlt6VjygojMzq7-NQcRAZCb4YgXfHLhkct_fWo8o --msg="吃完飯了嗎打麻將去" --user=xxxxxxx --agentid=1000002
#解決zabbix中文顯示亂碼:
#(1)從Windows系列系統復制宋體 常規(simsun.ttc):
#文件路徑 C:\Windows\Fonts
#(2)復制該字體文件到zabbix的web端的fonts目錄下:
#默認rpm安裝位置為:/var/www/html/zabbix/assets/fonts
#注:字體文件的文件后綴名需要是:.ttf,因此改成:simsun.ttf
#(3)修改php配置文件:
cd /var/www/html/zabbix/include/defines.inc.php
vim include/defines.inc.php
#原內容如下:
#define(‘ZBX_GRAPH_FONT_NAME’, ‘graphfont’);
#define(‘ZBX_FONT_NAME’, ‘graphfont’);
#修改成以下內容:
#define(‘ZBX_GRAPH_FONT_NAME’, ‘simsun’);
#define(‘ZBX_FONT_NAME’, ‘simsun’);
#SNMP Trapper也要單獨安裝?
#還需要安裝NMAP,zabbix腳本用到
zabbix監控華為服務器的硬件是通過iBMC,iBMC系統默認支持V3版本的SNMP服務,SNMP V1和SNMP V2C由于自身機制存在安全隱患,默認是不開啟的。如果使用SNMP V1和SNMP V2C需要配置團體名,而用V3只需知道用戶名密碼及加密算法即可。
我們可以現在zabbix server上安裝snmpwalk,然后進行如下測試:
[root@test ~]# snmpwalk -v 3 -u root -a sha -A 'Huawei12#$' -x AES -X 'Huawei12#$' -l authPriv 192.168.5.48 1.3.6.1.4.1.2011.2.235.1.1.1.1.0
SNMPv2-SMI::enterprises.2011.2.235.1.1.1.1.0 = INTEGER: 1
12
我們根據https://share.zabbix.com/cat-server-hardware/huawei/huawei-pc-server提示進行監控華為RH1288 V3服務器。
##配置zabbix1.下載模板在以下鏈接中下載模板https://share.zabbix.com/cat-server-hardware/huawei/huawei-pc-server
2.導入模板在"模板"-“導入”,按順序先導入valuemaps.xml、再導入templates.xml
"Template_Huawei_PCServer"就是我們新導入的模板。
3.編輯模板我們可以模板中的各監控項中根據實際情況修改SNMP OID、驗證口令及私鑰。由于我們使用的是SNMP V3,因此我們保證驗證口令及私鑰正確即可;觸發器及自動發現規則也是按此方式修改。
4.創建主機
在"模板"中,添加"Template_Huawei_PCServer"模板鏈接即可。
5.監控最新數據
至此華為RH1288 V3服務器的硬件狀態監控完成。