1、zabbix开启中文语言
zabbix是一个多语言监控系统,默认使用英文并且也支持中文语言,详见《zabbix汉化方法》,但是安装zabbix里面看不到中文语言.请往下看:
![](https://s1.51cto.com/images/blog/201808/01/fd9e7ba3e80d17a1c883681d68cb0b47.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
开启zabbix对中文的支持:
原来zabbix默认把对中文的支持给关闭了,我们需要修改zabbix的php源文件. 修改站点根目录下include/locales.inc.php文件.
# vim include/locales.inc.php
function getLocales() {
return array(
'en_GB' => array('name' => _('English (en_GB)'), 'display' => true),
'en_US' => array('name' => _('English (en_US)'), 'display' => true),
'bg_BG' => array('name' => _('Bulgarian (bg_BG)'), 'display' => true),
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => true),
//原本这里为false,请改为true
...........代码省略掉........
);
}
2、 设置中文界面
3、上传本地中文字体,因为zabbix自带的中文字体在图形展示方面容易出现乱码
致此,ZABBIX设置中文界面以及修改字体完成。
4、启动zabbix server自身监控
5、数据库字符优化:
由于设置邮件告警后,告警内容或告警标题中文显示为乱码,所以需要对数据库里的字符集进行配置优化。
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.03 sec)
##查看mysql字符集,修改character_set_database和character_set_server的字符为utf8,global表示全局生效,修改后,需要重启mysql与zabbix服务。
mysql> set global character_set_database='utf8';
Query OK, 0 rows affected (0.00 sec)
mysql> set global character_set_server='utf8';
Query OK, 0 rows affected (0.00 sec)
mysql>
6、打开并配置自定义脚本
编辑/usr/local/etc/zabbix_server.conf文件,zabbix安装方式不通,存放的位置也不同,只要是编辑zabbix_server.conf配置文件即可。
# Mandatory: no
# Default:
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/etc/zabbix/bin
配置AlertScriptsPath脚本存放路径,没有目录创建相应目录。
7、告警的方式
邮件告警zbmail.sh:
#!/bin/sh
/usr/bin/sendEmail -f [email protected] -t $1 -s mail.haierubic.com -u "$2" -xu cloudservice -xp t2vwN4JXPO -m "$3"
time=`date +"%Y-%m-%d"`
echo "`date` $1 $2">>/var/log/zabbix/zbx_mail-$time.log
短信告警zbsms.sh:
#!/bin/sh
#curl http://221.179.180.137:8080/smsaServer/lkSend\?UID\=znjdwg\&PWD\=fc85c5fa34a90ee7f7d5af4d5f109f4a\&PHONE\=$1\&CONTENT\=$CON\&TYPE\=4\&MSGID\=1
time=`date +"%Y-%m-%d"`
java -jar /etc/zabbix/bin/sms4j.jar $1 "$3" >>/var/log/zabbix/zbx_sms-$time.log
#echo "$3" >/tmp/sms.txt
微信告警weixin.sh:
#!/bin/bash
###SCRIPT_NAME:weixin.sh###
###send message from weixin for zabbix monitor###
###zongx###
###V1-2017-06-12###
#CropID='wx01975981c5d1502c'
#Secret='k6hjyg4UY1Sx4YZIA6teqq5Q_cjjuDKliN3fVCUksN0'
#GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
#Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F \" '{print $10}')
Gtoken=(`cat /etc/zabbix/bin/token_new.txt`)
echo "Gtoken="$Gtoken
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local int AppID=1000002 #企业号中的应用id
# local UserID=@all #部门成员id,zabbix中定义的微信接收者
local UserID=$1
local PartyID=@all #部门id,定义了范围,组内成员都可接收到消息
local Msg=$(echo "$@" | cut -d" " -f3-) #过滤出zabbix中传递的第三个参数
printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
# printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'"$AppID"\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
time=`date +"%Y-%m-%d"`
echo "`date` $1 $2 $3">>/var/log/zabbix/zbx_weixin-$time.log