ELK安装和使用

ELK 安装与使用

近期我们公司的被DDOS攻击了,才发现我们的日志系统非常的落后,所以着手开始调研了几家的日志分析系统
想法是不要重复造轮子,所以前后调研了以下几家:

阿里云日志分析 大牌厂商可以通过自家的日志收集脚本(可是不敢用)也可以通过api进行日志收集,报警和监控分开,适合部署在阿里云上的客户,收费

七牛云日志分析 还未对外开放

ELK 成熟开源,使用起来比较复杂,不过相对灵活

GoAccess 简单功能单一

其他的脚本式日志分析

经过最终对比最终选择了ELK,下面我将ELK的部署与使用一一介绍。

系统切换方案

本文章和大家探讨一下老系统升级到新系统的方案,本方案是基于我接到了一个客户的需求是系统迁移。方案从以下几个方面阐述的。

一、系统切换工作流程


区块链的8个信号

编者按:本文来自微信公众号陈菜根频道(ID:chen-cai-gen),作者:陈菜根,为友资本合伙人,知名自媒体人,区块链投资者和研究员。

不管你信不信,当你还在熟睡时,有一群人还在挑灯夜战,甚至有些团队已经连续一周不曾怎么休息,就像我在凌晨打开电脑,敲下激动的文字。区块链所赋予的财富效应和瓦解寡头的可能性,正在促动着边缘人夜不能寐、扬鞭奋蹄。相比于现实世界的安逸与蹒跚,互联网世界的各种鸡汤和焦虑,区块链世界里早已绝尘而去,大家在同一个时空里面面相觑,尴尬之余,各自的灵魂却相隔万里般的安放他处。

年前,大家还在讨论何谓区块链,现在的行家,已经没有时间去做解释了,因为利益和信仰一旦落地,他将与非同盟人群,火速隔离。就像一个战士,劳累时,回到营帐休息片刻,满血复活后,又冲杀进了战场,来回的路上与好友象征性的打个招呼,证明他还活着,再无其他时间消费,因为在时间管理上,这群人已经开始笃定:链圈一天,世界一年。

MySQL中遗忘root密码解决方法分享

大家有没有惨痛的经历就是忘掉MySQLroot的密码,或许好多人就没有设置过root密码。以下的文章主要向大家介绍的是MySQL忘记root密码的正确解决办法。

在linux下:

如果 MySQL 正在运行,首先杀之:

1
2
ps aux | grep mysql
kill -9 26061

启动 MySQL :/home/pubsrv/mysql/bin/mysqld_safe --defaults-file=/home/pubsrv/mysql/etc/my.cnf --skip-grant-tables &
就可以不需要密码就进入 MySQL 了。

MySQL主从复制原理

MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。每个从服务器从主服务器接收主服务器上已经记录到其二进制日志的保存的更新。当一个从服务器连接主服务器时,它通知主服务器定位到从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,并在本机上执行相同的更新。然后封锁并等待主服务器通知新的更新。从服务器执行备份不会干扰主服务器,在备份过程中主服务器可以继续处理更新。

MySQL使用3个线程来执行主从复制功能,其中两个线程(SQL线程和IO线程)在从服务器,另外一个线程(IO线程)在主服务器。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。该线程可以即为主服务器上SHOW PROCESSLIST的输出中的Binlog Dump线程。从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3个线程是SQL线程,由从服务器创建,用于读取中继日志并执行日志中包含的更新。在从服务器上,读取和执行更新语句被分成两个独立的任务。当从服务器启动时,其I/O线程可以很快地从主服务器索取所有二进制日志内容,即使SQL线程执行更新的远远滞后。

1. Binlog dump thread.

Centos网络配置(手动设置和自动获取)IP的2种方法

最近自己装了个最新的Centos版本6.3,但是装完网络ping不通,ip还是127.0.0.1,所以就把自己的操作纪录了下来。希望对于新手有用,也算是自己的日记。

自动获取IP,一般自动获取ip跟4个文件有关系

1. /etc/sysconfig/network-scripts/ifcfg-eth0

1
2
3
4
5
6
7
8
9
10
11
[root@web-1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 //由eth0来启动
BOOTPROTO=dhcp //获取IP的方式是自动获取,static是固定IP,none是手动
HWADDR=00:0c:29:62:9a:a2 //网卡的物理地址
NM_CONTROLLED=yes
ONBOOT=no //启动时网络接口是否有效
TYPE=Ethernet
UUID="ed818867-f233-4909-a55d-856833ffce9e"
USERCTL=no
IPV6INIT=no //是否支持IP6
PEERDNS=yes

Linux iostat 监测IO状态

前几天我们开发机出现了问题,很慢,svn up的时候也很慢,在看他们排错的期间给阻力点的同学分享了一下iostat命令。Linux系统出现了性能问题,一般我们可以通过topiostatfreevmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。

基本使用

1
iostat -d -k 1 5

参数 -d 表示,显示设备(磁盘)使用状态;-k 某些使用block为单位的列强制使用Kilobytes为单位;1 5表示,数据显示每隔1秒刷新一次,共显示5次。


tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。

LNMP 源码安装

LNMP 源码安装步骤

在双十一的时候我们部门的一个小朋友买了一台香港的阿里云(300多一年),非常兴奋,自己捣鼓了一个
vpn在上面,后来被问及到有没有安装Lnmp环境,于是踏上了安装Lnmp环境的路,不过他采用的是二进制
包的方式安装,遇到了好多找不到配置文件的情况问我,因此我就写下了这边博客,希望能帮助新入行的
同学。

Linux系统内核升级

1
2
3
4
5
6
7
8
9
10
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers vim-common dos2unix readline readline-devel cmake bison libtool flex pkg-config patch gd gd-devel locate libevent libevent-devel openldap.x86_64 openldap-devel.x86_64 openldap-clients.x86_64 openssh-ldap.x86_64 ncurses  ncurses-devel readline readline-devel lrzsz cmake

yum -y update
yum -y upgrade

echo "alias vi='vim'" >> ~/.bash_profile
source ~/.bash_profile

echo "ulimit -SHn 51200" >> /etc/profile
source /etc/profile

如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等

你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并行的操作。数据专家们,我是在对你们说。你可能有一个4核或更多核的CPU,但我们合适的工具,例如 grep, bzip2, wc, awk, sed等等,都是单线程的,只能使用一个CPU内核。借用卡通人物Cartman的话,“如何我能使用这些内核”?要想让Linux命令使用所有的CPU内核,我们需要用到GNU Parallel命令,它让我们所有的CPU内核在单机内做神奇的map-reduce操作,当然,这还要借助很少用到的–pipes 参数(也叫做–spreadstdin)。这样,你的负载就会平均分配到各CPU上,真的。

BZIP2

bzip2是比gzip更好的压缩工具,但它很慢!别折腾了,我们有办法解决这问题。

Instead of this:

1
cat bigfile.bin | bzip2 --best > compressedfile.bz2