页面“Emacs入门”与“Zabbix 5 4 and 3 LTS安装入门教程”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
 
 
第1行: 第1行:
 +
==站内资源==
 +
[[Zabbix 调用API 批量添加主机]]
 +
== zabbix server ==
 +
===pre ===
 +
这些是官网官方安装文档,记得一定要看
  
 +
https://www.zabbix.com/documentation/3.0/manual/installation/install
  
==安装emacs==
+
https://www.zabbix.org/wiki/InstallOnCentOS_RHEL
[[How to Compile Emacs on Linux]]
 
  
== 正文==
+
<pre>wget -c https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.8/zabbix-3.0.8.tar.gz
== 成为高手笔记==
+
wget -c http://tenet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.13/zabbix-2.2.13.tar.gz</pre>
<pre>即使你不打算使用 Emacs 默认快捷键, 这步也是必须的, 不要跳过!
 
  
最起码要知道以下命令,
+
===#配置php变量===
 +
<pre>vi /etc/php.ini
 +
date.timezone = Asia/Shanghai
 +
post_max_size = 32M
 +
max_execution_time = 300
 +
max_input_time = 300
 +
注:更改完之后需要重启nginx和php</pre>
  
M-x describe-variable, 快捷键 C-h v, 查看变量的文档
+
===#安装zabbix所需的组件 ===
M-x describe-function, 快捷键 C-h f, 查看命令的文档
+
<pre>yum -y install net-snmp-devel curl-devel
M-x describe-key, 快捷键 C-h k, 查看快捷键的文档</pre>
+
#yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI php-gd php-xml php-bcmath
 +
groupadd zabbix && useradd -g zabbix zabbix
 +
tar xvf zabbix-3.0.8.tar.gz && cd zabbix-3.0.8
 +
#tar xvf zabbix-2.2.13.tar.gz && cd zabbix-2.2.13
  
 +
#./configure –enable-server –enable-agent –with-mysql –enable-ipv6 –with-net-snmp –with-libcurl –with-libxml2
  
以实际问题作为切入点
+
##或者默认安装路径 make是不用的
 
+
./configure --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 && make install
努力能很快得到回报, 你会越学越有乐趣, 进入感情上的正反馈.
+
</pre>
 
+
===添加zabbix服务对应的端口(可以省略,但是官方建议有)===
要成为高手, 兴趣是最重要的.
+
<pre>cat >>/etc/services<< EOF
 
+
zabbix-agent 10050/tcp #Zabbix Agent
以我为例, 我急需 GTD 的工具, 而 Emacs 的 Org-mode 是同类软件中最好的 (没有之一). 用 Org-mode 节省了时间后, 我对 Emacs 爱屋及乌, 兴趣高涨了 100 倍.
+
zabbix-agent 10050/udp #Zabbix Agent
 
+
zabbix-trapper 10051/tcp #Zabbix Trapper
反面例子是啃Lisp教程开始Emacs之旅, 坚持下来的人寥寥无几.
+
zabbix-trapper 10051/udp #Zabbix Trapper
 
+
EOF</pre>
待解决的问题设定优先度 关键在于理性地考虑你最迫切需要解决的一个问题.以这个问题作为出发点, 除此之外都可以妥协.
 
 
 
虽然 Emacs 无所不能, 但是饭也要一口一口吃. 有时退一步等于进两步.
 
 
 
例如, 我一直以为 Emacs 的中文显示很完美, 搞不懂为什么有人在字体配置上花那么多时间.
 
 
 
在接到读者反馈后, 我才明白原来我一直在终端下使用Emacs, 终端软件可以完美显示中文字体, 所以就没 Emacs 什么事了. 需要配置字体的人用的是图形界面 Emacs.
 
 
 
当初只在终端下使用 Emacs 是因为需连接到远程服务器. 我认为这是重点. 甚至为此放弃了漂亮的配色主题 (后来发觉此牺牲毫无必要). 塞翁失马, 由此也避免了图形界面版本的所有问题.
 
 
 
https://github.com/redguardtoo/mastering-emacs-in-one-year-guide/blob/master/guide-zh.org
 
 
 
==后记==
 
<span style="color:green;">后面要把常用的这些常用快捷键写成一个短小的总结卡</span>
 
=== 模式键定义===  
 
 
 
四个模式键:C—-Ctrl;M—-Alt;s—-Super(Win);S—-Shift
 
 
 
比如:
 
 
 
C-x:表示按下ctrl键,然后按下x键。
 
 
 
C-x  C-c:表示按下ctrl,然后按下x键,松开后再按下c键。
 
  
C-x k:表示按下ctrl,同时按下x和k键。
+
===配置文件===
 +
<pre>##好像是这个起效果的呢 –sysconfdir=/etc/zabbix 有这个,不用下面的命令了
 +
#vim /usr/local/etc/zabbix_server.conf
 +
#cd zabbix-2.0.7
  
 +
#mkdir /etc/zabbix
 +
#cp conf/*.conf /etc/zabbix
  
=== 最常用命令===
+
mkdir /var/log/zabbix ;chown zabbix:zabbix /var/log/zabbix;
  
<span style="color:red;">M-f 与 M-b  </span> 在行内, 前后大步移动光标,步进单位对于英文而言是单词的长度,对于中文而言是两个标点符号的间距。
 
  
<span style="color:red;">M-{ M-} </span> 段开头或结尾
+
#zabbix web代码
 +
mkdir -p /data/www/zabbix;
 +
cp -r frontends/php/* /data/www/zabbix
  
<span style="color:red;">C-x [  C-x ] </span>页开头或结尾 
+
修改zabbix连接的数据库的用户名和密码
 +
vi /etc/zabbix/zabbix_server.conf
  
<span style="color:red;">C-a 或 C-e </span> 对于英文文本,若将光标快速移到行首或行尾,标准按键是 C-a 或 C-e 但是对于中文而言,这对按键有着将光标被移到段首或段尾的奇异效果……如果偶尔忘记,用 Home或End 键也未尝不可。
+
DBHost=127.0.0.1
 +
DBName=zabbix
 +
DBUser=zabbix
 +
DBPassword='123'
 +
DBPort=3306 #如果数据库是用sock文件的方式,这里可以是sock文件的路径
  
<span style="color:red;">M-a 与 M-e </span> 则分别可将光标移动到句首或句尾。
+
添加数据库Lib文件位置到/etc/ld.so.conf中,并使其生效
 +
echo ‘/usr/local/mysql/lib/mysql/’ >> /etc/ld.so.conf
  
<span style="color:red;"> C-v 或 M-v <span> 如果文档很长,用可实现向下或向上翻屏
+
ldconfig
  
M-< ,移到最开始。
+
为zabbix的启动、关闭和重启的脚本文件做链接,方便系统可以找得到
  然后再按几次 C-v 回到这里。
 
  
M-> ,移到最末尾。
+
给zabbix服务端程序做软链接 我用默认的config 应该是不用的
  然后再按几次 M-v 回到这里。
+
cd /usr/local/zabbix/bin/
 +
for i in *;do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i};done
 +
cd /usr/local/zabbix/sbin/
 +
for i in *;do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i};done
  
C-x 2 将屏幕划分成两个窗格。这两个窗格里显示的都是本篇快速指南,而光标则停留在上方的窗格里。
+
拷贝zabbix服务端和客户端启动脚本到/etc/init.d目录下.
 +
cd misc/init.d/
 +
cp fedora/core/zabbix_server /etc/init.d/
 +
cp fedora/core/zabbix_agentd /etc/init.d/
 +
chmod +x /etc/init.d/zabbix_agentd
 +
chmod +x /etc/init.d/zabbix_server</pre>
  
C-x o(“o”指的是“其它(other)”), 将光标转移到下方的窗格。
+
===3 Create Zabbix database===
 +
<pre>SQL scripts are provided for creating database schema and inserting the dataset
 +
#https://www.zabbix.com/documentation/3.0/manual/appendix/install/db_scripts
 +
#https://www.zabbix.com/documentation/2.2/manual/appendix/install/db_scripts
  
C-x 1  (在上方窗格里)输入 C-x 1 关掉下方窗格。
+
mysql>create database zabbix character set utf8 collate utf8_bin;;grant all on zabbix.* to zabbix@localhost identified by '123';flush privileges;
  
C-x C-f        寻找文件。
+
将zabbix源码包中的数据导入到新建的zabbix数据库
C-x C-s        保存文件。
+
##这个和老的版本有点不同 第一个是zabbix的数据库表结构,要先导入。
  
==== 搜索 ====
+
. /etc/profile
增量搜索
+
cd ../..
C-s 正向搜索
+
mysql -uroot -p'evan' zabbix< database/mysql/schema.sql
 +
mysql -uroot -p'evan' zabbix< database/mysql/images.sql
 +
mysql -uroot -p'evan' zabbix< database/mysql/data.sql
  
C-r 反向搜索
+
vi /etc/init.d/zabbix_server # 的可以不改,修改一下变量的值 因为我是默认用 configure
 +
# base zabbix dir
 +
BASEDIR=/usr/local
 +
# binary file
 +
ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server<pre>
  
C-M-s使用正则表达式正向搜索
+
===fping的安装和使用详解===
 +
<pre>http://rickie622.blog.163.com/blog/static/2123881120121121111720941/
 +
http://netsecurity.51cto.com/art/201101/242200.htm
 +
#当然 下载zip包也是可以的
 +
git clone https://github.com/schweikert/fping.git
 +
cd fping
 +
./autogen.sh
 +
./configure
 +
make -j2 && make install
  
C-M-r 使用正则表达式反向搜索
+
#修改一下配置文件
 +
vim /etc/zabbix_server.conf
 +
#vim /usr/local/etc/zabbix_server.conf
 +
FpingLocation=/usr/local/sbin/fping</pre>
  
M-p 选择上一个搜索结果
+
===启动zabbix,并且添加开机自启动===
 +
<pre>service zabbix_server start
 +
service zabbix_agentd start #启动服务
  
M-n 选择下一个搜索结果
+
chkconfig zabbix_server on
 +
chkconfig zabbix_agentd on #开机自启动
  
RET 退出搜索并停留在当前搜索到的位置
+
在Nginx服务中添加zabbix虚拟主机
 +
#vim /usr/local/nginx/conf/vhosts/monitor.conf
  
C-g 中止当前搜索
+
这些都不要,不然没有web安装向导的
 +
#cd zabbix/conf
 +
#cp zabbix.conf.php.example zabbix.conf.php ;
 +
#chmod 777 zabbix.conf.php
  
===save and exit ===
+
iptables -I INPUT -p tcp –dport 80 -j ACCEPT
<pre>
 
C-x C-c:退出Emacs
 
  
C-x C-s:保存当前buffer
+
zabbix server is not running
</pre>
+
Zabbix Server is not running: the information displayed may not be current
 +
http://song49.blog.51cto.com/4480450/1200151</pre>
  
===选中 复制 黏贴===
+
===(4)设置zabbix服务IP和端口,name可以忽略===
 
<pre>
 
<pre>
把光标移动到区域的首字符
+
ps:
键入C-@(即ctrl+shift+2),以设置标记 有时是ctrl+shife +@
+
post_max_size = 16M
把光标移动到区域的最后一个字符
+
PHP option “max_execution_time” 30 300 Fail
键入M(alt)-w,拷贝这个选定区域到粘贴板(剪切是C-w)
+
PHP option “max_input_time” 60 300 Fail
用光标定位将要粘贴内容的地方,然后键入C-y ,拷贝成功。
+
PHP option “date.timezone” unknown Fai
 +
date.timezone = Asia/Shanghai
  
C-@ mark --> c-f or c-n --> alt-w --> c-y
+
PHP option “always_populate_raw_post_data” must be set to “-1”
  
C-w 剪切标记到当前光标所在处的文本
+
port 10051
</pre>
 
  
===查找===
+
Zabbix frontend is ready! The default user name is Admin, password zabbix.</pre>
 +
===超级用户密码修改 ===
 
<pre>
 
<pre>
搜索/替换(Seach/Replace)
+
2.2 用户名第一个字母要大写 也就是Admin
C-s 向后搜索
+
默认的用户名:admin 密码:zabbix
C-r 向前搜索</pre>
 
  
===替换===
+
哪里改登录用户和密码呢
<pre>
+
use zabbix;
按M - %启动查找替换(M is alt on debian),输入要被替换的词,回车,然后输入要替换的词,再回车。
+
select userid,alias,passwd from users; #查看
被替换的词会高亮起来,这时,输入y替换并跳到下一个,输入n忽略并跳到下一个,输入q结束,输入!替换剩下的全部。
 
  
一些常用的选项:
+
+--------+------------+----------------------------------+
  C - g 中断查找替换过程。
+
| userid | alias      | passwd                          |
  ^ 返回上一个替换点,按y继续下一个,如果不想替换上一个的话,用^返回到上一个,然后按 C - r 进入编辑,修改完后按C - M - c退出继续下一个。
+
+--------+------------+----------------------------------+
  C - l 使当前匹配显示在文档中间。
+
|      1 | Admin      | 5fce1b3e34b520afeffb37ce08c7cd66 |
  C - r 进入修改。
 
</pre>
 
[https://www.cnblogs.com/robertzml/archive/2010/03/03/1675870.html 学习Emacs系列教程(八):查找替换]
 
  
[https://www.cnblogs.com/skyhacker/archive/2012/01/03/2311437.html emacs查找替换]
 
  
===移动 ===
+
#如果为zabbix 3.0  直接这样就行了
<pre>
+
update users set passwd=MD5('12345') where userid=1;
 
 
M-< 到文件开头
 
M-> 到文件末尾
 
 
 
 
 
 
 
以下命令在翻页浏览时相当有用:
 
 
 
C-v    向前移动一屏
 
M-v    向后移动一屏
 
C-l    重绘屏幕,并将光标所在行置于屏幕的中央
 
(注意是 CONTROL-L,不是 CONTROL-1)
 
  
  
整屏的移动很有用,但是如何在文字中精确定位呢?
+
#zabbix 2.x
 +
重新开个终端,生成一个MD5加密的密码,这里密码设置的是redhat
  
有几种方式可以选择。用方向键当然可以,不过更有效率的方法是保持双手位于
+
[root@localhost ~]# echo -n 12345678 |openssl md5 #-n就表示不输入回车符,不加-n,否则就不是这个结果了。
主键盘区,然后使用 C-p 、 C-b 、 C-f 和 C-n 这四个命令。它们的功能和方
+
(stdin)= 25d55ad283aa400af464c76d713c07ad
向键是一样的,如下图所示:
 
  
                            上一行 C-p
+
接着上面的为admin用户设定一个密码
                                  :
 
                                  :
 
            向左移 C-b .... 目前光标位置 .... 向右移 C-f
 
                                  :
 
                                  :
 
                            下一行 C-n
 
  
>> 用 C-n 或 C-p 将光标移到上图的中央。
+
mysql> update users set passwd='25d55ad283aa400af464c76d713c07ad' where userid = '1';
  按 C-l,整幅图会被显示在屏幕的中央。
+
#或者直接使用update users set passwd=md5(“12345678”) where userid=’1′;
 +
Query OK, 1 row affected (0.01 sec)
 +
Rows matched: 1 Changed: 1 Warnings: 0
  
 +
mysql> flush privileges;
 +
Query OK, 0 rows affected (0.01 sec)
  
 +
mysql> quit
 +
Bye
  
移动的单位            向后        向前
+
zabbix登陆账户admin密码修改
字符                  C-b          C-f
+
http://pvbutler.blog.51cto.com/7662323/1734003
  
 +
yum install ntp ntpdate -y
 +
chkconfig ntpd on
 +
/etc/init.d/ntpd start
  
 +
*/30 * * * * /usr/sbin/ntpdate pool.ntp.org
  
当前行开头或结尾      C-a          C-e
+
在29行这后添加
 +
sed -i ’29a user=mysql’ /etc/my.cnf
 +
sed -i ’29a character-set-server=utf8′ /etc/my.cnf
 +
sed -i ’29ainnodb_file_per_table=1′ /etc/my.cnf
 +
重启mysqld</pre>
  
C-n
+
===防火墙设置 ===
 +
<pre>这个要看一下先,尽量用严格些的防火墙设置
  
M-f 如果你嫌一个字符一个字符地挪光标太慢,你还可以一个词一个词地跳。M-f
+
#on zabbix-agent
(META-f) 可以将光标往前移动一个词,而 M-b 则是往后移。【这里的“词”指
 
英文单词,对中文来说,则是指移动到下一个标点符号。】
 
  
类似的惯例在“行”与“句子”之间也同样适用:C-a 和 C-e 可以将光标移动到
+
iptables -A INPUT -s zabbixserverip  -p tcp -m tcp --dport 10050 -m comment --comment "zabbix_server listen " -j ACCEPT
“一行”的头部和尾部;而 M-a(和terminator冲突) 和 M-e 则将光标移动到“一句”的头部和尾部。
+
#iptables -A INPUT -s zabbixserverip  -p tcp -m tcp --dport 10050 -m comment --comment "zabbix_agentd listen " -j ACCEPT
  
 +
#这下面的防火墙rule 不要用
 +
vi /etc/sysconfig/iptables
 +
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
 +
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
 +
-A INPUT -m state –state NEW -m tcp -p tcp –dport 10050 -j ACCEPT
 +
-A INPUT -m state –state NEW -m tcp -p tcp –dport 10051 -j ACCEPT
  
这里对简单的光标移动命令做一个总结,其中也包括了整词和整句的移动:
+
/etc/init.d/iptables restart
  
        C-f    向右移动一个字符
+
中文在右上角的用户里面哦
        C-b    向左移动一个字符
 
  
        M-f    向右移动一个词【对中文是移动到下一个标点符号】
+
Starting php_fpm /usr/local/php/bin/php-cgi: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
        M-b    向左移动一个词【对中文是移动到上一个标点符号】
+
failed
  
        C-n    移动到下一行
+
by default install the daemon binaries (zabbix_server, zabbix_agentd, zabbix_proxy) in /usr/local/sbin and the client binaries (zabbix_get, zabbix_sender) in /usr/local/bin.</pre>
        C-p    移动到上一行
 
 
 
        C-a    移动到行首
 
        C-e    移动到行尾
 
 
 
        M-a    移动到句首
 
        M-e    移动到句尾
 
 
 
 
 
 
 
这里还要介绍两个重要的光标移动命令:M-< (META 小于号)可以将光标移动到
 
所有文字的最开头;M-> (META 大于号)可以将光标移动到所有文字的最末尾。
 
 
 
注意,在大部分键盘上,小于号(<)需要用上档键(Shift)来输入,所以在这
 
些键盘上你应该用 Shift 键来输入 M-<,如果不按 Shift 键,你输入的会是
 
M-comma(META 逗号)。
 
 
 
>> 试一试 M-< ,移到本快速指南的最开始。
 
  然后再按几次 C-v 回到这里。
 
 
 
>> 试一试 M-> ,移到本快速指南的最末尾。
 
  然后再按几次 M-v 回到这里。
 
 
 
 
 
如果你的键盘上有方向键的话,也可以用它们来移动光标。不过我们有三个理由
 
推荐你学习 C-b 、C-f 、C-n 、和 C-p:(1)它们在任何键盘上都能用。(2)
 
当你熟练使用 Emacs 之后,你会发现用这些组合键比用方向键要快得多,因为你
 
的手不需要离开打字区。(3)一旦你习惯了使用这些组合键,你也可以很容易地
 
适应其它更高级的光标移动命令。
 
 
 
大部分的 Emacs 命令接受数字参数,并且对于多数命令而言,这些数字参数的作
 
用是指定命令的重复次数。为一个命令指定数字参数(也就是重复次数)的方法
 
是:先输入 C-u,然后输入数字作为参数,最后再输入命令。如果你有META (或
 
EDIT 或 ALT)键,那么还有另一种办法:按住 META 键不放,然后输入数字。不
 
过我们还是建议你用 C-u,因为它在任何终端机上都能用。这种数字参数也称为
 
“前缀参数”,意思是说这个参数是先于使用它的命令而输入的。
 
 
 
举例来说, C-u 8 C-f 会向前移动 8 个字符。
 
</pre>
 
  
===缓冲区、窗口与窗框===
+
===4.0图像显示字体乱码的解决方法===
 
<pre>
 
<pre>
  
2018年 01月 23日 星期二 21:03:14 CST 学习这个
+
#传输字体
 
+
cp  /root/STKAITI.TTF  /usr/share/zabbix/assets/fonts
Emacs 启动后,窗框中默认只有一个窗口,但是使用 C-x 1 或 C-x 2 可以将其水平或竖直一分为二,这个分割过程可以无限的进行下去。每次被分割的窗口都是输入光标所在的窗口(也称为被激活的窗口)。使用 C-x o 可以在多个窗口中跳转。
+
 
 
+
#修改 指定的字体 或者直接把你的家体改成和默认同名,而默认的那个先删除 连重启都不用 反正在docker
由于 Emacs 在拆分窗口时,默认是水平或竖直均分,所以如果你希望将某个窗口调的宽一些,可 C-x } ;要使之窄一些,可 C-x { ;要使之高一些,可 C-x ^,但是要使之矮一些,貌似只能是激活该窗口下方的窗口,然后让下方的窗口高一些。这些窗口大小的调整方法,每次只能使得窗口的尺寸增大或减小一个字符的宽度或高度。如果你不想多次输入像 C-x ^ 这样的命令,那么可以用 C-u n C-x ^ 这样的组合键,其中 n 表示你要重复执行 C-x ^ 这样的命令 n 次。例如,要将当前窗口的高度增加 5 个字符的高度,只需 C-u 5 C-x ^ 即可。
+
  grep  -rn  BX_GRAPH_FONT_NAM   /usr/share/zabbix/include/defines.inc.php
 
+
67:define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
C-u 最好要牢记,它的职能就是给某个组合键所绑定的 Emacs Lisp 函数传递一个参数值。 C-u 5 C-x ^ 表示向 C-x ^ 所绑定的 Emacs Lisp 函数传递参数值 5 ,而这个函数接受这个参数值之后,就会将窗口的高度增加 5 个字符的高度。
 
   要查看按键被绑定到了哪个 Emacs Lisp 函数,只需 C-h k <RET> 按下你要查询的键 。 <RET> 表示回车键
 
 
 
如果觉得窗口太多,想关掉一些,那么关闭被激活的窗口的组合键是 C-x 0 。如果是图形界面的 Emacs,只需要鼠标右键点击窗口的模式行即可将该窗口关闭。我的建议是:能用键盘就不要用鼠标。
 
 
 
要在某个窗口中打开或新建一个文件,可 C-x C-f 文件路径。
 
 
 
为了节省内存占用,请尽量使用 Emacs 的多窗口模式,不要打开一个又一个 Emacs
 
  
 +
修改
 +
define('ZBX_GRAPH_FONT_NAME',          'simkai'); 
 
</pre>
 
</pre>
 
+
===zabbix-get===
=== 文本编辑的正确姿势===
 
用 Emacs 的正确姿势应该是永远保持能不用鼠标就不用鼠标的姿势!因此,你需要学会用键盘来控制光标在窗口中的位置。
 
 
<pre>
 
<pre>
最基本的光标位置控制键如下所示:
+
root@zabbix-server ~]#zabbix_get -s 10.3.10.139 -k "system.hostname"
 
+
dev-hello-market
              上一行 C-p
 
                    :
 
                    :
 
向左移 C-b .... 目前光标位置 .... 向右移 C-f
 
                    :
 
                    :
 
              下一行 C-n</span>
 
要记忆这几个键并不困难。 p 就是 previous(在...之前), n 就是 next, b 就是 backward, f 就是 forward,而 C 就是 Control……美国人民真会玩!
 
</pre>
 
 
 
 
 
上述按键虽然简单易懂,但它们只适合小范围移动光标。在行内,可以用 <span style="color:red;">M-f 与 M-b </span>前后大步移动光标,步进单位对于英文而言是单词的长度,对于中文而言是两个标点符号的间距。
 
 
 
对于英文文本,若将光标快速移到行首或行尾,标准按键是<span style="color:red;"> C-a 或 C-e </span>但是对于中文而言,这对按键有着将光标被移到段首或段尾的奇异效果……如果偶尔忘记了这对按键,用 Home 或 End 键也未尝不可。<span style="color:red;"> M-a 与 M-e </span>则分别可将光标移动到句首或句尾。
 
 
 
如果文档很长,用 <span style="color:red;">C-v 或 M-v </span>可实现向下或向上翻屏。如果偶尔忘记了这对按键,用键盘上的 PgUp 与 PgDn 翻页键也可行。
 
 
 
跨度最大的光标移动键是 M-< 与 M-> ,可分别将光标移动到缓冲区的首部与尾部。
 
 
 
一旦掌握了上述这几个控制光标位置的按键,在 Emacs 中鼠标基本上就变得不是那么不可或缺了,更重要的是,这些按键能够帮助你更快速的选择文本。对于文档中的待选文本区域,用上述按键将光标移动到该区域的起始位置,然后用<span style="color:red;"> C-@ </span>标定选区之首,然后继续用上述按键将光标移动到选区之尾,这样就完成了文本的选取。
 
 
 
 
 
 你可能不知道怎么产生 C-@ 按键序列。普通键盘上,应该是摁住 Ctrl 键,然后再摁住 Shift 键,最后摁下数字 2 键,然后松开手。因为 @ 在 2 上面,需要 Shift 切换……
 
 
 
对于选中的文本,随后的操作无非是剪切、复制或删除。剪切,请用 C-w;复制,请用 M-w;删除,请用 Backspace。对于剪切或复制的文本,要粘帖在光标所在位置,请用 C-y……或者你也可以试着看看 C-y 之后再 M-y 有什么效果!
 
 
 
对文本进行了一段时间的编辑之后,要反悔的话,就用 C-_ 键执行 Undo 操作。
 
 
 
  要产生 C-_ 的按键序列,请参考上文所讲的 C-@ 的做法。
 
建议现在就立刻将上述提到的每个按键都反复试验六、七次,以后就一直坚持使用它们……用不了几天也许就变成手指的本能了。忘掉鼠标吧,键盘可以解放你的双手,可以让你从畸形的鼠标手解脱,然后变成键盘手……因为你很快就会觉得左手的小指会有点酸痛!我会在下一节中拯救你的手。
 
 
 
===拯救你的左手小拇指===
 
如果感到左手的小手指有点疼,就不要再去用左手去摁 C-x C-s 这样的键了,你完全可以用右手的小指去摁键盘右侧的 Ctrl 键,然后左手相应的手指去摁 x 与 s 键
 
 
 
===将一段代码向右推===
 
[https://segmentfault.com/a/1190000003811296 将一段代码向右推20180124pm到这里 后面的还没看完]
 
 
 
===显示行号===
 
====临时显示行号或者取消行号====
 
在Emacs下执行 M-x linum-mode 来显示或者取消行号
 
M-x : Alt + x
 
输入: linum-mode
 
 
 
===跳转到指定行 ===
 
====临时====
 
  M-x goto-line 然后回车  <line_number>
 
====长期====
 
以在.emacs文件中定制一下(添加以下一行):
 
 
 
(define-key ctl-x-map "l" 'goto-line)
 
 
 
然后每次在emacs中按C-x再按l,输入指定的行号就可以了。
 
 
 
http://blog.csdn.net/grey_csdn/article/details/78905862
 
http://bbs.csdn.net/topics/60028785
 
 
 
 
 
=== 常用插件===
 
记笔记,安排日程,那么毫无疑问Org-Mode是首选
 
 
 
[https://elloop.github.io/tools/2016-03-01/emacs-accumulate-5-packages-extensions Markdown]
 
 
 
 
 
=== 快捷键===
 
<pre>
 
M-s : 新建一个buffer(缓冲区)
 
 
 
C-x O : 注意是大写的O,不是零,所以需要按住shift键再按o键。用于在缓冲区之间切换
 
 
 
C-g : 取消当前操作
 
 
 
C-x u : 回到上一步,相当于Undo
 
 
 
C-x  C-x : 变大写
 
 
 
C-x 3 : 把缓冲区(buffer)分为左右两个,新的一个缓冲区是复制当前的缓冲区 (可以执行多次,来分割出很多小窗口)
 
 
 
C-x 2 : 把缓冲区(buffer)分为上下两个,新的一个缓冲区是复制当前的缓冲区 (可以执行多次,来分割出很多小窗口)
 
 
 
M-w : 选中文字的情况是复制文字,而如果没有选中文字则是复制当前的一行
 
 
 
C-w : 选中文字的情况是剪切文字,而如果没有选中文字则是剪切当前的一行
 
 
 
M-x : 调出命令输入,可以在后面接命令,比如man,svn-status,等
 
 
 
C-y : 黏贴
 
 
 
C-x C-s : 保存文本
 
 
 
C-x C-f : 打开文件,如果文件不存在,则新建文件
 
 
 
C-x C-v : 打开一个文件,取代当前缓冲区
 
 
 
C-x k : 关闭当前缓冲区(buffer)
 
 
 
C-s : 向前搜索
 
 
 
C-r : 向后搜索
 
 
 
C-x h : 全选
 
 
 
C-v : 向下翻页
 
 
 
M-v : 向上翻页
 
 
 
C-f : 前进一个字符
 
 
 
C-b : 后退一个字符
 
 
 
M-f : 前进一个单词
 
 
 
M-b : 后退一个单词
 
 
 
C-@ : 标记开始区域
 
 
 
C-a : 移到行首
 
 
 
C-e : 移到行尾
 
 
 
M-a : 移到句首
 
 
 
M-e : 移到句尾
 
 
 
M-< : 缓冲区头部
 
 
 
M-> : 缓冲区尾部
 
 
 
M-g M-g,再输入数字 : 跳转到文本的第几行
 
 
 
C-x 0 : 关闭当前缓冲区
 
 
 
C-x C-c : 退出Emacs
 
  
  
 +
不过使用zabbix_get时必须开启客户端被动模式,要求暴露客户端监听端口。
 
</pre>
 
</pre>
 +
[https://blog.csdn.net/cx55887/article/details/83818696 自动化监控--zabbix-get安装使用详解]
  
[https://aifreedom.com/technology/112 Emacs快捷键列表]
+
==第二 agent==
 
 
链接:https://www.jianshu.com/p/732157b02ecc
 
 
 
==org mode==
 
Emacs 的 Org-mode 在一定程度上可以替代 OneNote,有些方面甚至更好
 
[[Org-mode]]
 
 
 
==reload configfile==
 
 
 
emacs 打开~/.emacs的时候执行命令M-x eval-buffer,就可以使配置文件立即生效。
 
 
 
===配置===
 
 
<pre>
 
<pre>
https://github.com/gabrielelanaro/emacs-for-python
+
#4.0 #centos7 快速安装和自动配置 2019年 8月23日 星期五 11时45分01秒 CST
https://github.com/jorgenschaefer/elpy
 
http://www.jesshamrick.com/2012/09/18/emacs-as-a-python-ide/
 
https://realpython.com/blog/python/emacs-the-best-python-editor
 
  
*day1
+
#国外
pass 20170610
+
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
有空再详细的再看
 
  
:
+
#国内
记得要添加在公司作的相关的emacs 笔记
+
https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
  
 +
yum install zabbix-agent -y
  
=======
+
yum install ntp  -y
这几天常用的几个重要使命
+
timedatectl set-ntp true
 
 
  
 +
HOSTNAME=prod-java-02
  
 +
#config
 +
sed -i "s/^Server=127.0.0.1/Server=172.16.1.9/ " /etc/zabbix/zabbix_agentd.conf
  
重要快捷键(Important)
+
sed -i "s/^ServerActive=127.0.0.1/ServerActive=172.16.1.9/"  /etc/zabbix/zabbix_agentd.conf
C-k 删除一行
+
sed  -i "s/^Hostname=Zabbix server/Hostname=test-market/"  /etc/zabbix/zabbix_agentd.conf
C-g 停止当前运行/输入的命令
 
C-x u 撤销前一个命令
 
  
c-j 下称整个文件内容
 
  
emacs 菜单 用F10或者M-`。
 
  
ctrl+q 退出 快速说明
+
#这个用了HOSTNAME 变量  而上面的要指定hostname
 +
sed  -i 's/127.0.0.1/23.67.81.95/g'  /etc/zabbix/zabbix_agentd.conf
 +
sed  -i "s/Hostname=Zabbix server/Hostname=${HOSTNAME}/g" /etc/zabbix/zabbix_agentd.conf
 +
grep "^\s*[^# \t].*$" /etc/zabbix/zabbix_agentd.conf
  
编辑器内显示行号可使用 M-x linum-mode 来开启。
+
systemctl  enable  zabbix-agent.service
M-x 然后在最下面 输入 linum-mode
+
systemctl restart zabbix-agent
not try
 
q
 
  
获取帮助
 
ctrl+h  k  要查看的快捷键盘
 
  
 +
下面是老的信息 和解说
  
 +
cat /etc/zabbix/zabbix_agentd.conf
 +
Hostname=主机名
 +
Server=zabbix server ip
 +
LogFile= 可以不改
  
 +
##最好这样3个
 +
Server=10.6.1.181
 +
ServerActive=10.6.1.181
 +
Hostname=zabbix-client-1
  
学习基础 Elisp
 
  
ctrl+x  ctrl +b
+
#rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
 +
#rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
 +
#http://repo.zabbix.com/zabbix/2.0/rhel/5/x86_64/zabbix-release-2.0-1.el5.noarch.rpm
  
  
C-x o:把光标在屏幕上的窗口间进行切换。记忆方法:其它(Other)窗口。
+
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
  
然后选择 *scratch*
+
  </pre>
 
+
===agent on debian===
运算 C-X  c - E
 
 
 
插件管理
 
 
 
c-x  o  other window  install
 
 
 
company
 
f2 打开配置文件
 
 
 
org-mode
 
 
 
major mode and minor mode (C-h m)
 
 
 
 
 
 
 
 
 
;;evan配置文件
 
;;  ~/.emacs  行号什么 的 我是加到这个文件生效的
 
;;  ~/.emacs.d/emacs
 
 
 
;; 关闭工具栏,tool-bar-mode 即为一个 Minor Mode
 
(tool-bar-mode -1)
 
 
 
;; 关闭文件滑动控件
 
(scroll-bar-mode -1)
 
 
 
;; 显示行号 试过 这个一定有效果
 
(global-linum-mode 1)
 
 
 
;; 更改光标的样式(不能生效,解决方案见第二集)
 
(setq cursor-type 'bar)
 
 
 
;; 关闭启动帮助画面
 
(setq inhibit-splash-screen 1)
 
 
 
;; 关闭缩进 (第二天中被去除)
 
;; (electric-indent-mode -1)
 
 
 
;; 更改显示字体大小 16pt
 
;; http://stackoverflow.com/questions/294664/how-to-set-the-font-size-in-emacs
 
(set-face-attribute 'default nil :height 160)
 
 
 
;; 快速打开配置文件
 
(defun open-init-file()
 
  (interactive)
 
  (find-file "~/.emacs.d/init.el"))
 
 
 
;; 这一行代码,将函数 open-init-file 绑定到 <f2> 键上
 
(global-set-key (kbd "<f2>") 'open-init-file)
 
 
 
; 开启全局 Company 补全
 
(global-company-mode 1)
 
 
 
;; 作者用的  是t
 
3(global-company-mode t)
 
 
 
 
 
;; ~/.emacs  生效的居然是这个 2018
 
;; 在 mode line 上显示行列号
 
(setq column-number-mode 1)
 
(setq line-number-mode 1)
 
 
 
;;显示列号
 
(setq column-number-mode t)
 
 
 
;; 显示行号
 
(global-linum-mode 1)
 
 
 
;; 取消滚动栏,工具栏
 
(tool-bar-mode 0)
 
(menu-bar-mode 0)
 
(scroll-bar-mode 0)
 
 
 
;; 关闭emacs启动时的页面
 
(setq inhibit-startup-message 1)
 
(setq gnus-inhibit-startup-message 1)
 
;; 以 y/n代表 yes/no
 
(fset 'yes-or-no-p 'y-or-n-p)
 
;;; 设置备份策略
 
(setq make-backup-files t)
 
(setq kept-old-versions 2)
 
(setq kept-new-versions 2)
 
(setq delete-old-versions t)
 
(setq backup-directory-alist '(("" . "~/.emacsbackup")))
 
 
 
;; 公共插件配置
 
;; 设置 package system,这里使用 MELPA,里面的包可以说是应有尽有
 
(require 'package)
 
(add-to-list 'package-archives
 
            '("melpa" . "http://melpa.milkbox.net/packages/") t)
 
(package-initialize)
 
 
 
;;内置的package管理,emacs24以上的版本有用
 
(require 'package)
 
;;将melpa仓库地址加入到package-archives这个列表变量里面
 
(add-to-list 'package-archives
 
    '("melpa" . "http://melpa.org/packages/") t)
 
;;这个是国内一个elpa仓库镜像,速度更快一些,你懂得
 
(add-to-list 'package-archives
 
    '("popkit" . "http://elpa.popkit.org/packages/") t)
 
;;初始化package
 
(package-initialize)
 
;;更新仓库里面的package
 
(when (not package-archive-contents)
 
  (package-refresh-contents))
 
(custom-set-variables
 
;; custom-set-variables was added by Custom.
 
;; If you edit it by hand, you could mess it up, so be careful.
 
;; Your init file should contain only one such instance.
 
;; If there is more than one, they won't work right.
 
'(package-selected-packages (quote (company auto-complete autopair))))
 
(custom-set-faces
 
;; custom-set-faces was added by Custom.
 
;; If you edit it by hand, you could mess it up, so be careful.
 
;; Your init file should contain only one such instance.
 
;; If there is more than one, they won't work right.
 
  )
 
 
 
;;;; c mode ;;;;
 
(defvar xgp-cfsi-left-PAREN-old nil
 
  "Command used to input \"(\"")
 
(make-variable-buffer-local 'xgp-cfsi-left-PAREN-old)
 
 
 
(defun xgp-cfsi-modify-alist (alist term new)
 
  (let ((tl (assq term (symbol-value alist))))
 
    (if tl
 
        (setcdr tl new)
 
      (add-to-list alist (cons term new)))))
 
 
 
(defun xgp-cfsi (style)
 
  "Deciding whether using CFSI."
 
  (interactive "Style: ")
 
  (c-set-style style)
 
  (setq indent-tabs-mode
 
        nil
 
        c-hanging-semi&comma-criteria
 
        (quote (c-semi&comma-inside-parenlist)))
 
 
 
  (xgp-cfsi-modify-alist 'c-hanging-braces-alist 'class-open nil)
 
  (xgp-cfsi-modify-alist 'c-hanging-braces-alist 'class-close nil)
 
  (local-set-key " " 'self-insert-command))
 
 
 
(defun xgp-cfsi-erase-blanks ()
 
  "Erase all trivial blanks for CFSI."
 
  (interactive)
 
  (save-excursion
 
    (goto-char (point-min))
 
    (while (re-search-forward "[ \t]+$" nil t)
 
      (replace-match "" nil nil))))
 
 
 
(defun linux-c-mode()
 
  (define-key c-mode-map [return] 'newline-and-indent)
 
  (setq imenu-sort-function 'imenu--sort-by-name)
 
  (interactive)
 
  (imenu-add-menubar-index)
 
  (which-function-mode)
 
  (c-toggle-auto-state)
 
  (c-toggle-hungry-state)
 
  (setq indent-tabs-mode nil)
 
  (xgp-cfsi "linux"))
 
(add-hook 'c-mode-common-hook 'linux-c-mode)
 
;; 代码补全
 
(add-hook 'c-mode-hook 'company-mode)
 
(add-hook 'c++-mode-hook 'company-mode)
 
 
 
 
 
# other
 
如果要一次移动若干个单位,可以给命令加上数值参数,通过C-u命令,如:C-u 8 C-n就表示往下移8行,C-u 10 M-e表示往后移10句。不过C-u的参数对C-v和M-v命令而言有特殊,它不表示上下翻多少页,而是表示上下滚动多少行。注意与C-n的区别,C-u 8 C-n表示光标下移8行,屏幕不一定会滚动,而C-u 8 C-v,表示屏幕滚动8行,如果光标没有滚到屏幕外的话,光标位置不变。
 
如果不给C-u带上数值,则默认的值是4。比如C-u C-n就表示下移4行。这一特性还可以重复使用C-u C-u C-p就表示上移16行,C-u C-u C-u C-f表示右移64个字符。
 
前面讲了用C-g可以中断当前的命令,这次再补充一点,有时候C-g不灵时,可以按三次<Esc>键达到相同的目的。
 
</pre>
 
 
 
====kali本本配置====
 
 
<pre>
 
<pre>
;;cat ~/.emacs
+
#用系统的源
 +
apt-get install zabbix-agent
  
;; 关闭工具栏,tool-bar-mode 即为一个 Minor Mode
 
(tool-bar-mode 0)
 
(menu-bar-mode 0)
 
(scroll-bar-mode 0)
 
(tool-bar-mode -1)
 
  
 +
#config 其实和yum的也一样 只是启动不一样而已
 +
HOSTNAME=wiki
 +
sed -i "s/^Server=127.0.0.1/Server=207.148.106.229/ " /etc/zabbix/zabbix_agentd.conf
  
 +
sed -i "s/^ServerActive=127.0.0.1/ServerActive=207.148.106.229/"  /etc/zabbix/zabbix_agentd.conf
 +
sed  -i "s/^Hostname=Zabbix server/Hostname=wiki/"  /etc/zabbix/zabbix_agentd.conf
  
(setq column-number-mode t)
+
grep "^\s*[^# \t].*$" /etc/zabbix/zabbix_agentd.conf
(setq column-number-mode 1)
 
(setq line-number-mode 1)
 
;; 显示行号
 
(global-linum-mode 1)
 
;; 在 mode line 上显示行列号
 
(setq column-number-mode 1)
 
(setq line-number-mode 1)
 
  
;;显示列号
+
service zabbix-agent start
(setq column-number-mode t)
 
  
;; 显示行号
 
(global-linum-mode 1)
 
  
;; 取消滚动栏,工具栏
+
zabbix_get -s 138.68.59.0 -k "system.hostname"
(tool-bar-mode 0)
 
(menu-bar-mode 0)
 
(scroll-bar-mode 0)
 
  
;; 关闭emacs启动时的页面
 
(setq inhibit-startup-message 1)
 
(setq gnus-inhibit-startup-message 1)
 
;; 以 y/n代表 yes/no
 
(fset 'yes-or-no-p 'y-or-n-p)
 
;;; 设置备份策略
 
(setq make-backup-files t)
 
(setq kept-old-versions 2)
 
(setq kept-new-versions 2)
 
(setq delete-old-versions t)
 
(setq backup-directory-alist '(("" . "~/.emacsbackup")))
 
  
;; 公共插件配置
+
#用zbx的源
;; 设置 package system,这里使用 MELPA,里面的包可以说是应有尽有
+
  https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+buster_all.deb       
(require 'package)
+
dpkg -i zabbix-release_stretch_all.deb
(add-to-list 'package-archives
+
# apt-get update
            '("melpa" . "http://melpa.milkbox.net/packages/") t)
 
(package-initialize)
 
 
 
;;内置的package管理,emacs24以上的版本有用
 
(require 'package)
 
;;将melpa仓库地址加入到package-archives这个列表变量里面
 
(add-to-list 'package-archives
 
    '("melpa" . "http://melpa.org/packages/") t)
 
;;这个是国内一个elpa仓库镜像,速度更快一些,你懂得
 
(add-to-list 'package-archives
 
    '("popkit" . "http://elpa.popkit.org/packages/") t)
 
;;初始化package
 
(package-initialize)
 
;;更新仓库里面的package
 
(when (not package-archive-contents)
 
  (package-refresh-contents))
 
(custom-set-variables
 
;; custom-set-variables was added by Custom.
 
;; If you edit it by hand, you could mess it up, so be careful.
 
;; Your init file should contain only one such instance.
 
;; If there is more than one, they won't work right.
 
'(package-selected-packages (quote (company auto-complete autopair))))
 
(custom-set-faces
 
;; custom-set-faces was added by Custom.
 
;; If you edit it by hand, you could mess it up, so be careful.
 
;; Your init file should contain only one such instance.
 
;; If there is more than one, they won't work right.
 
)
 
 
 
;;;; c mode ;;;;
 
(defvar xgp-cfsi-left-PAREN-old nil
 
  "Command used to input \"(\"")
 
(make-variable-buffer-local 'xgp-cfsi-left-PAREN-old)
 
 
 
(defun xgp-cfsi-modify-alist (alist term new)
 
  (let ((tl (assq term (symbol-value alist))))
 
    (if tl
 
        (setcdr tl new)
 
      (add-to-list alist (cons term new)))))
 
 
 
(defun xgp-cfsi (style)
 
  "Deciding whether using CFSI."
 
  (interactive "Style: ")
 
  (c-set-style style)
 
  (setq indent-tabs-mode
 
        nil
 
        c-hanging-semi&comma-criteria
 
        (quote (c-semi&comma-inside-parenlist)))
 
 
 
  (xgp-cfsi-modify-alist 'c-hanging-braces-alist 'class-open nil)
 
  (xgp-cfsi-modify-alist 'c-hanging-braces-alist 'class-close nil)
 
  (local-set-key " " 'self-insert-command))
 
 
 
(defun xgp-cfsi-erase-blanks ()
 
  "Erase all trivial blanks for CFSI."
 
  (interactive)
 
  (save-excursion
 
    (goto-char (point-min))
 
    (while (re-search-forward "[ \t]+$" nil t)
 
      (replace-match "" nil nil))))
 
 
 
(defun linux-c-mode()
 
  (define-key c-mode-map [return] 'newline-and-indent)
 
  (setq imenu-sort-function 'imenu--sort-by-name)
 
  (interactive)
 
  (imenu-add-menubar-index)
 
  (which-function-mode)
 
  (c-toggle-auto-state)
 
  (c-toggle-hungry-state)
 
  (setq indent-tabs-mode nil)
 
  (xgp-cfsi "linux"))
 
(add-hook 'c-mode-common-hook 'linux-c-mode)
 
;; 代码补全
 
(add-hook 'c-mode-hook 'company-mode)
 
(add-hook 'c++-mode-hook 'company-mode)
 
 
 
;; py
 
(setq tab-width 4)
 
(set-variable 'python-indent-offset 4)
 
;;(set-variable 'python-indent-guess-indent-offset nil)
 
</pre>
 
 
 
== 不错的配置==
 
<pre>
 
mv ~/.emacs.d ~/.emacs.d.bak
 
git clone --depth 1 https://github.com/seagle0128/.emacs.d.git ~/.emacs.d
 
 
</pre>
 
</pre>
https://github.com/seagle0128/.emacs.d
+
https://www.zabbix.com/documentation/3.2/manual/installation/install_from_packages/repository_installation
 
 
 
 
 
 
=== c 常用命令===
 
emacs中很多命令都对C语言格式支持,补充几个命令M-x c-mode  当无法识别C语法格式的文件,可以强制打开C mode语法高亮C-M-p  跳转到}或)匹配的括号C-M-n  跳转到(或{匹配的括号M-x indent-region 自动缩进选定的区域C-c C-c 注释掉整个区域C-u C-c C-c 取消注释C-c C-u  跳转到前面的一个#ifdef C-c C-n  跳转到宏的开头或结尾C-c C-e 扩展宏编译排错:C-x ` (出错信息中)下一个错误,一个窗口显示错误信息,另一个显示源码的出错位置C-c C-c 转到出错位置调试:启动gdb调试器后,光标在源码文件缓冲区中时:C-x SPC 在当前行设置断点gdb在emacs中调用调试并不完美,有时候会出一些异常的情况。工作中如果emacs作为IDE用的话,一般在远程终端字符环境下更合适,如果作为专业的图形化IDE,codeblock等更合适,eclipse+CDT也是一种选择。
 
 
 
=== c 配置文件===
 
<pre>
 
;; 配置文件 for  c  or c ++
 
;; cat ~/.emacs
 
 
 
;; 在 mode line 上显示行列号
 
(setq column-number-mode 1)
 
(setq line-number-mode 1)
 
 
 
;;显示列号
 
(setq column-number-mode t)
 
 
 
;; 显示行号
 
(global-linum-mode 1)
 
 
 
;; 取消滚动栏,工具栏
 
;;(tool-bar-mode 0)
 
;;(menu-bar-mode 0)
 
;;(scroll-bar-mode 0)
 
  
;; 关闭emacs启动时的页面
+
https://www.zabbix.com/documentation/4.0/zh/manual/installation/install_from_packages/rhel_centos#%E5%AE%89%E8%A3%85_agent
(setq inhibit-startup-message 1)
 
(setq gnus-inhibit-startup-message 1)
 
;; 以 y/n代表 yes/no
 
(fset 'yes-or-no-p 'y-or-n-p)
 
;;; 设置备份策略
 
(setq make-backup-files t)
 
(setq kept-old-versions 2)
 
(setq kept-new-versions 2)
 
(setq delete-old-versions t)
 
(setq backup-directory-alist '(("" . "~/.emacsbackup")))
 
  
;; 公共插件配置
+
==docker zabbix==
;; 设置 package system,这里使用 MELPA,里面的包可以说是应有尽有
 
(require 'package)
 
(add-to-list 'package-archives
 
            '("melpa" . "http://melpa.milkbox.net/packages/") t)
 
(package-initialize)
 
  
 +
[https://juejin.im/entry/57be598d0a2b58006cd17c0f 用 Zabbix 和 Docker 搭建监控平台]
  
</pre>
+
== 故障及回顾==
 
 
[https://segmentfault.com/a/1190000003878553 Emacs 中 C/C++ 编程基本环境配置2018]
 
 
 
==from tour ==
 
 
<pre>
 
<pre>
#这些笔记完全作到wiki么 会不会太多 而没有重点的感觉 
+
问题1zabbix server 没有打开 10051端口 前端图形没显示
 
 
* 如果 EMACS 失去响应(IF EMACS STOPS RESPONDING)
 
-----------------------------------------------
 
如果 Emacs 对你的命令失去响应,你可以用 C-g 来安全地终止这条命令。C-g
 
也可以终止一条执行过久的命令。
 
 
 
C-g 还可以取消数字参数和只输入到一半的命令。
 
 
 
>> 输入 C-u 100 设定一个值为 100 的数字参数,然后按 C-g。
 
  现在再按 C-f,光标应该只会移动一个字符,因为你已经用 C-g 取消了参数。
 
 
 
如果你不小心按了一下 <ESC>,你也可以用 C-g 来取消它。
 
【这个说法似乎有问题,因为按照这个按键顺序输入的应该是 C-M-g。
 
取消 <ESC> 的正确做法是再连按两次 <ESC>。】
 
 
 
 
 
* 插入与删除(INSERTING AND DELETING)
 
--------------------------------------
 
 
 
,大部分的 Emacs 命令都可以指定重复次数,这其中也包括输入字符的
 
命令。重复执行输入字符的命令实际上就是输入多个相同的字符。
 
 
 
>>  试试 C-u 8 *,这将会插入 ********。
 
 
 
好,现在你应该已经掌握了最基本的的文本插入和修改功能,其实删除还可以
 
“以词为单位”进行,下面是一个关于“删除”操作的小结:
 
 
 
        <DEL>        删除光标前的一个字符
 
        C-d          删除光标后的一个字符
 
 
 
M-<DEL>      移除光标前的一个词
 
        M-d          移除光标后的一个词
 
 
 
        C-k          移除从光标到“行尾”间的字符
 
        M-k          移除从光标到“句尾”间的字符
 
 
 
【可能你已经注意到了“删除(delete)”和“移除(kill)”的用词区别,后
 
文会有详细说明。】
 
 
 
注意“<DEL> 和 C-d”还有“M-<DEL> 和 M-d”是根据前述惯例从 C-f和 M-f 衍生的
 
出来的(其实<DEL>不是控制字符,我们先忽略这一点)。C-k和 M-k 的关系在
 
某种程度上与 C-e 和 M-e 一样――如果把“一行”和“一句”作一个类比的话。
 
 
 
 
 
你也可以用一种通用的办法来移除缓冲区里的任何一部分:首先把光标移动到你
 
想要移除的区域的一端,然后按 C-<SPC>(<SPC>指空格)【注意,C-<SPC> 往
 
往被中文用户设定成输入法热键,如果这样,C-<SPC> 就被系统拦截而无法传递
 
给 Emacs 了,在这种情况下可以使用C-@。】,然后将光标移动到你准备移除的
 
文字的另一端。这个时候, Emacs 会高亮光标和你按下 C-<SPC> 之间的文本。
 
最后,按下 C-w 。这样就可以把位于这两点之间的所有文字移除了。
 
 
 
 
 
注意,“移除(kill)”和“删除(delete)”的不同在于被移除的东西可以被重新
 
插入(在任何位置),而被删除的就不能使用相同的方法重新插入了(不过可以
 
通过撤销一个删除命令来做到,后文会提到)。
 
 
 
 
 
重新插入被移除的文字称为“召回(yank)
 
 
 
 
 
召回的命令是 C-y。它会在光标所在处插入你最后移除的文字。
 
 
 
 
 
C-y 可以召回最近一次移除的内容,那如何召回前几次移除的内容呢?它们当然
 
没有丢,你可以用 M-y 来召回它们。在用 C-y 召回最近移除的文字之后,紧接
 
着再按 M-y 就可以召回再前一次被移除的内容,再按一次 M-y 又可以召回再上
 
一次的……连续使用 M-y 直到找到你想要召回的东西,然后什么也不用做,继续
 
编辑就行了。
 
 
 
如果连续按 M-y 很多次,你可能会回到起始点,也就是最近移除的文字。
 
【看得出这实际上是一个环。】
 
 
 
>> 移除一行,移动一下光标,然后再移除另外一行。
 
  按 C-y 将第二次移除的那行召回来。
 
  紧接着再按 M-y,它将会被第一次移除的那行取代。
 
  试着再按几下 M-y 看看会发生什么。
 
  再继续,直到第二行被召回来,然后再做个几次。
 
  如果感兴趣,你可以试着给 M-y 指定一个正的或负的参数。
 
 
 
 
 
* 撤销(UNDO)
 
--------------
 
如果你修改了一段文字,又觉得改得不好,可以用 undo 命令进行撤销:C-/。
 
另外, C-x u 和 C-/ 完全一样,但是按起来有些麻烦。
 
 
 
* 文件(FILE)
 
--------------
 
 
 
 
 
* 缓冲区(BUFFER)
 
------------------
 
 
 
你可以用 C-x C-f 找到并打开第二个文件,但第一个文件仍然在 Emacs 中。要
 
切回第一个文件,一种办法是再用一次 C-x C-f。这样,你就可以在 Emacs 中同
 
时打开多个文件。
 
不过还有一个更简单的办法,那就是用 C-x b。用这条命
 
令,你必须输入缓冲区的名称。(如果是返回默认的第一个不用名称)
 
 
 
 
 
>> 通过输入 C-x C-f foo <Return> 创建一个名为“foo”的文件。
 
  然后输入 C-x b TUTORIAL.cn <Return> 回到这里。
 
 
 
 
 
 
 
C-x s  保存多个缓冲区
 
 
 
 
 
输入 C-x 1 离开缓冲区列表
 
 
 
 
* 命令集扩展(EXTENDING THE COMMAND SET)
 
-----------------------------------------
 
        C-x    字符扩展。  C-x 之后输入另一个字符或者组合键。
 
        M-x    命令名扩展。M-x 之后输入一个命令名。
 
 
 
C-z 可以暂时离开 Emacs――当然,你还可以再回来。
 
 
  C-x 的扩展命令有很多,下面列出的是你已经学过的:
 
 
 
        C-x C-f        寻找文件。
 
C-x C-s        保存文件。
 
        C-x C-b        列出缓冲区。
 
        C-x C-c        离开 Emacs。
 
C-x 1          关掉其它所有窗格,只保留一个。
 
        C-x u          撤销。
 
 
 
 
 
 
 
* 自动保存(AUTO SAVE)
 
-----------------------
 
 
 
所以,假如不幸真的发生了,你大可以从容地打开原来的文件(注意不是自动保
 
存文件)然后输入 M-x recover file <Return> 来恢复你的自动保存文件。在
 
提示确认的时候,输入 yes<Return>。
 
 
 
 
 
* 状态栏(MODE LINE)
 
---------------------
 
 
 
“L” 和其后的数字给出了光标所在行的行号。
 
 
 
最开头的星号(*)表示你已经对文字做过改动。刚刚打开的文件肯定没有被改动
 
过,所以状态栏上显示的不是星号而是短线(-)。
 
 
 
状态栏上小括号里的内容告诉你当前正在使用的编辑模式。缺省的模式是
 
Fundamental,就是你现在正在使用的这个。它是一种“主模式”。
 
 
 
 
 
用 C-l C-l 将本行带到屏幕的最上方。
 
 
 
 
 
 
 
* 搜索(SEARCHING)
 
-------------------
 
 
 
C-s 是向前搜索,C-r 是向后搜索。不过手别这么快!别着急试。
 
 
 
在按下 C-s 之后,回显区里会有“I-search”字样出现,表明目前 Emacs 正处
 
于“渐进搜索”状态,并等待你输入搜索字串。按 <Return> 可以结束搜索。
 
 
 
>> 输入 C-s 开始一个搜索。注意敲慢一点,一次输入一个字符。
 
  慢慢输入“ccusor”这个词,每敲一个字都停顿一下并观察光标。
 
  现在你应该已曾经找到“ccusor”这个词了。
 
>> 再按一次 C-s,搜索下一个“ccusor”出现的位置。
 
>> 现在按四次 <DEL> ,看看光标是如何移动的。
 
>> 敲 <Return> 结束搜索。
 
 
 
看仔细了么?在一次渐进式搜索中,Emacs 会尝试跳到搜索目标出现的位置。要
 
跳到下一个命中位置,就再按一次 C-s。如果找不到目标,Emacs 会发出“哔”
 
的一声,告诉你搜索失败。在整个过程中,都可以用 C-g 来终止搜索。【你会发
 
现 C-g 会让光标回到搜索开始的位置,而 <Return> 则让光标留在搜索结果上,
 
这是很有用的功能。】
 
 
 
在渐进式搜索中,按 <DEL> 会“撤回”到最近一次搜索的命中位置。如果之前没
 
有一个命中, <DEL> 会抹去搜索字符串中的最后一个字符。比如你已经输入了
 
“c”,光标就停在“c”第一次出现的位置,再输入“u”,光标停在“cu”第一次出现
 
的位置,这时再按 <DEL> ,“u”就从搜索字串中消失了,然后光标会回到“c”第
 
一次出现的位置。
 
 
 
 
 
* 多窗格(MULTIPLE WINDOWS)
 
----------------------------
 
 
 
> 移动光标到这一行,然后输入 C-l C-l。
 
 
 
>> 现在输入 C-x 2,它会将屏幕划分成两个窗格。
 
  这两个窗格里显示的都是本篇快速指南,而光标则停留在上方的窗格里。
 
 
 
>> 试试用 C-M-v 滚动下方的窗格。
 
  (如果你并没有 META 键,用 ESC C-v 也可以。)
 
  【向上滚动是 C-M-S-v,也就是同时按住 CONTROL、META 和 SHIFT 再按 v】
 
 
 
>> 输入 C-x o(“o”指的是“其它(other)”),
 
  将光标转移到下方的窗格。
 
 
 
>> 在下方的窗格中,用 C-v 和 M-v 来滚动。
 
  同时继续在上方的窗格里阅读这些指导。
 
 
 
 
 
C-M-v 是一个 CONTROL-META 组合键。如果你有 META (或 Alt)键的话,可以
 
同时按住CONTROL 和 META 键并输入 v。CONTROL 和 META 键先按哪个都可以,
 
因为它们只是用来“修饰(modify)”你输入的字符的。
 
 
 
 
 
>> (在上方窗格里)输入 C-x 1 关掉下方窗格。
 
 
 
(如果你在下方的窗格里输入 C-x 1,那么就会关掉上方的窗格。你可以把这个
 
命令看成是“只保留一个窗格”――就是我们正在编辑的这个。)
 
 
 
不同的窗格可以显示不同的缓冲区。如果你在一个窗格里用 C-x C-f 打开了一个
 
文件,另一个窗格并不会发生什么变化。任何一个窗格里都可以用来打开文件。
 
 
 
  
* 多窗口(MULTIPLE FRAMES)
+
版本zabbix 2.2
------------------
 
  
  
* 更多精彩(MORE FEATURES)
 
---------------------------
 
  
想学习更多的使用技巧,Emacs 使用手册(manual)值得一读。你可以读纸版的
+
没有看到 10051 是因为 
书,也可以在 Emacs 中读(可以从 Help 菜单进入或者按 C-h r)。提两个你
 
可能会很感兴趣的功能吧,一个是可以帮你少敲键盘的 completion(自动补全),
 
另一个是方便文件处理的 dired(目录编辑)。
 
  
Completion 可以替你节省不必要的键盘输入。比如说你想切换到 *Message* 缓
+
DBPassword=‘123’ 改为 DBPassword=123
冲区,你就可以用 C-x b *M<Tab> 来完成。只要 Emacs 能够根据你已经输入的
 
文字确定你想要输入的内容,它就会自动帮你补齐。Completion 也可用于命令
 
名和文件名。有关 Completion 的详细说明可以在 Emacs Info 中的
 
“Completion”一节里找到。
 
  
Dired 能够在一个缓冲区里列出一个目录下的所有文件(可以选择是否也列出子
 
目录),然后你可以在这个文件列表上完成对文件的移动、访问、重命名或删除
 
等等操作。Dired 也在 Emacs 使用手册中有详细介绍,参见“Dired”一节。
 
  
 +
日志查看
 +
tail  /tmp/zabbix_server.log
  
下面列出主要术语的译词对照,并给出注释说明:
+
14659:20170525:171042.257 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: YES)
  
    command              命令
 
    cursor                光标
 
    scrolling            滚动
 
    numeric argument      数字参数
 
    window                窗格 [1]
 
    insert                插入
 
    delete                删除 [2]
 
    kill                  移除 [2]
 
    yank                  召回 [2]
 
    undo                  撤销
 
    file                  文件
 
    buffer                缓冲区
 
    minibuffer            小缓冲
 
    echo area            回显区
 
    mode line            状态栏
 
    search                搜索
 
    incremental search    渐进式搜索 [3]
 
  
 
+
正确如下
20180313 ln 792
+
[root@ zabbix]# netstat -nlpt
here
+
Active Internet connections (only servers)
 
+
Proto Recv-Q Send-Q Local Address              Foreign Address            State      PID/Program name    
 
+
tcp        0      0 0.0.0.0:10051
M-x replace-string ENTER search-string ENTER 替换
 
   
 
 
 
 
 
用 <Return> 结束文件名的输入
 
Return 这里是什么意思呢  回车么 
 
 
 
 
 
Alt + x
 
输入: linum-mode
 
 
 
 
 
 
 
emacs中如何跳到指定行
 
 
 
M-x goto-line 然后回车   <line_number>
 
 
 
以在.emacs文件中定制一下(添加以下一行):
 
 
 
(define-key ctl-x-map "l" 'goto-line)
 
 
 
 
 
然后每次在emacs中按C-x再按l,输入指定的行号就可以了。
 
 
 
http://blog.csdn.net/grey_csdn/article/details/78905862
 
http://bbs.csdn.net/topics/60028785
 
 
</pre>
 
</pre>
==package ==
 
<pre>
 
 
也可以使用命令M-x list-packages获取插件列表,使用C-s找到 软件名例如叫 elpy 来安装
 
 
 
;内置的package管理,emacs24以上的版本有用
 
(require 'package)
 
;;将melpa仓库地址加入到package-archives这个列表变量里面
 
(add-to-list 'package-archives
 
    '("melpa" . "http://melpa.org/packages/") t)
 
;;这个是国内一个elpa仓库镜像,速度更快一些,你懂得
 
(add-to-list 'package-archives
 
    '("popkit" . "http://elpa.popkit.org/packages/") t)
 
;;初始化package
 
(package-initialize)
 
;;更新仓库里面的package
 
(when (not package-archive-contents)
 
  (package-refresh-contents))
 
</pre>
 
 
===常用操作===
 
<pre>
 
Alt+x list-packages
 
 
可以先用C-s向下搜索  autopair
 
找到后 回来后 按i再按x就下载到本地了。然后打开emacs的配置文件init.el,在里面添加下面:
 
 
常用快捷键
 
i  - 选择要安装的包
 
d - 选择要删除的包
 
U - 升级已安装的包
 
x  - 执行操作
 
d - 选择要删除的包
 
</pre>
 
 
[http://longlycode.github.io/2016/02/02/emacs%E5%AE%8C%E5%85%A8%E8%A1%A5%E5%AE%8C%E8%AE%A1%E5%88%92-%E4%B8%89/ emacs完全补完计划(三)——package的引入和管理]
 
 
== 高级==
 
 
 
===Edit mediawiki sites from emacs ===
 
[https://github.com/hexmode/mediawiki-el mediawiki.el -- Edit mediawiki sites from emacs]
 
 
==emacs 学习==
 
 
[https://www.cnblogs.com/holbrook/archive/2012/02/15/2357336.html Emacs学习笔记(1):初学者的学习计划]
 
 
[https://www.cnblogs.com/holbrook/archive/2012/03/06/2381636.html Emacs学习笔记(7):简单的配置]
 
 
[https://www.cnblogs.com/holbrook/archive/2012/02/15/2357335.html Emacs学习笔记(2): 初识Emacs]
 
 
[https://www.cnblogs.com/holbrook/tag/emacs/ emacs 学习标签 ]
 
 
== 参考==
 
[https://my.oschina.net/alphajay/blog/7737 Emacs快捷键的总结]
 
 
[https://segmentfault.com/a/1190000003811296 走近emacs 201801]
 
 
[http://blog.csdn.net/cherylnatsu/article/details/6536959  Emacs常用命令快速参考]
 
 
[https://www.ibm.com/developerworks/cn/education/aix/emacs1-1/index.html 学习 Emacs 的基础知识]
 
 
[https://github.com/redguardtoo/mastering-emacs-in-one-year-guide 一年成为 Emacs 高手 ]
 
 
http://emacser.com/
 
 
Emacs 入门
 
https://i.linuxtoy.org/docs/guide/ch25.html
 
 
[https://www.emacswiki.org/emacs/%E9%A6%96%E9%A1%B5 emacswiki]
 
 
Emacs org mode
 
https://i.linuxtoy.org/docs/guide/ch32s03.html#id3155525
 
 
 
https://www.emacswiki.org/emacs?interface=zh-cn
 
 
https://www.cnblogs.com/blfshiye/p/4566900.html
 
 
 
https://www.gnu.org/software/emacs/manual/html_node/efaq/Installing-Emacs.html
 
 
[https://www.gnu.org/software/emacs/tour/index.html  A Guided Tour of Emacs]
 
 
Emacs - the Best Python Editor https://realpython.com/blog/python/emacs-the-best-python-editor/
 
 
Emacs:最好的Python编辑器  http://codingpy.com/article/emacs-the-best-python-editor/
 
 
[https://wiki.archlinux.org/index.php/Emacs_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E8.BF.90.E8.A1.8CEmacs Emacs (简体中文)]
 
 
[http://ergoemacs.org/emacs/emacs_package_system.html How to Install Packages Using ELPA, MELPA]
 
 
[http://www.cnblogs.com/xiaosha/p/3366422.html emacs python 配置]
 
 
[https://maskray.me/blog/2015-09-18-conversion-to-emacs 皈依Emacs]
 
 
[https://elloop.github.io/tools/2016-03-01/emacs-accumulate-5-packages-extensions  【积水成渊-逐步定制自己的Emacs神器】3:为Emacs安装扩展]
 
 
===wiki ===
 
Wiki编辑器, 通过 Yaoddmuse 几乎能支持所有的Wiki格式, 实时语法高亮, 你不用担心保存以后确发现格式错了
 
 
https://www.emacswiki.org/emacs/Yaoddmuse
 
 
[https://blog.csdn.net/freexploit/article/details/572224 用Emacs Wiki帮你写Blog]
 
 
===2019===
 
[http://longlycode.github.io/2016/01/28/emacs%E5%AE%8C%E5%85%A8%E8%A1%A5%E5%AE%8C%E8%AE%A1%E5%88%92-%E4%B8%80-1/ emacs完全补完计划(一)——嘴炮和入门]
 
  
 +
==参考==
  
 +
[https://www.howtoforge.com/tutorial/install-zabbix-monitoring-server-and-agent-on-debian-9/ Install Zabbix Monitoring Server and Agent on Debian]
  
[http://jixiuf.github.io/blog/emacs-%E8%87%AA%E5%B8%A6%E7%9A%84%E7%AE%80%E5%8D%95%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B%28tutorial%29/ emacs 自带的简单入门教程(TUTORIAL)]
 
  
[http://www.cnblogs.com/Open_Source/archive/2011/07/17/2108747.html Org-mode 简明手册]
+
[http://blog.51cto.com/guoxh/2089204 Zabbix 3.0 详解:从添加主机到发送报警通知]
  
[http://blog.csdn.net/grey_csdn/article/category/7131378/5 小灰笔记 emacs]
+
[https://my.oschina.net/zhouyuntai/blog/1788830 Zabbix监控系统 (3) 之 添加自定义监控项目、配置邮件告警、测试告警]
  
[https://www.jianshu.com/p/b4cf683c25f3 从零开始——Emacs 安装配置使用教程 2015]
+
http://blog.linuxchina.net/?p=1711
  
 +
[https://www.cnblogs.com/enjoycode/p/zabbix_3_installation_on_centos_7.html  Zabbix 3.0  with apache安装笔记]
  
[https://www.zhihu.com/question/30955165 Emacs有什么优点,用Emacs写程序真的比IDE更方便吗]
+
[https://www.cnblogs.com/zhenglisai/p/6547402.html 【zabbix】自定义监控项key值]
  
=== 参考 for python===
 
[http://codingpy.com/article/emacs-the-best-python-editor/ Emacs:最好的Python编辑器]
 
=== 参考 for c===
 
[https://segmentfault.com/a/1190000003878553 Emacs 中 C/C++ 编程基本环境配置]
 
  
[http://txgcwm.github.io/blog/2013/07/20/jiang-emacspei-zhi-cheng-%5B%3F%5D-ge-c-slash-c-plus-plus-de-idebian-cheng-huan-jing/#top 将Emacs配置成一个C/C++的IDE编程环境]
+
[https://blog.csdn.net/zhengchaooo/article/details/79499991 zabbix添加自定义py脚本]
  
[http://blog.guorongfei.com/2014/09/16/emacs-c-cpp-python-config/ Emacs C、C++、Python 编程的简单配置]
+
 [[category:zabbix]]
[[category:ops]] [[category:emacs]]
 

2019年12月26日 (四) 08:32的版本

站内资源

Zabbix 调用API 批量添加主机

zabbix server

pre

这些是官网官方安装文档,记得一定要看

https://www.zabbix.com/documentation/3.0/manual/installation/install

https://www.zabbix.org/wiki/InstallOnCentOS_RHEL

wget -c https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.8/zabbix-3.0.8.tar.gz
wget -c http://tenet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.13/zabbix-2.2.13.tar.gz

#配置php变量

vi /etc/php.ini
date.timezone = Asia/Shanghai
post_max_size = 32M
max_execution_time = 300
max_input_time = 300
注:更改完之后需要重启nginx和php

#安装zabbix所需的组件

yum -y install net-snmp-devel curl-devel
#yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI php-gd php-xml php-bcmath
groupadd zabbix && useradd -g zabbix zabbix
tar xvf zabbix-3.0.8.tar.gz && cd zabbix-3.0.8
#tar xvf zabbix-2.2.13.tar.gz && cd zabbix-2.2.13

#./configure –enable-server –enable-agent –with-mysql –enable-ipv6 –with-net-snmp –with-libcurl –with-libxml2

##或者默认安装路径 make是不用的
./configure --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 && make install

添加zabbix服务对应的端口(可以省略,但是官方建议有)

cat >>/etc/services<< EOF
zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-trapper 10051/tcp #Zabbix Trapper
zabbix-trapper 10051/udp #Zabbix Trapper
EOF

配置文件

##好像是这个起效果的呢 –sysconfdir=/etc/zabbix 有这个,不用下面的命令了
#vim /usr/local/etc/zabbix_server.conf
#cd zabbix-2.0.7

#mkdir /etc/zabbix
#cp conf/*.conf /etc/zabbix

mkdir /var/log/zabbix ;chown zabbix:zabbix /var/log/zabbix;


#zabbix web代码
mkdir -p /data/www/zabbix;
cp -r frontends/php/* /data/www/zabbix

修改zabbix连接的数据库的用户名和密码
vi /etc/zabbix/zabbix_server.conf

DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword='123'
DBPort=3306 #如果数据库是用sock文件的方式,这里可以是sock文件的路径

添加数据库Lib文件位置到/etc/ld.so.conf中,并使其生效
echo ‘/usr/local/mysql/lib/mysql/’ >> /etc/ld.so.conf

ldconfig

为zabbix的启动、关闭和重启的脚本文件做链接,方便系统可以找得到

给zabbix服务端程序做软链接 我用默认的config 应该是不用的
cd /usr/local/zabbix/bin/
for i in *;do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i};done
cd /usr/local/zabbix/sbin/
for i in *;do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i};done

拷贝zabbix服务端和客户端启动脚本到/etc/init.d目录下.
cd misc/init.d/
cp fedora/core/zabbix_server /etc/init.d/
cp fedora/core/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
chmod +x /etc/init.d/zabbix_server

3 Create Zabbix database

SQL scripts are provided for creating database schema and inserting the dataset
#https://www.zabbix.com/documentation/3.0/manual/appendix/install/db_scripts
#https://www.zabbix.com/documentation/2.2/manual/appendix/install/db_scripts

mysql>create database zabbix character set utf8 collate utf8_bin;;grant all on zabbix.* to zabbix@localhost identified by '123';flush privileges;

将zabbix源码包中的数据导入到新建的zabbix数据库
##这个和老的版本有点不同 第一个是zabbix的数据库表结构,要先导入。

. /etc/profile
cd ../..
mysql -uroot -p'evan' zabbix< database/mysql/schema.sql
mysql -uroot -p'evan' zabbix< database/mysql/images.sql
mysql -uroot -p'evan' zabbix< database/mysql/data.sql

vi /etc/init.d/zabbix_server # 的可以不改,修改一下变量的值 因为我是默认用 configure
# base zabbix dir
BASEDIR=/usr/local
# binary file
ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server<pre>

===fping的安装和使用详解===
<pre>http://rickie622.blog.163.com/blog/static/2123881120121121111720941/
http://netsecurity.51cto.com/art/201101/242200.htm
#当然 下载zip包也是可以的
git clone https://github.com/schweikert/fping.git
cd fping
./autogen.sh
./configure
make -j2 && make install

#修改一下配置文件
vim /etc/zabbix_server.conf
#vim /usr/local/etc/zabbix_server.conf
FpingLocation=/usr/local/sbin/fping

启动zabbix,并且添加开机自启动

service zabbix_server start
service zabbix_agentd start #启动服务

chkconfig zabbix_server on
chkconfig zabbix_agentd on #开机自启动

在Nginx服务中添加zabbix虚拟主机
#vim /usr/local/nginx/conf/vhosts/monitor.conf

这些都不要,不然没有web安装向导的
#cd zabbix/conf
#cp zabbix.conf.php.example zabbix.conf.php ;
#chmod 777 zabbix.conf.php

iptables -I INPUT -p tcp –dport 80 -j ACCEPT

zabbix server is not running
Zabbix Server is not running: the information displayed may not be current
http://song49.blog.51cto.com/4480450/1200151

(4)设置zabbix服务IP和端口,name可以忽略

ps:
post_max_size = 16M
PHP option “max_execution_time” 30 300 Fail
PHP option “max_input_time” 60 300 Fail
PHP option “date.timezone” unknown Fai
date.timezone = Asia/Shanghai

PHP option “always_populate_raw_post_data” must be set to “-1”

port 10051

Zabbix frontend is ready! The default user name is Admin, password zabbix.

超级用户密码修改

2.2 用户名第一个字母要大写 也就是Admin
默认的用户名:admin 密码:zabbix

哪里改登录用户和密码呢
use zabbix;
select userid,alias,passwd from users; #查看

+--------+------------+----------------------------------+
| userid | alias      | passwd                           |
+--------+------------+----------------------------------+
|      1 | Admin      | 5fce1b3e34b520afeffb37ce08c7cd66 |


#如果为zabbix 3.0  直接这样就行了 
update users set passwd=MD5('12345') where userid=1;


#zabbix 2.x 
重新开个终端,生成一个MD5加密的密码,这里密码设置的是redhat

[root@localhost ~]# echo -n 12345678 |openssl md5 #-n就表示不输入回车符,不加-n,否则就不是这个结果了。
(stdin)= 25d55ad283aa400af464c76d713c07ad

接着上面的为admin用户设定一个密码

mysql> update users set passwd='25d55ad283aa400af464c76d713c07ad' where userid = '1';
#或者直接使用update users set passwd=md5(“12345678”) where userid=’1′;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> quit
Bye

zabbix登陆账户admin密码修改
http://pvbutler.blog.51cto.com/7662323/1734003

yum install ntp ntpdate -y
chkconfig ntpd on
/etc/init.d/ntpd start

*/30 * * * * /usr/sbin/ntpdate pool.ntp.org

在29行这后添加
sed -i ’29a user=mysql’ /etc/my.cnf
sed -i ’29a character-set-server=utf8′ /etc/my.cnf
sed -i ’29ainnodb_file_per_table=1′ /etc/my.cnf
重启mysqld

防火墙设置

这个要看一下先,尽量用严格些的防火墙设置

#on zabbix-agent

iptables -A INPUT -s zabbixserverip  -p tcp -m tcp --dport 10050 -m comment --comment "zabbix_server listen " -j ACCEPT 
#iptables -A INPUT -s zabbixserverip  -p tcp -m tcp --dport 10050 -m comment --comment "zabbix_agentd listen " -j ACCEPT 

#这下面的防火墙rule 不要用 
vi /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 10050 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 10051 -j ACCEPT

/etc/init.d/iptables restart

中文在右上角的用户里面哦

Starting php_fpm /usr/local/php/bin/php-cgi: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
failed

by default install the daemon binaries (zabbix_server, zabbix_agentd, zabbix_proxy) in /usr/local/sbin and the client binaries (zabbix_get, zabbix_sender) in /usr/local/bin.

4.0图像显示字体乱码的解决方法


#传输字体
 cp  /root/STKAITI.TTF  /usr/share/zabbix/assets/fonts
  
 #修改 指定的字体 或者直接把你的家体改成和默认同名,而默认的那个先删除 连重启都不用 反正在docker
  grep  -rn  BX_GRAPH_FONT_NAM   /usr/share/zabbix/include/defines.inc.php
67:define('ZBX_GRAPH_FONT_NAME',		'DejaVuSans'); // font file name

修改
define('ZBX_GRAPH_FONT_NAME',           'simkai');  

zabbix-get

root@zabbix-server ~]#zabbix_get  -s 10.3.10.139 -k "system.hostname"
dev-hello-market


不过使用zabbix_get时必须开启客户端被动模式,要求暴露客户端监听端口。

自动化监控--zabbix-get安装使用详解

第二 agent

#4.0 #centos7 快速安装和自动配置 2019年 8月23日 星期五 11时45分01秒 CST

#国外
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

#国内
https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

yum install zabbix-agent -y

yum install ntp  -y
timedatectl set-ntp true

HOSTNAME=prod-java-02

#config
sed -i "s/^Server=127.0.0.1/Server=172.16.1.9/ " /etc/zabbix/zabbix_agentd.conf

sed -i "s/^ServerActive=127.0.0.1/ServerActive=172.16.1.9/"  /etc/zabbix/zabbix_agentd.conf
sed  -i "s/^Hostname=Zabbix server/Hostname=test-market/"  /etc/zabbix/zabbix_agentd.conf



#这个用了HOSTNAME 变量  而上面的要指定hostname
sed  -i 's/127.0.0.1/23.67.81.95/g'  /etc/zabbix/zabbix_agentd.conf
sed  -i "s/Hostname=Zabbix server/Hostname=${HOSTNAME}/g"  /etc/zabbix/zabbix_agentd.conf
grep "^\s*[^# \t].*$" /etc/zabbix/zabbix_agentd.conf

systemctl  enable  zabbix-agent.service
systemctl restart zabbix-agent


下面是老的信息 和解说

cat /etc/zabbix/zabbix_agentd.conf
Hostname=主机名
Server=zabbix server ip
LogFile= 可以不改

##最好这样3个
Server=10.6.1.181
ServerActive=10.6.1.181
Hostname=zabbix-client-1


#rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
#rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
#http://repo.zabbix.com/zabbix/2.0/rhel/5/x86_64/zabbix-release-2.0-1.el5.noarch.rpm


rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

 

agent on debian

#用系统的源 
 apt-get install zabbix-agent


#config 其实和yum的也一样 只是启动不一样而已
HOSTNAME=wiki
sed -i "s/^Server=127.0.0.1/Server=207.148.106.229/ " /etc/zabbix/zabbix_agentd.conf

sed -i "s/^ServerActive=127.0.0.1/ServerActive=207.148.106.229/"  /etc/zabbix/zabbix_agentd.conf
sed  -i "s/^Hostname=Zabbix server/Hostname=wiki/"  /etc/zabbix/zabbix_agentd.conf

grep "^\s*[^# \t].*$" /etc/zabbix/zabbix_agentd.conf

service zabbix-agent start


 zabbix_get -s 138.68.59.0 -k "system.hostname"


#用zbx的源
  https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+buster_all.deb        
dpkg -i zabbix-release_stretch_all.deb
# apt-get update

https://www.zabbix.com/documentation/3.2/manual/installation/install_from_packages/repository_installation

https://www.zabbix.com/documentation/4.0/zh/manual/installation/install_from_packages/rhel_centos#%E5%AE%89%E8%A3%85_agent

docker zabbix

用 Zabbix 和 Docker 搭建监控平台

故障及回顾

问题1.  zabbix server 没有打开 10051端口 前端图形没显示 

版本zabbix 2.2 



没有看到 10051 是因为  

DBPassword=‘123’ 改为 DBPassword=123


日志查看 
 tail  /tmp/zabbix_server.log

14659:20170525:171042.257 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: YES)


正确如下 
[root@ zabbix]# netstat  -nlpt 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:10051

参考

Install Zabbix Monitoring Server and Agent on Debian


Zabbix 3.0 详解:从添加主机到发送报警通知

Zabbix监控系统 (3) 之 添加自定义监控项目、配置邮件告警、测试告警

http://blog.linuxchina.net/?p=1711

Zabbix 3.0 with apache安装笔记

【zabbix】自定义监控项key值


zabbix添加自定义py脚本